From 42fa9d263ebfe99787c372d446402bf227e0b9e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20He=C3=9F?= Date: Mon, 16 Sep 2024 20:41:51 +0200 Subject: [PATCH] Easee: obey current limits based on charger configuration (#16116) --- charger/easee.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/charger/easee.go b/charger/easee.go index 063c67073..2d4ffb4c9 100644 --- a/charger/easee.go +++ b/charger/easee.go @@ -50,6 +50,7 @@ type Easee struct { log *util.Logger mux sync.RWMutex lastEnergyPollMux sync.Mutex + maxChargerCurrent float64 dynamicChargerCurrent float64 current float64 chargerEnabled bool @@ -314,6 +315,8 @@ func (c *Easee) ProductUpdate(i json.RawMessage) { c.phaseMode = value.(int) case easee.OUTPUT_PHASE: c.outputPhase = value.(int) / 10 // API gives 0,10,30 for 0,1,3p + case easee.MAX_CHARGER_CURRENT: + c.maxChargerCurrent = value.(float64) case easee.DYNAMIC_CHARGER_CURRENT: c.dynamicChargerCurrent = value.(float64) @@ -649,6 +652,9 @@ func (c *Easee) waitForDynamicChargerCurrent(targetCurrent float64) error { // MaxCurrent implements the api.Charger interface func (c *Easee) MaxCurrent(current int64) error { cur := float64(current) + if c.maxChargerCurrent != 0 { + cur = min(cur, c.maxChargerCurrent) + } data := easee.ChargerSettings{ DynamicChargerCurrent: &cur, }