From c499fbcd9be5b1d2d7fd3b985abf2acb47914ab2 Mon Sep 17 00:00:00 2001 From: Patrick762 Date: Tue, 12 Mar 2024 20:13:20 +0100 Subject: [PATCH 1/4] fix writable_ranges --- custom_components/bluetti_bt/bluetti_bt_lib/devices/ac300.py | 2 +- custom_components/bluetti_bt/bluetti_bt_lib/devices/ac500.py | 2 +- custom_components/bluetti_bt/bluetti_bt_lib/devices/eb3a.py | 4 ++-- custom_components/bluetti_bt/bluetti_bt_lib/devices/ep500.py | 2 +- custom_components/bluetti_bt/bluetti_bt_lib/devices/ep500p.py | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) 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 5151c32..3ceae5c 100644 --- a/custom_components/bluetti_bt/bluetti_bt_lib/devices/ac300.py +++ b/custom_components/bluetti_bt/bluetti_bt_lib/devices/ac300.py @@ -58,7 +58,7 @@ class AC300(ProtocolV1Device): def writable_ranges(self) -> List[range]: return super().writable_ranges + [ range(3001, 3016), - 3061, + range(3061), ] @property 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 12edcb2..ca0dcc9 100644 --- a/custom_components/bluetti_bt/bluetti_bt_lib/devices/ac500.py +++ b/custom_components/bluetti_bt/bluetti_bt_lib/devices/ac500.py @@ -57,7 +57,7 @@ class AC500(ProtocolV1Device): def writable_ranges(self) -> List[range]: return super().writable_ranges + [ range(3001, 3016), - 3061, + range(3061), ] @property diff --git a/custom_components/bluetti_bt/bluetti_bt_lib/devices/eb3a.py b/custom_components/bluetti_bt/bluetti_bt_lib/devices/eb3a.py index 6f37a66..7e26356 100644 --- a/custom_components/bluetti_bt/bluetti_bt_lib/devices/eb3a.py +++ b/custom_components/bluetti_bt/bluetti_bt_lib/devices/eb3a.py @@ -33,7 +33,7 @@ class EB3A(ProtocolV1Device): @property def writable_ranges(self) -> List[range]: return super().writable_ranges + [ - 3034, - 3060, + range(3034), + range(3060), range(3063, 3066), ] 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 1c5ff4a..c95c60e 100644 --- a/custom_components/bluetti_bt/bluetti_bt_lib/devices/ep500.py +++ b/custom_components/bluetti_bt/bluetti_bt_lib/devices/ep500.py @@ -53,7 +53,7 @@ class EP500(ProtocolV1Device): def writable_ranges(self) -> List[range]: return super().writable_ranges + [ range(3001, 3016), - 3061, + range(3061), ] @property 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 f70d906..af462cb 100644 --- a/custom_components/bluetti_bt/bluetti_bt_lib/devices/ep500p.py +++ b/custom_components/bluetti_bt/bluetti_bt_lib/devices/ep500p.py @@ -53,7 +53,7 @@ class EP500P(ProtocolV1Device): def writable_ranges(self) -> List[range]: return super().writable_ranges + [ range(3001, 3016), - 3061, + range(3061), ] @property From 7596f8cee1163e0646078ab2e5fd94ad93bdb76e Mon Sep 17 00:00:00 2001 From: Patrick762 Date: Tue, 12 Mar 2024 20:25:24 +0100 Subject: [PATCH 2/4] fix ac_output_on switches --- custom_components/bluetti_bt/bluetti_bt_lib/devices/eb3a.py | 2 ++ custom_components/bluetti_bt/const.py | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/custom_components/bluetti_bt/bluetti_bt_lib/devices/eb3a.py b/custom_components/bluetti_bt/bluetti_bt_lib/devices/eb3a.py index 7e26356..d9376d5 100644 --- a/custom_components/bluetti_bt/bluetti_bt_lib/devices/eb3a.py +++ b/custom_components/bluetti_bt/bluetti_bt_lib/devices/eb3a.py @@ -28,6 +28,8 @@ class EB3A(ProtocolV1Device): return super().polling_commands + [ ReadHoldingRegisters(77, 1), ReadHoldingRegisters(86, 1), + ReadHoldingRegisters(3060, 1), + ReadHoldingRegisters(3063, 4), ] @property diff --git a/custom_components/bluetti_bt/const.py b/custom_components/bluetti_bt/const.py index e6246f1..945c793 100644 --- a/custom_components/bluetti_bt/const.py +++ b/custom_components/bluetti_bt/const.py @@ -26,8 +26,8 @@ SUPPORTED_MODELS = [ ] CONTROL_FIELDS = [ - "ac_output_on", - "dc_output_on", + "ac_output_on_switch", + "dc_output_on_switch", ] DIAGNOSTIC_FIELDS = [ From babdd1755e16f306f0228fc7bed3510542d99fda Mon Sep 17 00:00:00 2001 From: Patrick762 Date: Tue, 12 Mar 2024 20:55:09 +0100 Subject: [PATCH 3/4] fix dc switch, added some switches for eb3a --- .../bluetti_bt_lib/base_devices/ProtocolV1Device.py | 2 +- .../bluetti_bt/bluetti_bt_lib/devices/eb3a.py | 9 +++++---- .../bluetti_bt/bluetti_bt_lib/field_attributes.py | 5 ++--- custom_components/bluetti_bt/const.py | 3 +++ 4 files changed, 11 insertions(+), 8 deletions(-) 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 b7d717d..6dd4dd0 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 @@ -64,7 +64,7 @@ class ProtocolV1Device(BluettiDevice): @property def writable_ranges(self) -> List[range]: - return [range(3006, 3008)] + return [range(3006, 3009)] @property def pack_polling_commands(self) -> List[ReadHoldingRegisters]: diff --git a/custom_components/bluetti_bt/bluetti_bt_lib/devices/eb3a.py b/custom_components/bluetti_bt/bluetti_bt_lib/devices/eb3a.py index d9376d5..644ac26 100644 --- a/custom_components/bluetti_bt/bluetti_bt_lib/devices/eb3a.py +++ b/custom_components/bluetti_bt/bluetti_bt_lib/devices/eb3a.py @@ -28,14 +28,15 @@ class EB3A(ProtocolV1Device): return super().polling_commands + [ ReadHoldingRegisters(77, 1), ReadHoldingRegisters(86, 1), + ReadHoldingRegisters(3034, 1), ReadHoldingRegisters(3060, 1), - ReadHoldingRegisters(3063, 4), + ReadHoldingRegisters(3063, 5), ] @property def writable_ranges(self) -> List[range]: return super().writable_ranges + [ - range(3034), - range(3060), - range(3063, 3066), + range(3034, 3035), + range(3060, 3061), + range(3063, 3067), ] 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 5cec159..cac844c 100644 --- a/custom_components/bluetti_bt/bluetti_bt_lib/field_attributes.py +++ b/custom_components/bluetti_bt/bluetti_bt_lib/field_attributes.py @@ -18,7 +18,6 @@ class FieldType(Enum): NUMERIC = auto() BOOL = auto() ENUM = auto() - BUTTON = auto() class FieldAttributes: @@ -220,7 +219,7 @@ FIELD_ATTRIBUTES: dict[str, FieldAttributes] = { "total_grid_feed": EnergyFieldAttributes("Total Grid Feed"), # Device specific controls "power_off": FieldAttributes( - type=FieldType.BUTTON, + type=FieldType.BOOL, setter=True, name="Power Off", ), @@ -294,7 +293,7 @@ FIELD_ATTRIBUTES: dict[str, FieldAttributes] = { ), "power_lifting_on": FieldAttributes( type=FieldType.BOOL, - setter=False, # Disabled for safety reasons + setter=True, name="Power Lifting", ), } diff --git a/custom_components/bluetti_bt/const.py b/custom_components/bluetti_bt/const.py index 945c793..1568e73 100644 --- a/custom_components/bluetti_bt/const.py +++ b/custom_components/bluetti_bt/const.py @@ -28,6 +28,9 @@ SUPPORTED_MODELS = [ CONTROL_FIELDS = [ "ac_output_on_switch", "dc_output_on_switch", + "power_off", + "eco_on", + "power_lifting_on", ] DIAGNOSTIC_FIELDS = [ From bf86fe172bd89b1384707c277cec0ae703f723d2 Mon Sep 17 00:00:00 2001 From: Patrick762 Date: Tue, 12 Mar 2024 20:56:13 +0100 Subject: [PATCH 4/4] update version number --- custom_components/bluetti_bt/manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom_components/bluetti_bt/manifest.json b/custom_components/bluetti_bt/manifest.json index bf82827..f261fe9 100644 --- a/custom_components/bluetti_bt/manifest.json +++ b/custom_components/bluetti_bt/manifest.json @@ -22,5 +22,5 @@ "iot_class": "local_polling", "issue_tracker": "https://github.com/Patrick762/hassio-bluetti-bt/issues", "requirements": [], - "version": "0.0.19" + "version": "0.0.20" }