Skip to content

Commit 460c2f8

Browse files
committed
Fix Battery Input/Output Energy Sensors
These existed for GEN4/5 on older protocol versions, so re-instate. Split GEN6 into pre/post 100 protocol versions as the scaling is incorrect in the newer version.
1 parent f9dfd41 commit 460c2f8

1 file changed

Lines changed: 15 additions & 41 deletions

File tree

custom_components/solax_modbus/plugin_solax.py

Lines changed: 15 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -6624,7 +6624,7 @@ def value_function_battery_voltage_cell_difference(initval: int, descr: Any, dat
66246624
allowedtypes=AC | HYBRID | GEN5 | GEN6,
66256625
),
66266626
SolaXModbusSensorEntityDescription(
6627-
name="Battery Output Energy Total", # Need revisit these
6627+
name="Battery Output Energy Total",
66286628
key="battery_output_energy_total",
66296629
native_unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR,
66306630
device_class=SensorDeviceClass.ENERGY,
@@ -6635,7 +6635,7 @@ def value_function_battery_voltage_cell_difference(initval: int, descr: Any, dat
66356635
scale=0.1,
66366636
register_data_type=REGISTER_U32, # REGISTER_ULSB16MSB16,
66376637
entity_registry_enabled_default=False,
6638-
allowedtypes=AC | HYBRID | GEN2 | GEN3,
6638+
allowedtypes=AC | HYBRID | GEN2 | GEN3 | GEN4 | GEN5,
66396639
),
66406640
SolaXModbusSensorEntityDescription(
66416641
name="Battery Output Energy Total", # Need revisit these
@@ -6649,8 +6649,8 @@ def value_function_battery_voltage_cell_difference(initval: int, descr: Any, dat
66496649
scale=0.1,
66506650
register_data_type=REGISTER_U32, # REGISTER_ULSB16MSB16,
66516651
entity_registry_enabled_default=False,
6652-
allowedtypes=AC | HYBRID | GEN4 | GEN5,
6653-
modbus_min=101,
6652+
modbus_min=100,
6653+
allowedtypes=AC | HYBRID | GEN6,
66546654
),
66556655
SolaXModbusSensorEntityDescription(
66566656
name="Battery Output Energy Total", # Need revisit these
@@ -6664,6 +6664,7 @@ def value_function_battery_voltage_cell_difference(initval: int, descr: Any, dat
66646664
scale=0.001,
66656665
register_data_type=REGISTER_U32, # REGISTER_ULSB16MSB16,
66666666
entity_registry_enabled_default=False,
6667+
modbus_max=99,
66676668
allowedtypes=AC | HYBRID | GEN6,
66686669
),
66696670
SolaXModbusSensorEntityDescription(
@@ -6681,20 +6682,7 @@ def value_function_battery_voltage_cell_difference(initval: int, descr: Any, dat
66816682
allowedtypes=HYBRID | GEN2,
66826683
),
66836684
SolaXModbusSensorEntityDescription(
6684-
name="Battery Output Energy Today", # Need revisit this
6685-
key="battery_output_energy_today",
6686-
native_unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR,
6687-
device_class=SensorDeviceClass.ENERGY,
6688-
state_class=SensorStateClass.TOTAL_INCREASING,
6689-
icon="mdi:battery-arrow-down",
6690-
register=0x20,
6691-
register_type=REG_INPUT,
6692-
register_data_type=REGISTER_U16,
6693-
scale=0.1,
6694-
allowedtypes=AC | HYBRID | GEN3 | GEN6,
6695-
),
6696-
SolaXModbusSensorEntityDescription(
6697-
name="Battery Output Energy Today", # Need revisit this
6685+
name="Battery Output Energy Today",
66986686
key="battery_output_energy_today",
66996687
native_unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR,
67006688
device_class=SensorDeviceClass.ENERGY,
@@ -6704,8 +6692,7 @@ def value_function_battery_voltage_cell_difference(initval: int, descr: Any, dat
67046692
register_type=REG_INPUT,
67056693
register_data_type=REGISTER_U16,
67066694
scale=0.1,
6707-
allowedtypes=AC | HYBRID | GEN4 | GEN5,
6708-
modbus_min=101,
6695+
allowedtypes=AC | HYBRID | GEN3 | GEN4 | GEN5 | GEN6,
67096696
),
67106697
SolaXModbusSensorEntityDescription(
67116698
name="Battery Input Energy Total",
@@ -6719,10 +6706,10 @@ def value_function_battery_voltage_cell_difference(initval: int, descr: Any, dat
67196706
scale=0.1,
67206707
register_data_type=REGISTER_U32, # REGISTER_ULSB16MSB16,
67216708
entity_registry_enabled_default=False,
6722-
allowedtypes=AC | HYBRID | GEN3,
6709+
allowedtypes=AC | HYBRID | GEN3 | GEN4 | GEN5,
67236710
),
67246711
SolaXModbusSensorEntityDescription(
6725-
name="Battery Input Energy Total",
6712+
name="Battery Input Energy Total", # Need revisit this
67266713
key="battery_input_energy_total",
67276714
native_unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR,
67286715
device_class=SensorDeviceClass.ENERGY,
@@ -6733,11 +6720,11 @@ def value_function_battery_voltage_cell_difference(initval: int, descr: Any, dat
67336720
scale=0.1,
67346721
register_data_type=REGISTER_U32, # REGISTER_ULSB16MSB16,
67356722
entity_registry_enabled_default=False,
6736-
allowedtypes=AC | HYBRID | GEN4 | GEN5,
6737-
modbus_min=101,
6723+
modbus_min=100,
6724+
allowedtypes=AC | HYBRID | GEN6,
67386725
),
67396726
SolaXModbusSensorEntityDescription(
6740-
name="Battery Input Energy Total",
6727+
name="Battery Input Energy Total", # Need revisit this
67416728
key="battery_input_energy_total",
67426729
native_unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR,
67436730
device_class=SensorDeviceClass.ENERGY,
@@ -6748,6 +6735,7 @@ def value_function_battery_voltage_cell_difference(initval: int, descr: Any, dat
67486735
scale=0.001,
67496736
register_data_type=REGISTER_U32, # REGISTER_ULSB16MSB16,
67506737
entity_registry_enabled_default=False,
6738+
modbus_max=99,
67516739
allowedtypes=AC | HYBRID | GEN6,
67526740
),
67536741
SolaXModbusSensorEntityDescription(
@@ -6771,7 +6759,7 @@ def value_function_battery_voltage_cell_difference(initval: int, descr: Any, dat
67716759
allowedtypes=HYBRID | GEN2,
67726760
),
67736761
SolaXModbusSensorEntityDescription(
6774-
name="Battery Input Energy Today", # Need revisit this
6762+
name="Battery Input Energy Today",
67756763
key="battery_input_energy_today",
67766764
native_unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR,
67776765
device_class=SensorDeviceClass.ENERGY,
@@ -6781,21 +6769,7 @@ def value_function_battery_voltage_cell_difference(initval: int, descr: Any, dat
67816769
register_type=REG_INPUT,
67826770
scale=0.1,
67836771
register_data_type=REGISTER_U16,
6784-
allowedtypes=AC | HYBRID | GEN3 | GEN6,
6785-
),
6786-
SolaXModbusSensorEntityDescription(
6787-
name="Battery Input Energy Today", # Need revisit this
6788-
key="battery_input_energy_today",
6789-
native_unit_of_measurement=UnitOfEnergy.KILO_WATT_HOUR,
6790-
device_class=SensorDeviceClass.ENERGY,
6791-
state_class=SensorStateClass.TOTAL_INCREASING,
6792-
icon="mdi:battery-arrow-up",
6793-
register=0x23,
6794-
register_type=REG_INPUT,
6795-
scale=0.1,
6796-
register_data_type=REGISTER_U16,
6797-
allowedtypes=AC | HYBRID | GEN4 | GEN5,
6798-
modbus_min=101,
6772+
allowedtypes=AC | HYBRID | GEN3 | GEN4 | GEN5 | GEN6,
67996773
),
68006774
SolaXModbusSensorEntityDescription(
68016775
name="BMS 1 Charge Max Current",

0 commit comments

Comments
 (0)