Dadapower: improve phase switching

This commit is contained in:
andig 2023-10-15 14:33:38 +02:00
parent 2db991c823
commit 5919d5c9e6

View file

@ -207,16 +207,30 @@ var _ api.PhaseSwitcher = (*Dadapower)(nil)
// Phases1p3p implements the api.PhaseSwitcher interface
func (wb *Dadapower) Phases1p3p(phases int) error {
err := wb.Enable(false)
if err == nil {
enabled, err := wb.Enabled()
if err != nil {
return err
}
if enabled {
if err := wb.Enable(false); err != nil {
return err
}
time.Sleep(5 * time.Second)
_, err = wb.conn.WriteSingleRegister(dadapowerRegActivePhases+wb.regOffset, uint16(phases))
}
if err == nil {
if _, err := wb.conn.WriteSingleRegister(dadapowerRegActivePhases+wb.regOffset, uint16(phases)); err != nil {
return err
}
if enabled {
time.Sleep(2 * time.Second)
err = wb.Enable(true)
if err := wb.Enable(true); err != nil {
return err
}
}
return err
return nil
}
var _ api.Identifier = (*Dadapower)(nil)