From 7c0ce9c5b5ee97f0e051444d452f0726250acb4d Mon Sep 17 00:00:00 2001 From: okaegi Date: Thu, 13 Jun 2024 17:13:30 +0200 Subject: [PATCH 1/3] Elwa2.... MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Elwa2 anpaasungen für 1.9 und 2.0, Gui für 2.0 kommt noch separat. --- packages/modules/smarthome/acthor/watt.py | 18 +++++++++++++----- runs/mqttsub.py | 2 +- web/settings/smarthomeconfig.php | 5 ++++- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/packages/modules/smarthome/acthor/watt.py b/packages/modules/smarthome/acthor/watt.py index 7fbe4579e..00435aee8 100644 --- a/packages/modules/smarthome/acthor/watt.py +++ b/packages/modules/smarthome/acthor/watt.py @@ -57,6 +57,10 @@ faktor = 9000/instpower elif atype == "M3": faktor = 6000/instpower +elif atype == "E2M1": + faktor = 3500/instpower +elif atype == "E2M3": + faktor = 6500/instpower else: faktor = 3000/instpower pvmodus = 0 @@ -84,6 +88,7 @@ # Temp0 Warmwasser 1001 # Temp1 1030 <- Optional wenn 0, nicht angeschlossen dann ersetzt durch 300 (keine Anzeige) # Temp2 1031 <- Optional wenn 0, nicht angeschlossen dann ersetzt durch 300 (keine Anzeige) +# elwa2 hat nur zwei temp fühler value1 = resp.registers[1] all = format(value1, '04x') temp0int = int(struct.unpack('>h', codecs.decode(all, 'hex'))[0]) @@ -94,10 +99,13 @@ temp1 = temp1int / 10 if temp1 == 0: temp1 = 300 -value1 = resp.registers[31] -all = format(value1, '04x') -temp2int = int(struct.unpack('>h', codecs.decode(all, 'hex'))[0]) -temp2 = temp2int / 10 +if (atype == "E2M3" or atype == "E2M1"): + temp2 = 300.0 +else: + value1 = resp.registers[31] + all = format(value1, '04x') + temp2int = int(struct.unpack('>h', codecs.decode(all, 'hex'))[0]) + temp2 = temp2int / 10 if temp2 == 0: temp2 = 300 if count5 == 0: @@ -120,7 +128,7 @@ cap = instpower if neupowertarget > int(cap * faktor): neupowertarget = int(cap * faktor) - # status nach handbuch Thor + # status nach handbuch Thor/elwa2 # 0.. Aus # 1-8 Geraetestart # 9 Betrieb diff --git a/runs/mqttsub.py b/runs/mqttsub.py index 536489eba..fe931cbd4 100755 --- a/runs/mqttsub.py +++ b/runs/mqttsub.py @@ -197,7 +197,7 @@ def map_run(message: str, device_number: int, option: str): "device_measureavmusername": create_topic_handler(), "device_measureavmpassword": create_topic_handler(), "device_measureavmactor": create_topic_handler(), - "device_acthortype": create_topic_handler(equals_one_of_validator("M1", "M3", "9s", "9s18", "9s27", "9s45")), + "device_acthortype": create_topic_handler(equals_one_of_validator("M1", "M3", "9s", "9s18", "9s27", "9s45", "E2M1", "E2M3")), "device_lambdaueb": create_topic_handler(equals_one_of_validator("UP", "UN", "UZ")), "device_idmueb": create_topic_handler(equals_one_of_validator("UP", "UZ")), "device_acthorpower": create_topic_handler(int_range_validator(0, 50000)), diff --git a/web/settings/smarthomeconfig.php b/web/settings/smarthomeconfig.php index 6ee73b64a..cfcf156d8 100644 --- a/web/settings/smarthomeconfig.php +++ b/web/settings/smarthomeconfig.php @@ -81,7 +81,7 @@ - + @@ -107,6 +107,7 @@ Wenn die Ausschaltbedingung erreicht ist wird einmalig 0 als Überschuss übertragen. Die Ausschaltschwelle/ Ausschaltverzögerung in OpenWB ist sinnvoll zu wählen (z.B. 500 / 3) um die Regelung von Acthor nicht zu stören. Wenn Acthor als Gerät 1 oder 2 definiert ist, wird die Warmwassertemperatur als Temp1 angezeigt (Modbusadresse 1001). Ebenso wird Temp2 (Modbusadresse 1030) und Temp3 (Modbusadresse 1031) angezeigt (falls angeschlossen). + Elwa2 hat fast die gleich Schnittstelle wie Acthor. Wp der Firma lambda
@@ -407,6 +408,8 @@