From 63d152c90e6b87553a2d2393a3daea5ff3c0a831 Mon Sep 17 00:00:00 2001 From: andig Date: Mon, 24 Feb 2025 13:14:27 +0100 Subject: [PATCH] Vestel: fix phase switching --- charger/vestel.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/charger/vestel.go b/charger/vestel.go index f3599db9a..24344c2ca 100644 --- a/charger/vestel.go +++ b/charger/vestel.go @@ -105,7 +105,7 @@ func NewVestel(ctx context.Context, uri string, id uint8) (api.Charger, error) { phasesS func(int) error phasesG func() (int, error) ) - if b, err := wb.conn.ReadHoldingRegisters(vestelRegNumberPhases, 1); err == nil && binary.BigEndian.Uint16(b) == 3 { + if b, err := wb.conn.ReadHoldingRegisters(vestelRegNumberPhases, 1); err == nil && binary.BigEndian.Uint16(b) == 1 { phasesS = wb.phases1p3p phasesG = wb.getPhases } @@ -284,7 +284,7 @@ func (wb *Vestel) Voltages() (float64, float64, float64, error) { // phases1p3p implements the api.PhaseSwitcher interface func (wb *Vestel) phases1p3p(phases int) error { - _, err := wb.conn.WriteSingleRegister(vestelRegNumberPhases, uint16(phases)) + _, err := wb.conn.WriteSingleRegister(vestelRegNumberPhases, uint16((phases-1)>>1)) return err } @@ -294,7 +294,7 @@ func (wb *Vestel) getPhases() (int, error) { if err != nil { return 0, err } - return int(binary.BigEndian.Uint16(b)), nil + return 1 + int(binary.BigEndian.Uint16(b))<<1, nil } var _ api.Diagnosis = (*Vestel)(nil)