black code formatting

This commit is contained in:
Patrick762 committed 2024-02-17 20:14:12 +01:00
1 parent 928ff2bf5d
commit 432d46d0f1
11 files changed
+257 -242

No files matched your search

@@ -52,7 +52,9 @@ class BluettiDevice:
def build_setter_command(self, field: str, value: Any):
matches = [f for f in self.struct.fields if f.name == field]
device_field = next(f for f in matches if any(f.address in r for r in self.writable_ranges))
device_field = next(
f for f in matches if any(f.address in r for r in self.writable_ranges)
)
# Convert value to an integer
if isinstance(device_field, EnumField):
@@ -12,38 +12,40 @@ class ProtocolV1Device(BluettiDevice):
self.struct = DeviceStruct()
# Device info
self.struct.add_string_field('device_type', 10, 6)
self.struct.add_sn_field('serial_number', 17)
self.struct.add_string_field("device_type", 10, 6)
self.struct.add_sn_field("serial_number", 17)
# Power IO
self.struct.add_uint_field('dc_input_power', 36)
self.struct.add_uint_field('ac_input_power', 37)
self.struct.add_uint_field('ac_output_power', 38)
self.struct.add_uint_field('dc_output_power', 39)
self.struct.add_uint_field("dc_input_power", 36)
self.struct.add_uint_field("ac_input_power", 37)
self.struct.add_uint_field("ac_output_power", 38)
self.struct.add_uint_field("dc_output_power", 39)
# Power IO statistics
self.struct.add_decimal_field('power_generation', 41, 1) # Total power generated since last reset (kwh)
self.struct.add_decimal_field(
"power_generation", 41, 1
) # Total power generated since last reset (kwh)
# Battery
self.struct.add_uint_field('total_battery_percent', 43)
self.struct.add_uint_field("total_battery_percent", 43)
# Battery packs
self.struct.add_uint_field('pack_num_max', 91) # internal
self.struct.add_decimal_field('total_battery_voltage', 92, 1)
self.struct.add_uint_field('pack_num', 96) # internal
self.struct.add_decimal_field('pack_voltage', 98, 2) # Full pack voltage
self.struct.add_uint_field('pack_battery_percent', 99)
self.struct.add_uint_field("pack_num_max", 91) # internal
self.struct.add_decimal_field("total_battery_voltage", 92, 1)
self.struct.add_uint_field("pack_num", 96) # internal
self.struct.add_decimal_field("pack_voltage", 98, 2) # Full pack voltage
self.struct.add_uint_field("pack_battery_percent", 99)
# Output state
self.struct.add_bool_field('ac_output_on', 48)
self.struct.add_bool_field('dc_output_on', 49)
self.struct.add_bool_field("ac_output_on", 48)
self.struct.add_bool_field("dc_output_on", 49)
# Pack selector
self.struct.add_uint_field('pack_num', 3006) # internal
self.struct.add_uint_field("pack_num", 3006) # internal
# Output controls
self.struct.add_bool_field('ac_output_on_switch', 3007)
self.struct.add_bool_field('dc_output_on_switch', 3008)
self.struct.add_bool_field("ac_output_on_switch", 3007)
self.struct.add_bool_field("dc_output_on_switch", 3008)
super().__init__(address, type, sn)
@@ -63,7 +65,7 @@ class ProtocolV1Device(BluettiDevice):
@property
def writable_ranges(self) -> List[range]:
return [range(3006, 3008)]
@property
def pack_polling_commands(self) -> List[ReadHoldingRegisters]:
return [
@@ -12,38 +12,40 @@ class ProtocolV2Device(BluettiDevice):
self.struct = DeviceStruct()
# Device info
self.struct.add_string_field('device_type', 110, 6)
self.struct.add_sn_field('serial_number', 116)
self.struct.add_string_field("device_type", 110, 6)
self.struct.add_sn_field("serial_number", 116)
# Power IO
#self.struct.add_uint_field('dc_input_power', ?)
#self.struct.add_uint_field('ac_input_power', ?)
#self.struct.add_uint_field('ac_output_power', ?)
#self.struct.add_uint_field('dc_output_power', ?)
# self.struct.add_uint_field('dc_input_power', ?)
# self.struct.add_uint_field('ac_input_power', ?)
# self.struct.add_uint_field('ac_output_power', ?)
# self.struct.add_uint_field('dc_output_power', ?)
# Power IO statistics
self.struct.add_decimal_field('power_generation', 154, 1) # Total power generated since last reset (kwh)
self.struct.add_decimal_field(
"power_generation", 154, 1
) # Total power generated since last reset (kwh)
# Battery
self.struct.add_uint_field('total_battery_percent', 102)
self.struct.add_uint_field("total_battery_percent", 102)
# Battery packs
#self.struct.add_uint_field('pack_num_max', ?) # internal
#self.struct.add_decimal_field('total_battery_voltage', ?, 1)
#self.struct.add_uint_field('pack_num', ?) # internal
#self.struct.add_decimal_field('pack_voltage', ?, 2) # Full pack voltage
#self.struct.add_uint_field('pack_battery_percent', ?)
# self.struct.add_uint_field('pack_num_max', ?) # internal
# self.struct.add_decimal_field('total_battery_voltage', ?, 1)
# self.struct.add_uint_field('pack_num', ?) # internal
# self.struct.add_decimal_field('pack_voltage', ?, 2) # Full pack voltage
# self.struct.add_uint_field('pack_battery_percent', ?)
# Output state
#self.struct.add_bool_field('ac_output_on', ?)
#self.struct.add_bool_field('dc_output_on', ?)
# self.struct.add_bool_field('ac_output_on', ?)
# self.struct.add_bool_field('dc_output_on', ?)
# Pack selector
#self.struct.add_uint_field('pack_num', ?) # internal
# self.struct.add_uint_field('pack_num', ?) # internal
# Output controls
#self.struct.add_bool_field('ac_output_on_switch', ?)
#self.struct.add_bool_field('dc_output_on_switch', ?)
# self.struct.add_bool_field('ac_output_on_switch', ?)
# self.struct.add_bool_field('dc_output_on_switch', ?)
# Add battery fields here?
@@ -61,7 +63,7 @@ class ProtocolV2Device(BluettiDevice):
@property
def writable_ranges(self) -> List[range]:
return []
@property
def pack_polling_commands(self) -> List[ReadHoldingRegisters]:
return []