From baeb6023575fa7feae88f850f2ec2c3efce54e11 Mon Sep 17 00:00:00 2001 From: andig Date: Fri, 25 Jul 2025 14:45:19 +0200 Subject: [PATCH] Loadpoint: fix usage of phase switch timer (#22525) --- core/loadpoint.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/core/loadpoint.go b/core/loadpoint.go index b37e58685..b273ff875 100644 --- a/core/loadpoint.go +++ b/core/loadpoint.go @@ -1349,7 +1349,9 @@ func (lp *Loadpoint) boostPower(batteryBoostPower float64) float64 { delta = lp.EffectiveMaxPower() // expire timers - lp.phaseTimer = elapsed + if lp.hasPhaseSwitching() { + lp.phaseTimer = elapsed + } lp.pvTimer = elapsed if lp.charging() { @@ -1402,7 +1404,7 @@ func (lp *Loadpoint) pvMaxCurrent(mode api.ChargeMode, sitePower, batteryBoostPo if mode == api.ModePV && lp.enabled && targetCurrent < minCurrent { projectedSitePower := sitePower - if !lp.phaseTimer.IsZero() { + if lp.hasPhaseSwitching() && !lp.phaseTimer.IsZero() { // calculate site power after a phase switch from activePhases phases -> 1 phase // notes: activePhases can be 1, 2 or 3 and phaseTimer can only be active if lp current is already at minCurrent projectedSitePower -= Voltage * minCurrent * float64(activePhases-1)