File tree Expand file tree Collapse file tree
packages/modules/devices/sungrow/sungrow Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -46,11 +46,16 @@ def detect_register_check(self) -> RegMode:
4646 return RegMode .NEW_REGISTERS
4747 except Exception :
4848 pass
49-
49+ # register 13000 is always available, if unused it contains zero
50+ # register type can only be determined if battery power is not zero
51+ if self .__tcp_client .read_input_registers (13021 , ModbusDataType .UINT_16 , unit = unit ) == 0 :
52+ raise ValueError ("Speicherleistung aktuell 0kW. Registertyp wird gesetzt sobald "
53+ "Speicher Leistungswerte liefert." )
5054 try :
51- self .__tcp_client .read_input_registers (13000 , ModbusDataType .UINT_16 , unit = unit )
52- log .debug ("Battery register check: using old_registers (13021 + 13000 bits for sign)." )
53- return RegMode .OLD_REGISTERS
55+ if self .__tcp_client .read_input_registers (13000 , ModbusDataType .UINT_16 , unit = unit ) != 0 :
56+ # if battery power is not zero and register 13000 shows status bits, old registers are used
57+ log .debug ("Battery register check: using old_registers (13021 + 13000 bits for sign)." )
58+ return RegMode .OLD_REGISTERS
5459 except Exception :
5560 pass
5661
You can’t perform that action at this time.
0 commit comments