diff --git a/charger/kathrein.go b/charger/kathrein.go index 3f516148e..e3b17be10 100644 --- a/charger/kathrein.go +++ b/charger/kathrein.go @@ -170,11 +170,6 @@ func NewKathreinFromConfig(ctx context.Context, other map[string]any) (api.Charg return nil, err } - // Enable EMS-Control - if _, err := wb.conn.WriteSingleRegister(kathreinRegEMSControlRegister, 0x8000); err != nil { - return nil, err - } - return wb, nil } @@ -320,7 +315,7 @@ func (wb *Kathrein) ChargeDuration() (time.Duration, error) { return 0, err } - return time.Duration(binary.BigEndian.Uint16(b)) * time.Second, nil + return time.Duration(binary.BigEndian.Uint32(b)) * time.Second, nil } var _ api.ChargeRater = (*Kathrein)(nil) @@ -373,13 +368,12 @@ func (wb *Kathrein) Phases1p3p(phases int) error { } // Disable and re-enable charging to apply the new phase setting + if err := wb.Enable(false); err != nil { + return err + } + if enabled { - if err := wb.Enable(false); err != nil { - return err - } - if err := wb.Enable(true); err != nil { - return err - } + return wb.Enable(true) } return nil @@ -445,15 +439,15 @@ func (wb *Kathrein) Diagnose() { } if b, err := wb.conn.ReadHoldingRegisters(kathreinRegGrantedCurrent, 1); err == nil { - fmt.Printf("EVSE - Granted Current:\t%d mA\n", b[1]) + fmt.Printf("EVSE - Granted Current:\t%d mA\n", binary.BigEndian.Uint16(b)) } if b, err := wb.conn.ReadHoldingRegisters(kathreinRegGrantedPower, 1); err == nil { - fmt.Printf("EVSE - Granted Power:\t%d W\n", b[1]) + fmt.Printf("EVSE - Granted Power:\t%d W\n", binary.BigEndian.Uint16(b)) } if b, err := wb.conn.ReadHoldingRegisters(kathreinRegEMSControlRegister, 1); err == nil { - fmt.Printf("EMS-Control - Control-Register:\t%d\n", b[1]) + fmt.Printf("EMS-Control - Control-Register:\t%d\n", b[0]) } if b, err := wb.conn.ReadHoldingRegisters(kathreinRegEMSSetpointRelais, 1); err == nil { @@ -461,11 +455,11 @@ func (wb *Kathrein) Diagnose() { } if b, err := wb.conn.ReadHoldingRegisters(kathreinRegEMSSetpointChargingCurrent, 1); err == nil { - fmt.Printf("EMS-Control - Setpoint Charging Current:\t%d mA\n", b[1]) + fmt.Printf("EMS-Control - Setpoint Charging Current:\t%d mA\n", binary.BigEndian.Uint16(b)) } if b, err := wb.conn.ReadHoldingRegisters(kathreinRegEMSTimeoutPeriod, 1); err == nil { - fmt.Printf("EMS-Control - Timeout Period:\t%d s\n", b[1]) + fmt.Printf("EMS-Control - Timeout Period:\t%d s\n", binary.BigEndian.Uint16(b)) } if b, err := wb.conn.ReadHoldingRegisters(kathreinRegEMSTimeOutFallbackPattern, 1); err == nil { @@ -473,6 +467,6 @@ func (wb *Kathrein) Diagnose() { } if b, err := wb.conn.ReadHoldingRegisters(kathreinRegEMSTimeOutFallbackCurrent, 1); err == nil { - fmt.Printf("EMS-Control - Timeout Fallback Current:\t%d mA\n", b[1]) + fmt.Printf("EMS-Control - Timeout Fallback Current:\t%d mA\n", binary.BigEndian.Uint16(b)) } }