Skip to content

Commit f290fcb

Browse files
authored
Merge pull request #2077 from TCWORLD/reinstate-total-regs
Reinstate PV Total Register for newer GEN6 (protocol≥100)
2 parents 3e01bdd + 4a1fe9c commit f290fcb

1 file changed

Lines changed: 29 additions & 7 deletions

File tree

custom_components/solax_modbus/plugin_solax.py

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7088,11 +7088,9 @@ def value_function_battery_voltage_cell_difference(initval: int, descr: Any, dat
70887088
allowedtypes=HYBRID | GEN6 | MPPT4,
70897089
icon="mdi:solar-power-variant",
70907090
),
7091-
# V001.00 system-info register. Keep the existing calculated pv_power_total
7092-
# as the primary entity because this register returns 0 on some tested units.
70937091
SolaXModbusSensorEntityDescription(
7094-
name="System PV Power Total",
7095-
key="system_pv_power_total",
7092+
name="PV Power Total",
7093+
key="pv_power_total",
70967094
native_unit_of_measurement=UnitOfPower.WATT,
70977095
device_class=SensorDeviceClass.POWER,
70987096
state_class=SensorStateClass.MEASUREMENT,
@@ -7130,6 +7128,9 @@ def value_function_battery_voltage_cell_difference(initval: int, descr: Any, dat
71307128
modbus_min=100,
71317129
icon="mdi:home-lightning-bolt",
71327130
),
7131+
# "Total Battery Power Charge" excludes GEN4 intentionally as the name
7132+
# conflicts with existing entity for register 0x16. As GEN4 is single
7133+
# battery this is not an issue.
71337134
SolaXModbusSensorEntityDescription(
71347135
name="Total Battery Power Charge",
71357136
key="battery_power_charge",
@@ -7139,7 +7140,8 @@ def value_function_battery_voltage_cell_difference(initval: int, descr: Any, dat
71397140
register=0x38,
71407141
register_type=REG_INPUT,
71417142
register_data_type=REGISTER_S32,
7142-
allowedtypes=AC | HYBRID | GEN6,
7143+
modbus_min=100,
7144+
allowedtypes=AC | HYBRID | GEN5 | GEN6,
71437145
icon="mdi:battery-charging",
71447146
),
71457147
SolaXModbusSensorEntityDescription(
@@ -9671,7 +9673,7 @@ def value_function_battery_voltage_cell_difference(initval: int, descr: Any, dat
96719673
native_unit_of_measurement=UnitOfPower.WATT,
96729674
device_class=SensorDeviceClass.POWER,
96739675
state_class=SensorStateClass.MEASUREMENT,
9674-
allowedtypes=HYBRID,
9676+
allowedtypes=HYBRID | GEN | GEN2 | GEN3,
96759677
blacklist=["PRI"], # X1-FIT has no DC PV input
96769678
depends_on=[
96779679
"pv_power_1",
@@ -9683,6 +9685,25 @@ def value_function_battery_voltage_cell_difference(initval: int, descr: Any, dat
96839685
],
96849686
icon="mdi:solar-power-variant",
96859687
),
9688+
SolaXModbusSensorEntityDescription(
9689+
name="PV Power Total",
9690+
key="pv_power_total",
9691+
value_function=value_function_pv_power_total,
9692+
native_unit_of_measurement=UnitOfPower.WATT,
9693+
device_class=SensorDeviceClass.POWER,
9694+
state_class=SensorStateClass.MEASUREMENT,
9695+
modbus_max=99,
9696+
allowedtypes=HYBRID | GEN4 | GEN5 | GEN6,
9697+
depends_on=[
9698+
"pv_power_1",
9699+
"pv_power_2",
9700+
"pv_power_3",
9701+
"pv_power_4",
9702+
"pv_power_5",
9703+
"pv_power_6",
9704+
],
9705+
icon="mdi:solar-power-variant",
9706+
),
96869707
SolaXModbusSensorEntityDescription(
96879708
name="House Load Alt",
96889709
key="house_load_alt",
@@ -9758,8 +9779,9 @@ def value_function_battery_voltage_cell_difference(initval: int, descr: Any, dat
97589779
native_unit_of_measurement=UnitOfPower.WATT,
97599780
device_class=SensorDeviceClass.POWER,
97609781
state_class=SensorStateClass.MEASUREMENT,
9782+
modbus_max=99,
97619783
value_function=value_function_battery_power_charge,
9762-
allowedtypes=AC | HYBRID | GEN5,
9784+
allowedtypes=AC | HYBRID | GEN5 | GEN6,
97639785
icon="mdi:battery-charging",
97649786
),
97659787
#####

0 commit comments

Comments
 (0)