From a094b85a241d4467466ff4b6e39231a3cf5705de Mon Sep 17 00:00:00 2001 From: andig Date: Sun, 16 Apr 2023 12:44:23 +0200 Subject: [PATCH] Fix excessive updates when max current has full amp steps (#7494) --- core/loadpoint.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/core/loadpoint.go b/core/loadpoint.go index b68e850f4..13ef79bb4 100644 --- a/core/loadpoint.go +++ b/core/loadpoint.go @@ -645,13 +645,17 @@ func (lp *Loadpoint) syncCharger() { // setLimit applies charger current limits and enables/disables accordingly func (lp *Loadpoint) setLimit(chargeCurrent float64, force bool) error { + // full amps only? + if _, ok := lp.charger.(api.ChargerEx); !ok || lp.vehicleHasFeature(api.CoarseCurrent) { + chargeCurrent = math.Trunc(chargeCurrent) + } + // set current if chargeCurrent != lp.chargeCurrent && chargeCurrent >= lp.GetMinCurrent() { var err error - if charger, ok := lp.charger.(api.ChargerEx); ok && !lp.vehicleHasFeature(api.CoarseCurrent) { + if charger, ok := lp.charger.(api.ChargerEx); ok { err = charger.MaxCurrentMillis(chargeCurrent) } else { - chargeCurrent = math.Trunc(chargeCurrent) err = lp.charger.MaxCurrent(int64(chargeCurrent)) }