From 682ab053adefc3f9e0cc136db28cafbe81bd35ad Mon Sep 17 00:00:00 2001 From: andig Date: Thu, 10 Aug 2023 19:16:49 +0200 Subject: [PATCH] chore: use charge status mapper (#9305) --- api/api.go | 2 ++ charger/alfen.go | 14 +------------- charger/innogy.go | 13 +------------ 3 files changed, 4 insertions(+), 25 deletions(-) diff --git a/api/api.go b/api/api.go index 6a53bc399c..0f5aa627fd 100644 --- a/api/api.go +++ b/api/api.go @@ -42,6 +42,8 @@ const ( StatusF ChargeStatus = "F" // Fzg. angeschlossen: ja Laden aktiv: nein Fehler EVSE oder Abstecken simulieren (CP-Wake-up, -12V) ) +var StatusEasA = map[ChargeStatus]ChargeStatus{StatusE: StatusA} + // ChargeStatusString converts a string to ChargeStatus func ChargeStatusString(s string) (ChargeStatus, error) { status := strings.ToUpper(strings.TrimSpace(strings.Trim(s, "\x00"))) diff --git a/charger/alfen.go b/charger/alfen.go index 7d0412f80c..bab7635b26 100644 --- a/charger/alfen.go +++ b/charger/alfen.go @@ -19,7 +19,6 @@ package charger import ( "encoding/binary" - "fmt" "math" "sync" "time" @@ -127,18 +126,7 @@ func (wb *Alfen) Status() (api.ChargeStatus, error) { return api.StatusNone, err } - switch r := rune(b[0]); r { - case 'A', 'B', 'D', 'E', 'F': - return api.ChargeStatusStringWithMapping(string(r), map[api.ChargeStatus]api.ChargeStatus{api.StatusE: api.StatusA}) - case 'C': - // C1 is "connected" - if rune(b[1]) == '1' { - return api.StatusB, nil - } - return api.StatusC, nil - default: - return api.StatusNone, fmt.Errorf("invalid status: %0x", b[:1]) - } + return api.ChargeStatusStringWithMapping(string(b), api.StatusEasA) } // Enabled implements the api.Charger interface diff --git a/charger/innogy.go b/charger/innogy.go index 7d8c1fa1be..f1b460ccda 100644 --- a/charger/innogy.go +++ b/charger/innogy.go @@ -96,18 +96,7 @@ func (wb *Innogy) Status() (api.ChargeStatus, error) { return api.StatusNone, err } - switch r := rune(b[0]); r { - case 'A', 'B', 'D', 'E', 'F': - return api.ChargeStatusStringWithMapping(string(r), map[api.ChargeStatus]api.ChargeStatus{api.StatusE: api.StatusA}) - case 'C': - // C1 is "connected" - if rune(b[1]) == '1' { - return api.StatusB, nil - } - return api.StatusC, nil - default: - return api.StatusNone, fmt.Errorf("invalid status: %0x", b[:1]) - } + return api.ChargeStatusStringWithMapping(string(b), api.StatusEasA) } // Enabled implements the api.Charger interface