OpenWB 2.0: fix enabled state handling (#11543)

This commit is contained in:
MarkusGH 2024-01-07 15:59:26 +01:00 • committed by GitHub
parent 38cbd3e80c
commit a55ce941c7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -11,9 +11,10 @@ import (
// OpenWB20 charger implementation
type OpenWB20 struct {
conn *modbus.Connection
curr uint16
base uint16
conn *modbus.Connection
enabled bool
curr uint16
base uint16
}
const (
@ -106,12 +107,7 @@ func (wb *OpenWB20) Status() (api.ChargeStatus, error) {
// Enabled implements the api.Charger interface
func (wb *OpenWB20) Enabled() (bool, error) {
b, err := wb.conn.ReadInputRegisters(wb.base+openwbRegActualAmps, 1)
if err != nil {
return false, err
}
return binary.BigEndian.Uint16(b) == 1, nil
return verifyEnabled(wb, wb.enabled)
}
func (wb *OpenWB20) setCurrent(u uint16) error {
@ -125,8 +121,11 @@ func (wb *OpenWB20) Enable(enable bool) error {
if enable {
u = wb.curr
}
return wb.setCurrent(u)
err := wb.setCurrent(u)
if err == nil {
wb.enabled = enable
}
return err
}
// MaxCurrent implements the api.Charger interface