From bf428ee027ef997f516981925a4715d3b80a3b1e Mon Sep 17 00:00:00 2001 From: Patrick Hein Date: Fri, 6 Sep 2024 20:02:31 +0200 Subject: [PATCH 1/3] Retain volatile optional pcb settings (#243) --- custom_components/aquarea/definitions.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/custom_components/aquarea/definitions.py b/custom_components/aquarea/definitions.py index 8dc1008..73ce317 100644 --- a/custom_components/aquarea/definitions.py +++ b/custom_components/aquarea/definitions.py @@ -647,8 +647,9 @@ def build_numbers(mqtt_prefix: str) -> list[HeishaMonNumberEntityDescription]: ), HeishaMonNumberEntityDescription( heishamon_topic_id="SetDemandControl", - key=f"{mqtt_prefix}main/FakeDemandControl", # FIXME: find how to get real value + key=f"{mqtt_prefix}commands/SetDemandControl", command_topic=f"{mqtt_prefix}commands/SetDemandControl", + retain=True, name="Demand Control", entity_category=EntityCategory.CONFIG, native_unit_of_measurement="%", @@ -782,8 +783,9 @@ def build_selects(mqtt_prefix: str) -> list[HeishaMonSelectEntityDescription]: ), HeishaMonSelectEntityDescription( heishamon_topic_id="SetSmartGridMode", - key=f"{mqtt_prefix}main/FakeSmartGridMode", # FIXME: find how to get real value + key=f"{mqtt_prefix}commands/SetSmartGridMode", command_topic=f"{mqtt_prefix}commands/SetSmartGridMode", + retain=True, name="Smart Grid Mode", entity_category=EntityCategory.CONFIG, state=read_smart_grid_mode, From b3f7ffc6cd5d4d50206cf3316961ceeddc631a97 Mon Sep 17 00:00:00 2001 From: Patrick Hein Date: Fri, 6 Sep 2024 20:03:20 +0200 Subject: [PATCH 2/3] Update heatpump models (#241) --- custom_components/aquarea/models.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/custom_components/aquarea/models.py b/custom_components/aquarea/models.py index da4d52f..7686bc6 100644 --- a/custom_components/aquarea/models.py +++ b/custom_components/aquarea/models.py @@ -45,9 +45,12 @@ "35": "WH-SXC09H3E8 9 3ph T-CAP - new version", "36": "WH-ADC0309K3E5AN 7 1ph HP - All-In-One K-series - AN", "37": "WH-SDC0309K3E5 5 1ph HP - split K-series", - "38": "WH-SDC0309K3E5 7 1ph HP - split K-series", - "39": "WH-ADC0916H9E8 16 3ph T-CAP - All-In-One", - "40": "WH-ADC0912H9E8 12 3ph T-CAP - All-In-One", - "41": "WH-SDC12H9E8 12 3ph HP", - "42": "WH-MXC16J9E8 16 3ph T-CAP", + "38": "WH-SDC0509L3E5 9 1 ph HP - split L-series 3kW elec heating", + "39": "WH-SDC12H9E8 12 3ph HP", + "40": "WH-SDC0309K3E5 7 1ph HP - split K-series", + "41": "WH-ADC0916H9E8 16 3ph T-CAP - All-In-One", + "42": "WH-ADC0912H9E8 12 3ph T-CAP - All-In-One", + "43": "WH-MXC16J9E8 16 3ph T-CAP", + "44": "WH-MXC12J6E5 12 1ph T-CAP", + "45": "WH-SQC09H3E8 9 3ph T-CAP - Super Quiet revised model", } From 42cca0f9079887f2f352a39c4a94f503a64cbef4 Mon Sep 17 00:00:00 2001 From: Patrick Hein Date: Fri, 6 Sep 2024 20:04:11 +0200 Subject: [PATCH 3/3] Use a dictionary instead of repeating values for smart grid mode (#242) * use a dictionary instead of repeating values for smart grid mode * add missing comma --- custom_components/aquarea/definitions.py | 30 +++++++++--------------- 1 file changed, 11 insertions(+), 19 deletions(-) diff --git a/custom_components/aquarea/definitions.py b/custom_components/aquarea/definitions.py index 73ce317..2d20d14 100644 --- a/custom_components/aquarea/definitions.py +++ b/custom_components/aquarea/definitions.py @@ -176,6 +176,14 @@ def read_mixing_valve_request(value: str) -> Optional[str]: } +SMART_GRID_MODES_STRING = { + "0": "Normal", + "1": "Capacity 1", + "2": "HP/DHW off", + "3": "Capacity 2", +} + + def read_zones_state(value): return ZONE_STATES_STRING.get(value, f"Unknown zone state value: {value}") @@ -356,27 +364,11 @@ def write_demandcontrol(value: int) -> str: def read_smart_grid_mode(value: str) -> str: - if value == "0": - return "Normal" - elif value == "1": - return "Capacity 1" - elif value == "2": - return "HP/DHW off" - elif value == "3": - return "Capacity 2" - return str(value) + return SMART_GRID_MODES_STRING.get(value, f"Unknown smart grid mode: {value}") def write_smart_grid_mode(value: str) -> str: - if value == "Normal": - return "0" - elif value == "Capacity 1": - return "1" - elif value == "HP/DHW off": - return "2" - elif value == "Capacity 2": - return "3" - return str(value) + return lookup_by_value(SMART_GRID_MODES_STRING, value) def read_quiet_mode(value: str) -> str: @@ -790,7 +782,7 @@ def build_selects(mqtt_prefix: str) -> list[HeishaMonSelectEntityDescription]: entity_category=EntityCategory.CONFIG, state=read_smart_grid_mode, state_to_mqtt=write_smart_grid_mode, - options=["Normal", "HP/DHW off", "Capacity 1", "Capacity 2"], + options=list(SMART_GRID_MODES_STRING.values()), entity_registry_enabled_default=False, # comes from the optional PCB: disabled by default ), ]