DaheimLaden: fix firmware init (#33032)

This commit is contained in:
VolkerK62 2026-08-21 22:03:17 +02:00 • committed by GitHub
parent c28f2ff623
commit 7df861f66e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -363,17 +363,24 @@ func (wb *DaheimLaden) getPhases() (int, error) {
}
func (wb *DaheimLaden) checkStation() error {
// first call for fw init
if _, err := wb.conn.ReadHoldingRegisters(dlRegEvseMaxCurrent, 22); err != nil {
return err
}
// map may still be zero right after the wake-up call- poll briefly until populated
for range 5 {
b, err := wb.conn.ReadHoldingRegisters(dlRegEvseMaxCurrent, 22)
if err != nil {
return api.ErrSponsorRequired
return err
}
// station id starts (dlRegStationId-dlRegEvseMaxCurrent) registers into the block
s, err := utf16BEBytesAsString(b[2*(dlRegStationId-dlRegEvseMaxCurrent):])
if err != nil || s == "" {
if err != nil {
return err
}
if len(s) == 0 {
time.Sleep(200 * time.Millisecond)
continue
}
if strings.Contains(strings.ToLower(s), "heidelbridge") {
return api.ErrSponsorRequired
}
@ -383,11 +390,10 @@ func (wb *DaheimLaden) checkStation() error {
}
}
if strings.Contains(strings.ToLower(s), "heidelbridge") {
return api.ErrSponsorRequired
return nil
}
return nil
return api.ErrSponsorRequired
}
var _ api.Diagnosis = (*DaheimLaden)(nil)