Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 9 additions & 4 deletions packages/modules/devices/sungrow/sungrow/bat.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,11 +46,16 @@ def detect_register_check(self) -> RegMode:
return RegMode.NEW_REGISTERS
except Exception:
pass

# register 13000 is always available, if unused it contains zero
# register type can only be determined if battery power is not zero
if self.__tcp_client.read_input_registers(13021, ModbusDataType.UINT_16, unit=unit) == 0:
raise ValueError("Speicherleistung aktuell 0kW. Registertyp wird gesetzt sobald "
"Speicher Leistungswerte liefert.")
try:
self.__tcp_client.read_input_registers(13000, ModbusDataType.UINT_16, unit=unit)
log.debug("Battery register check: using old_registers (13021 + 13000 bits for sign).")
return RegMode.OLD_REGISTERS
if self.__tcp_client.read_input_registers(13000, ModbusDataType.UINT_16, unit=unit) != 0:
# if battery power is not zero and register 13000 shows status bits, old registers are used
log.debug("Battery register check: using old_registers (13021 + 13000 bits for sign).")
return RegMode.OLD_REGISTERS
except Exception:
pass

Expand Down