diff --git a/internal/charger/easee.go b/internal/charger/easee.go index b238bbbb2..cad3b6e24 100644 --- a/internal/charger/easee.go +++ b/internal/charger/easee.go @@ -152,13 +152,13 @@ func (c *Easee) Status() (api.ChargeStatus, error) { } switch res.ChargerOpMode { - case 1: + case easee.ModeDisconnected: return api.StatusA, nil - case 2, 4, 6: + case easee.ModeAwaitingStart, easee.ModeCompleted, easee.ModeReadyToCharge: return api.StatusB, nil - case 3: + case easee.ModeCharging: return api.StatusC, nil - case 5: + case easee.ModeError: return api.StatusF, nil default: return api.StatusNone, fmt.Errorf("unknown opmode: %d", res.ChargerOpMode) @@ -168,7 +168,7 @@ func (c *Easee) Status() (api.ChargeStatus, error) { // Enabled implements the api.Charger interface func (c *Easee) Enabled() (bool, error) { res, err := c.state() - return res.DynamicCircuitCurrentP1 > 0, err + return res.ChargerOpMode == easee.ModeCharging || res.ChargerOpMode == easee.ModeReadyToCharge, err } // Enable implements the api.Charger interface diff --git a/internal/charger/easee/identity.go b/internal/charger/easee/identity.go index 9c5fa2850..d4ee13760 100644 --- a/internal/charger/easee/identity.go +++ b/internal/charger/easee/identity.go @@ -18,6 +18,17 @@ type Token struct { Valid time.Time // helper to store validity timestamp } +// charge mode definition +const ( + ModeOffline int = 0 + ModeDisconnected int = 1 + ModeAwaitingStart int = 2 + ModeCharging int = 3 + ModeCompleted int = 4 + ModeError int = 5 + ModeReadyToCharge int = 6 +) + // Identity manages the /api/accounts/token and /api/accounts/refresh_token response type Identity struct { *request.Helper