diff --git a/custom_components/bluetti_bt/bluetti_bt_lib/base_devices/ProtocolV1Device.py b/custom_components/bluetti_bt/bluetti_bt_lib/base_devices/ProtocolV1Device.py index 6dd4dd0..ff66723 100644 --- a/custom_components/bluetti_bt/bluetti_bt_lib/base_devices/ProtocolV1Device.py +++ b/custom_components/bluetti_bt/bluetti_bt_lib/base_devices/ProtocolV1Device.py @@ -56,10 +56,8 @@ class ProtocolV1Device(BluettiDevice): ReadHoldingRegisters(36, 4), ReadHoldingRegisters(41, 1), ReadHoldingRegisters(43, 1), - ReadHoldingRegisters(91, 2), - ReadHoldingRegisters(96, 1), - ReadHoldingRegisters(98, 2), ReadHoldingRegisters(48, 2), + ReadHoldingRegisters(3007, 2), ] @property diff --git a/custom_components/bluetti_bt/bluetti_bt_lib/devices/ac200m.py b/custom_components/bluetti_bt/bluetti_bt_lib/devices/ac200m.py index f5fa41a..5c4f4ae 100644 --- a/custom_components/bluetti_bt/bluetti_bt_lib/devices/ac200m.py +++ b/custom_components/bluetti_bt/bluetti_bt_lib/devices/ac200m.py @@ -13,10 +13,10 @@ class AC200M(ProtocolV1Device): # Details self.struct.add_enum_field("ac_output_mode", 70, OutputMode) - self.struct.add_uint_field("internal_ac_voltage", 71) + self.struct.add_decimal_field("internal_ac_voltage", 71, 1) self.struct.add_decimal_field("internal_current_one", 72, 1) self.struct.add_uint_field("internal_power_one", 73) - self.struct.add_decimal_field("internal_ac_frequency", 74, 1) + self.struct.add_decimal_field("internal_ac_frequency", 74, 2) self.struct.add_uint_field("internal_dc_input_voltage", 86) self.struct.add_decimal_field("internal_dc_input_power", 87, 1) self.struct.add_decimal_field("internal_dc_input_current", 88, 2) @@ -35,13 +35,14 @@ class AC200M(ProtocolV1Device): @property def polling_commands(self) -> List[ReadHoldingRegisters]: return super().polling_commands + [ - ReadHoldingRegisters(70, 4), + ReadHoldingRegisters(70, 5), ReadHoldingRegisters(86, 3), + ReadHoldingRegisters(3060, 2), ] @property def writable_ranges(self) -> List[range]: - return super().writable_ranges + [range(3060, 3061)] + return super().writable_ranges + [range(3060, 3062)] @property def pack_polling_commands(self) -> List[ReadHoldingRegisters]: diff --git a/custom_components/bluetti_bt/bluetti_bt_lib/devices/ac300.py b/custom_components/bluetti_bt/bluetti_bt_lib/devices/ac300.py index 3ceae5c..5a73e4a 100644 --- a/custom_components/bluetti_bt/bluetti_bt_lib/devices/ac300.py +++ b/custom_components/bluetti_bt/bluetti_bt_lib/devices/ac300.py @@ -13,10 +13,10 @@ class AC300(ProtocolV1Device): # Details (matches EP500 + AC500) self.struct.add_enum_field("ac_output_mode", 70, OutputMode) - self.struct.add_uint_field("internal_ac_voltage", 71) + self.struct.add_decimal_field("internal_ac_voltage", 71, 1) self.struct.add_decimal_field("internal_current_one", 72, 1) self.struct.add_uint_field("internal_power_one", 73) - self.struct.add_decimal_field("internal_ac_frequency", 74, 1) + self.struct.add_decimal_field("internal_ac_frequency", 74, 2) self.struct.add_decimal_field("internal_current_two", 75, 1) self.struct.add_uint_field("internal_power_two", 76) self.struct.add_decimal_field("ac_input_voltage", 77, 1) @@ -50,14 +50,20 @@ class AC300(ProtocolV1Device): @property def polling_commands(self) -> List[ReadHoldingRegisters]: return super().polling_commands + [ - ReadHoldingRegisters(70, 10), + ReadHoldingRegisters(70, 11), ReadHoldingRegisters(86, 3), + ReadHoldingRegisters(3001, 1), + ReadHoldingRegisters(3004, 2), + ReadHoldingRegisters(3011, 1), + ReadHoldingRegisters(3013, 1), + ReadHoldingRegisters(3015, 2), + ReadHoldingRegisters(3061, 1), ] @property def writable_ranges(self) -> List[range]: return super().writable_ranges + [ - range(3001, 3016), + range(3001, 3017), range(3061), ] diff --git a/custom_components/bluetti_bt/bluetti_bt_lib/devices/ac500.py b/custom_components/bluetti_bt/bluetti_bt_lib/devices/ac500.py index ca0dcc9..099ee6f 100644 --- a/custom_components/bluetti_bt/bluetti_bt_lib/devices/ac500.py +++ b/custom_components/bluetti_bt/bluetti_bt_lib/devices/ac500.py @@ -13,10 +13,10 @@ class AC500(ProtocolV1Device): # Details (matches EP500 + AC300) self.struct.add_enum_field("ac_output_mode", 70, OutputMode) - self.struct.add_uint_field("internal_ac_voltage", 71) + self.struct.add_decimal_field("internal_ac_voltage", 71, 1) self.struct.add_decimal_field("internal_current_one", 72, 1) self.struct.add_uint_field("internal_power_one", 73) - self.struct.add_decimal_field("internal_ac_frequency", 74, 1) + self.struct.add_decimal_field("internal_ac_frequency", 74, 2) self.struct.add_decimal_field("internal_current_two", 75, 1) self.struct.add_uint_field("internal_power_two", 76) self.struct.add_decimal_field("ac_input_voltage", 77, 1) @@ -49,14 +49,20 @@ class AC500(ProtocolV1Device): @property def polling_commands(self) -> List[ReadHoldingRegisters]: return super().polling_commands + [ - ReadHoldingRegisters(70, 10), + ReadHoldingRegisters(70, 11), ReadHoldingRegisters(86, 3), + ReadHoldingRegisters(3001, 1), + ReadHoldingRegisters(3004, 2), + ReadHoldingRegisters(3011, 1), + ReadHoldingRegisters(3013, 1), + ReadHoldingRegisters(3015, 2), + ReadHoldingRegisters(3061, 1), ] @property def writable_ranges(self) -> List[range]: return super().writable_ranges + [ - range(3001, 3016), + range(3001, 3017), range(3061), ] diff --git a/custom_components/bluetti_bt/bluetti_bt_lib/devices/ep500.py b/custom_components/bluetti_bt/bluetti_bt_lib/devices/ep500.py index c95c60e..184cbc9 100644 --- a/custom_components/bluetti_bt/bluetti_bt_lib/devices/ep500.py +++ b/custom_components/bluetti_bt/bluetti_bt_lib/devices/ep500.py @@ -13,10 +13,10 @@ class EP500(ProtocolV1Device): # Details (matches AC500 + AC300) self.struct.add_enum_field("ac_output_mode", 70, OutputMode) - self.struct.add_uint_field("internal_ac_voltage", 71) + self.struct.add_decimal_field("internal_ac_voltage", 71, 1) self.struct.add_decimal_field("internal_current_one", 72, 1) self.struct.add_uint_field("internal_power_one", 73) - self.struct.add_decimal_field("internal_ac_frequency", 74, 1) + self.struct.add_decimal_field("internal_ac_frequency", 74, 2) self.struct.add_decimal_field("internal_current_two", 75, 1) self.struct.add_uint_field("internal_power_two", 76) self.struct.add_decimal_field("ac_input_voltage", 77, 1) @@ -45,14 +45,20 @@ class EP500(ProtocolV1Device): @property def polling_commands(self) -> List[ReadHoldingRegisters]: return super().polling_commands + [ - ReadHoldingRegisters(70, 10), + ReadHoldingRegisters(70, 11), ReadHoldingRegisters(86, 3), + ReadHoldingRegisters(3001, 1), + ReadHoldingRegisters(3004, 2), + ReadHoldingRegisters(3011, 1), + ReadHoldingRegisters(3013, 1), + ReadHoldingRegisters(3015, 2), + ReadHoldingRegisters(3061, 1), ] @property def writable_ranges(self) -> List[range]: return super().writable_ranges + [ - range(3001, 3016), + range(3001, 3017), range(3061), ] diff --git a/custom_components/bluetti_bt/bluetti_bt_lib/devices/ep500p.py b/custom_components/bluetti_bt/bluetti_bt_lib/devices/ep500p.py index af462cb..53df796 100644 --- a/custom_components/bluetti_bt/bluetti_bt_lib/devices/ep500p.py +++ b/custom_components/bluetti_bt/bluetti_bt_lib/devices/ep500p.py @@ -13,10 +13,10 @@ class EP500P(ProtocolV1Device): # Details (matches AC500 + AC300) self.struct.add_enum_field("ac_output_mode", 70, OutputMode) - self.struct.add_uint_field("internal_ac_voltage", 71) + self.struct.add_decimal_field("internal_ac_voltage", 71, 1) self.struct.add_decimal_field("internal_current_one", 72, 1) self.struct.add_uint_field("internal_power_one", 73) - self.struct.add_decimal_field("internal_ac_frequency", 74, 1) + self.struct.add_decimal_field("internal_ac_frequency", 74, 2) self.struct.add_decimal_field("internal_current_two", 75, 1) self.struct.add_uint_field("internal_power_two", 76) self.struct.add_decimal_field("ac_input_voltage", 77, 1) @@ -45,14 +45,20 @@ class EP500P(ProtocolV1Device): @property def polling_commands(self) -> List[ReadHoldingRegisters]: return super().polling_commands + [ - ReadHoldingRegisters(70, 10), + ReadHoldingRegisters(70, 11), ReadHoldingRegisters(86, 3), + ReadHoldingRegisters(3001, 1), + ReadHoldingRegisters(3004, 2), + ReadHoldingRegisters(3011, 1), + ReadHoldingRegisters(3013, 1), + ReadHoldingRegisters(3015, 2), + ReadHoldingRegisters(3061, 1), ] @property def writable_ranges(self) -> List[range]: return super().writable_ranges + [ - range(3001, 3016), + range(3001, 3017), range(3061), ]