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 @@