black code formatting
This commit is contained in:
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 []
|
||||
Reference in new issue
Block a user