diff --git a/custom_components/bluetti_bt/bluetti_bt_lib/devices/ep600.py b/custom_components/bluetti_bt/bluetti_bt_lib/devices/ep600.py index c59485b..282d1f4 100644 --- a/custom_components/bluetti_bt/bluetti_bt_lib/devices/ep600.py +++ b/custom_components/bluetti_bt/bluetti_bt_lib/devices/ep600.py @@ -62,6 +62,22 @@ def __init__(self, address: str, sn: str): self.struct.add_decimal_field("ac_output_current_phase2", 1519, 1) self.struct.add_decimal_field("ac_output_current_phase3", 1526, 1) + # KM - Consumption + self.struct.add_int_field("consumption_power_phase1", 1430) + self.struct.add_int_field("consumption_power_phase2", 1436) + self.struct.add_int_field("consumption_power_phase3", 1442) + self.struct.add_decimal_field("consumption_voltage_phase1", 1431, 1) + self.struct.add_decimal_field("consumption_voltage_phase2", 1437, 1) + self.struct.add_decimal_field("consumption_voltage_phase3", 1443, 1) + self.struct.add_decimal_field("consumption_current_phase1", 1432, 1) + self.struct.add_decimal_field("consumption_current_phase2", 1438, 1) + self.struct.add_decimal_field("consumption_current_phase3", 1444, 1) + + # KM - Totals + self.struct.add_uint_field('pv_input_power_all', 144) # Total PV in + self.struct.add_uint_field('consumption_power_all', 142) # Total AC out + self.struct.add_uint_field('grid_power_all', 146) # Total Grid in - value only +/- unknown + # Statistics self.struct.add_decimal_field( "total_ac_consumption", 152, 1 @@ -100,4 +116,9 @@ def polling_commands(self) -> List[ReadHoldingRegisters]: ReadHoldingRegisters(152, 1), ReadHoldingRegisters(156, 1), ReadHoldingRegisters(158, 1), + # KM - Consumption + ReadHoldingRegisters(1430, 15), + # KM - Totals + ReadHoldingRegisters(142, 5), + ] diff --git a/custom_components/bluetti_bt/bluetti_bt_lib/field_attributes.py b/custom_components/bluetti_bt/bluetti_bt_lib/field_attributes.py index cac844c..db9707e 100644 --- a/custom_components/bluetti_bt/bluetti_bt_lib/field_attributes.py +++ b/custom_components/bluetti_bt/bluetti_bt_lib/field_attributes.py @@ -217,6 +217,26 @@ def __init__( "total_ac_consumption": EnergyFieldAttributes("Total Load Consumption"), "total_grid_consumption": EnergyFieldAttributes("Total Grid Consumption"), "total_grid_feed": EnergyFieldAttributes("Total Grid Feed"), + + # KM - Consumption + "consumption_power_phase1": PowerFieldAttributes("Consumption Power Phase 1"), + "consumption_power_phase2": PowerFieldAttributes("Consumption Power Phase 2"), + "consumption_power_phase3": PowerFieldAttributes("Consumption Power Phase 3"), + "consumption_voltage_phase1": VoltageFieldAttributes("Consumption Voltage Phase 1"), + "consumption_voltage_phase2": VoltageFieldAttributes("Consumption Voltage Phase 2"), + "consumption_voltage_phase3": VoltageFieldAttributes("Consumption Voltage Phase 3"), + "consumption_current_phase1": CurrentFieldAttributes("Consumption Current Phase 1"), + "consumption_current_phase2": CurrentFieldAttributes("Consumption Current Phase 2"), + "consumption_current_phase3": CurrentFieldAttributes("Consumption Current Phase 3"), + # KM - Consumption end + + # KM - Totals + "pv_input_power_all": PowerFieldAttributes("PV Input Power All"), + "consumption_power_all": PowerFieldAttributes("Consumption Power All"), + "grid_power_all": PowerFieldAttributes("Grid Power All"), + # KM - Totals end + + # Device specific controls "power_off": FieldAttributes( type=FieldType.BOOL,