@@ -153,9 +153,8 @@ class ET(Inverter):
153153 read_bytes2_signed (data , 35140 ),
154154 "House Consumption" , "W" , Kind .AC ),
155155
156- # Power4S("pbattery2", 35264, "Battery2 Power", Kind.BAT),
157- # Integer("battery2_mode", 35266, "Battery2 Mode code", "", Kind.BAT),
158- # Enum2("battery2_mode_label", 35184, BATTERY_MODES, "Battery2 Mode", Kind.BAT),
156+ # Voltage("vbattery2", 47924, "Battery2 Voltage", Kind.BAT),
157+ # Enum2("battery2_mode_label", 35184, BATTERY_MODES, "Battery2 Mode", Kind.BAT),
159158 )
160159
161160 # Modbus registers from offset 0x9088 (37000)
@@ -222,6 +221,13 @@ class ET(Inverter):
222221 # String8("battery2_sn", 39058, "Battery 2 S/N", Kind.BAT),
223222 )
224223
224+ # Modbus registers from offset 0x89be (35262)
225+ __all_sensors_battery2_extended : tuple [Sensor , ...] = (
226+ Power4S ("pbattery2" , 35264 , "Battery2 Power" , Kind .BAT ),
227+ Integer ("battery2_mode" , 35266 , "Battery2 Mode code" , "" , Kind .BAT ),
228+ Enum2 ("battery2_mode_label" , 35266 , BATTERY_MODES , "Battery2 Mode" , Kind .BAT )
229+ )
230+
225231 # Inverter's meter data
226232 # Modbus registers from offset 0x8ca0 (36000)
227233 __all_sensors_meter : tuple [Sensor , ...] = (
@@ -479,6 +485,7 @@ def __init__(self, host: str, port: int, comm_addr: int = 0, timeout: int = 1, r
479485 self ._READ_BATTERY_INFO : ProtocolCommand = self ._read_command (0x9088 , 0x0018 )
480486 self ._READ_BATTERY2_INFO : ProtocolCommand = self ._read_command (0x9858 , 0x0016 )
481487 self ._READ_MPPT_DATA : ProtocolCommand = self ._read_command (0x89e5 , 0x3d )
488+ self ._READ_BATTERY2_INFO_EXTENDED = self ._read_command (0x89be , 0x06 )
482489 self ._has_eco_mode_v2 : bool = True
483490 self ._has_peak_shaving : bool = True
484491 self ._has_battery : bool = True
@@ -489,6 +496,7 @@ def __init__(self, host: str, port: int, comm_addr: int = 0, timeout: int = 1, r
489496 self ._sensors = self .__all_sensors
490497 self ._sensors_battery = self .__all_sensors_battery
491498 self ._sensors_battery2 = self .__all_sensors_battery2
499+ self ._sensors_battery2_extended = self .__all_sensors_battery2_extended
492500 self ._sensors_meter = self .__all_sensors_meter
493501 self ._sensors_mppt = self .__all_sensors_mppt
494502 self ._settings : dict [str , Sensor ] = {s .id_ : s for s in self .__all_settings }
@@ -590,6 +598,9 @@ async def read_runtime_data(self) -> dict[str, Any]:
590598 response = await self ._read_from_socket (self ._READ_BATTERY2_INFO )
591599 data .update (
592600 self ._map_response (response , self ._sensors_battery2 ))
601+ response = await self ._read_from_socket (self ._READ_BATTERY2_INFO_EXTENDED )
602+ data .update (
603+ self ._map_response (response , self ._sensors_battery2_extended ))
593604 except RequestRejectedException as ex :
594605 if ex .message == ILLEGAL_DATA_ADDRESS :
595606 logger .info ("Battery 2 values not supported, disabling further attempts." )
@@ -820,6 +831,7 @@ def sensors(self) -> tuple[Sensor, ...]:
820831 result = result + self ._sensors_battery
821832 if self ._has_battery2 :
822833 result = result + self ._sensors_battery2
834+ result = result + self ._sensors_battery2_extended
823835 if self ._has_mppt :
824836 result = result + self ._sensors_mppt
825837 return result
0 commit comments