Loadpoint: fix usage of phase switch timer (#22525)

This commit is contained in:
andig 2025-07-25 14:45:19 +02:00 • committed by GitHub
parent ba29e4c16e
commit baeb602357
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -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)