Kathrein: fix charge duration/ misc issues (#21585)

This commit is contained in:
Dodi1968 2025-06-02 13:31:31 +02:00 • committed by GitHub
parent 766b2f0309
commit b1d0cebfd1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -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))
}
}