From 21960b71e4dbc9973852eab58bc52ade77674167 Mon Sep 17 00:00:00 2001 From: andig Date: Mon, 25 Oct 2021 15:38:54 +0200 Subject: [PATCH] Easee: restore current after charger resumes (#1786) --- charger/easee.go | 12 ++++++++++-- charger/easee/{message.go => types.go} | 5 +++++ 2 files changed, 15 insertions(+), 2 deletions(-) rename charger/easee/{message.go => types.go} (98%) diff --git a/charger/easee.go b/charger/easee.go index 9fa108558..d286406f1 100644 --- a/charger/easee.go +++ b/charger/easee.go @@ -45,6 +45,7 @@ type Easee struct { cache time.Duration log *util.Logger mux sync.Mutex + current float64 chargerEnabled bool enabledStatus bool currentPower, sessionEnergy, @@ -85,6 +86,7 @@ func NewEasee(user, password, charger string, circuit int, cache time.Duration) charger: charger, cache: cache, log: log, + current: 6, // default current } if cache > 0 { @@ -291,14 +293,19 @@ func (c *Easee) Enable(enable bool) error { } // resume/stop charger - action := "pause_charging" + action := easee.ChargePause if enable { - action = "resume_charging" + action = easee.ChargeResume } uri := fmt.Sprintf("%s/chargers/%s/commands/%s", easee.API, c.charger, action) _, err := c.Post(uri, request.JSONContent, nil) + if err == nil && action == easee.ChargeResume { + // restore current after enabling https://github.com/evcc-io/evcc/pull/1786 + err = c.MaxCurrentMillis(c.current) + } + return err } @@ -318,6 +325,7 @@ func (c *Easee) MaxCurrentMillis(current float64) error { uri := fmt.Sprintf("%s/chargers/%s/settings", easee.API, c.charger) resp, err := c.Post(uri, request.JSONContent, request.MarshalJSON(data)) if err == nil { + c.current = current resp.Body.Close() } diff --git a/charger/easee/message.go b/charger/easee/types.go similarity index 98% rename from charger/easee/message.go rename to charger/easee/types.go index 28c9cd627..eae18d495 100644 --- a/charger/easee/message.go +++ b/charger/easee/types.go @@ -3,6 +3,11 @@ package easee // API is the Easee API endpoint const API = "https://api.easee.cloud/api" +const ( + ChargePause = "pause_charging" + ChargeResume = "resume_charging" +) + // charge mode definition const ( ModeOffline int = 0