From 3dbb1a9dbab0547e9d0ab7f0de4941fdd03374eb Mon Sep 17 00:00:00 2001
From: okaegi <72255431+okaegi@users.noreply.github.com>
Date: Mon, 24 Jun 2024 10:43:27 +0200
Subject: [PATCH] Elwa2.... (#2843)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* Elwa2....
Elwa2 anpaasungen für 1.9 und 2.0,
Gui für 2.0 kommt noch separat.
* typeo...
* typo
---
packages/modules/smarthome/acthor/watt.py | 19 ++++++++++++++-----
runs/mqttsub.py | 2 +-
web/settings/smarthomeconfig.php | 5 ++++-
3 files changed, 19 insertions(+), 7 deletions(-)
diff --git a/packages/modules/smarthome/acthor/watt.py b/packages/modules/smarthome/acthor/watt.py
index 7fbe4579e..06308cb0f 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,8 @@
# 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 Fuehler
+# nicht drei
value1 = resp.registers[1]
all = format(value1, '04x')
temp0int = int(struct.unpack('>h', codecs.decode(all, 'hex'))[0])
@@ -94,10 +100,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 +129,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 @@