Api: use phases to configure default value for 1p3p charger (#3940)

This commit is contained in:
andig 2022-07-25 15:16:02 +02:00 • committed by GitHub
parent f20b9bb58c
commit 7e0b569a38
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 3 deletions

View file

@ -1031,6 +1031,14 @@ func (lp *LoadPoint) scalePhasesIfAvailable(phases int) error {
return nil
}
// setDefaultPhases sets the default phase configuration
func (lp *LoadPoint) setDefaultPhases(phases int) {
lp.Lock()
defer lp.Unlock()
lp.DefaultPhases = phases
lp.phaseTimer = time.Time{}
}
// setPhases sets the number of enabled phases without modifying the charger
func (lp *LoadPoint) setPhases(phases int) {
if lp.GetPhases() != phases {

View file

@ -116,11 +116,14 @@ func (lp *LoadPoint) SetPhases(phases int) error {
return fmt.Errorf("invalid number of phases: %d", phases)
}
if _, ok := lp.charger.(api.ChargePhases); ok && phases > 0 {
return lp.scalePhases(phases)
// set new default
lp.setDefaultPhases(phases)
// apply immediately if not 1p3p
if _, ok := lp.charger.(api.ChargePhases); !ok {
lp.setPhases(phases)
}
lp.setPhases(phases)
return nil
}