diff --git a/api/api.go b/api/api.go index 3347028d8..e03e57621 100644 --- a/api/api.go +++ b/api/api.go @@ -44,11 +44,11 @@ const ( // ChargeStatusString converts a string to ChargeStatus func ChargeStatusString(s string) (ChargeStatus, error) { - switch strings.ToUpper(s) { + switch status := strings.ToUpper(s); status { case "A", "B", "C": - return ChargeStatus(s), nil + return ChargeStatus(status), nil case "D", "E", "F": - return ChargeStatus(s), fmt.Errorf("invalid status: %s", s) + return ChargeStatus(status), fmt.Errorf("invalid status: %s", status) default: return StatusNone, fmt.Errorf("invalid status: %s", s) } diff --git a/charger/alfen.go b/charger/alfen.go index 2ea25ba21..ba5c7f960 100644 --- a/charger/alfen.go +++ b/charger/alfen.go @@ -129,7 +129,7 @@ func (wb *Alfen) Status() (api.ChargeStatus, error) { switch r := rune(b[0]); r { case 'A', 'B', 'D', 'E', 'F': - return api.ChargeStatus(r), nil + return api.ChargeStatusString(string(r)) case 'C': // C1 is "connected" if rune(b[1]) == '1' { diff --git a/charger/charger.go b/charger/charger.go index 11d10845f..70f954dd7 100644 --- a/charger/charger.go +++ b/charger/charger.go @@ -126,7 +126,7 @@ func (m *Charger) Status() (api.ChargeStatus, error) { return api.StatusNone, err } - return api.ChargeStatus(s), nil + return api.ChargeStatusString(s) } // Enabled implements the api.Charger interface diff --git a/charger/hardybarth-salia.go b/charger/hardybarth-salia.go index 53622d527..c9a33de28 100644 --- a/charger/hardybarth-salia.go +++ b/charger/hardybarth-salia.go @@ -151,13 +151,7 @@ func (wb *Salia) Status() (api.ChargeStatus, error) { if err != nil { return api.StatusNone, err } - - switch s := res.Secc.Port0.Ci.Charge.Cp.Status; s { - case "A", "B", "C": - return api.ChargeStatus(s), nil - default: - return api.StatusNone, fmt.Errorf("invalid state: %s", s) - } + return api.ChargeStatusString(res.Secc.Port0.Ci.Charge.Cp.Status) } // Enabled implements the api.Charger interface diff --git a/charger/hesotec.go b/charger/hesotec.go index 1d72fb090..f36adc4f2 100644 --- a/charger/hesotec.go +++ b/charger/hesotec.go @@ -99,13 +99,7 @@ func (wb *Hesotec) Status() (api.ChargeStatus, error) { if err != nil { return api.StatusNone, err } - - switch s := string(b[0]); s { - case "A", "B", "C": - return api.ChargeStatus(s), nil - default: - return api.StatusNone, fmt.Errorf("invalid status: %s", s) - } + return api.ChargeStatusString(string(b[0])) } // Enabled implements the api.Charger interface diff --git a/charger/innogy.go b/charger/innogy.go index 02fda893c..7c67c011d 100644 --- a/charger/innogy.go +++ b/charger/innogy.go @@ -98,7 +98,7 @@ func (wb *Innogy) Status() (api.ChargeStatus, error) { switch r := rune(b[0]); r { case 'A', 'B', 'D', 'E', 'F': - return api.ChargeStatus(r), nil + return api.ChargeStatusString(string(r)) case 'C': // C1 is "connected" if rune(b[1]) == '1' { diff --git a/charger/openwb.go b/charger/openwb.go index f32e21fcf..f7895d72d 100644 --- a/charger/openwb.go +++ b/charger/openwb.go @@ -185,7 +185,7 @@ func (m *OpenWB) Status() (api.ChargeStatus, error) { if err != nil { return api.StatusNone, err } - return api.ChargeStatus(status), nil + return api.ChargeStatusString(status) } func (m *OpenWB) MaxCurrent(current int64) error { diff --git a/charger/pantabox.go b/charger/pantabox.go index 4a1d42b35..95dade7d8 100644 --- a/charger/pantabox.go +++ b/charger/pantabox.go @@ -54,12 +54,7 @@ func (wb *Pantabox) Status() (api.ChargeStatus, error) { return api.StatusNone, err } - switch res.State { - case "A", "B", "C", "D", "E", "F": - return api.ChargeStatus(res.State), nil - default: - return api.StatusNone, fmt.Errorf("invalid state: %s", res.State) - } + return api.ChargeStatusString(res.State) } // Enabled implements the api.Charger interface diff --git a/charger/phoenix-charx.go b/charger/phoenix-charx.go index 9d9086b21..34bb677ce 100644 --- a/charger/phoenix-charx.go +++ b/charger/phoenix-charx.go @@ -139,7 +139,7 @@ func (wb *PhoenixCharx) Status() (api.ChargeStatus, error) { // TODO check IEC 61851-1 C1 state state := string(b[0]) - return api.ChargeStatus(state), nil + return api.ChargeStatusString(state) } // Enabled implements the api.Charger interface diff --git a/charger/phoenix-em-eth.go b/charger/phoenix-em-eth.go index 4940665a7..824099717 100644 --- a/charger/phoenix-em-eth.go +++ b/charger/phoenix-em-eth.go @@ -95,7 +95,7 @@ func (wb *PhoenixEMEth) Status() (api.ChargeStatus, error) { return api.StatusNone, err } - return api.ChargeStatus(string(b[1])), nil + return api.ChargeStatusString(string(b[1])) } // Enabled implements the api.Charger interface diff --git a/charger/phoenix-ev-eth.go b/charger/phoenix-ev-eth.go index ca46db925..103454a08 100644 --- a/charger/phoenix-ev-eth.go +++ b/charger/phoenix-ev-eth.go @@ -96,7 +96,7 @@ func (wb *PhoenixEVEth) Status() (api.ChargeStatus, error) { return api.StatusNone, err } - return api.ChargeStatus(string(b[1])), nil + return api.ChargeStatusString(string(b[1])) } // Enabled implements the api.Charger interface diff --git a/charger/phoenix-ev-ser.go b/charger/phoenix-ev-ser.go index 8b65ba886..e612fd580 100644 --- a/charger/phoenix-ev-ser.go +++ b/charger/phoenix-ev-ser.go @@ -61,7 +61,7 @@ func (wb *PhoenixEVSer) Status() (api.ChargeStatus, error) { return api.StatusNone, err } - return api.ChargeStatus(string(b[0])), nil + return api.ChargeStatusString(string(b[0])) } // Enabled implements the api.Charger interface diff --git a/charger/wallbe.go b/charger/wallbe.go index b46fd0a01..e927abad9 100644 --- a/charger/wallbe.go +++ b/charger/wallbe.go @@ -116,7 +116,7 @@ func (wb *Wallbe) Status() (api.ChargeStatus, error) { return api.StatusNone, err } - return api.ChargeStatus(string(b[1])), nil + return api.ChargeStatusString(string(b[1])) } // Enabled implements the api.Charger interface