Thread zum Wiki-Artikel "Dimplex Wärmepumpenmanager"

Begonnen von oniT, 31 Januar 2015, 14:40:49

Vorheriges Thema - Nächstes Thema

oniT

Zitat von: XBuschman am 05 Juni 2023, 14:26:27Hallo,
ich steuere meinen WPM2007 mit H-Software über das NWPM Modbus Modul. Infos über die Registerbelegung habe folgender Seite entnommen:
https://dimplex.atlassian.net/wiki/spaces/DW/pages/2873393288/NWPM+Modbus+TCP

Was ich dort nicht finde ist, wie man das Control ,,Reset WP Maximum" setzt (siehe Screenshot).

Hat das schon mal jemand per Register Zugriff gemacht? Oder weiß, wo ich dazu Infos finde.

Danke und Gruß


Hallo XBuschmann,

sicherlich ist das möglich. Nur wofür benötigst du das? Ich bin kein Freund eine Sicherheitsfunktion zu automatisieren. Reset WP Maximum ist nur in besonderen Fällen notwendig. Man setzt damit ja die ermittelten maximalen Warmwassertemperaturen zurück. So etwas wird meist nur kurz nach einer IBN, weil noch Luft im System ist, benötigt. Setzen sich die Werte während des Betriebs zurück, dann hat es einen Grund und dieser sollte zunächst behoben werden.

Gruß,
Tino
BBB - debian weezy - FHEM 5.7
HMLAN - HM-LC-Bl1-FM, HM-ES-PMSw1-PI, HM-LC-Sw1-FM, HM-TC-IT-WM-W-EU, HM-WDS40-TH-I, HM-Sen-Wa-Od, HM-Sec-RHS
Dimplex Wärmepumpe / Dimplex ZL 300 - Modbus TCP
SDM630M - Modbus TCP
SolarLog 200 / SMA SonnyBoy 1.5/2.5 - Modbus TCP

oniT

Zitat von: GatuRatz am 31 März 2023, 09:07:19Hi,

gibt es irgendeine Möglichkeit,sich anzeigen zu lassen, ob die Absenkung gerade aktiv ist und welchen Wert sie hat?
Ich habe die Methode von https://forum.fhem.de/index.php/topic,33086.msg520995.html#msg520995 ausprobiert (die natürlich mehr Features hat, welche ich eigentlich nicht brauche) und sie funktioniert nicht (vermutlich weil ich Modbus TCP habe).
Mir genügt wie gesagt eine reine Anzeige.

Danke und LG
GatuRatz



Hallo GatuRatz,

ja, das ist möglich. Welchen Softwarestand hat die WP? Größer L23.0? Eigentlich musst du nur über den Multiplexer umschalten. Ich benötige mehr Informationen welche Absenkung? 1./2. oder 3. Kreis? Warmwasser? Dann kann man z.b. über ein DOIF den Tricker anstoßen und die Werte in entsprechende Dummys schreiben.

Gruß,
Tino
BBB - debian weezy - FHEM 5.7
HMLAN - HM-LC-Bl1-FM, HM-ES-PMSw1-PI, HM-LC-Sw1-FM, HM-TC-IT-WM-W-EU, HM-WDS40-TH-I, HM-Sen-Wa-Od, HM-Sec-RHS
Dimplex Wärmepumpe / Dimplex ZL 300 - Modbus TCP
SDM630M - Modbus TCP
SolarLog 200 / SMA SonnyBoy 1.5/2.5 - Modbus TCP

db

#152
Zitat von: oniT am 13 Juni 2023, 20:54:14
Zitat von: XBuschman am 05 Juni 2023, 14:26:27Was ich dort nicht finde ist, wie man das Control ,,Reset WP Maximum" setzt (siehe Screenshot).

Hat das schon mal jemand per Register Zugriff gemacht? Oder weiß, wo ich dazu Infos finde.

sicherlich ist das möglich. Nur wofür benötigst du das?

Warum sollte man das wollen?
Zum Beispiel wenn man zuviel PV-Strom hat und den verheizen will.

Die automatisch ermittelte Maximaltemperatur verhindert, dass die Heizstäbe zur Nacherwärmung anspringen. Ein Hochsetzen der Solltemperatur für Warmwasser hilft nicht. Gleiches gilt für die maximale Warmwassertemperatur. Habe ich mehrfach unter verschiedenen Bedingungen getestet.  Wird alles durch die automatisch ermittelte Max-Temperatur abgewürgt (dafür wird die WW-Temp herangezogen, bei der der Kompressor wegen Hochdruckstörung abgeschaltet wird). Nach einem Reset der automatisch ermittelten max. WW-Temp springt die Kiste mit 100% Wahrscheinlichkeit an, dann kommt die Hochdruckstörung, danach die Heizstäbe wie gewünscht. Also muss der Reset gemacht werden.

Über Modbus TCP geht ein Zurücksetzen der WW-Temperaturen nicht. Zumindest habe ich nach ziemlich ausführlicher Suche dazu nichts in der Doku (Dimplex Wiki, Abschnitt NWPM) gefunden. Ich denke, dass da einfach zu wenig Modbus Ressourcen frei waren, um die Funktion aus den internen Registern der SPS auf Modbus Register zu mappen. (Jedenfalls sind da ja schon erhebliche Klimmzüge mit Registerumschaltungen für z.B. die Zeitprogramme und Heizkreise erforderlich.)

Genauere Betrachtung der Kommunikation zwsichen der (schrottigen) App und der Dimplex Cloud API zeigt, dass beim Drücken des Buttons "Zurücksetzen bestätigen" ein Register mit der Nummer 765d auf den Wert 1 gesetzt wird. Das scheint also das interne Register der (ebenfalls grottigen) im WPM Touch verbauten SPS zu sein.

Jetzt müsste nur noch jemand rausfinden, wie man die API über HTTPS Post Requests bespielt. Dann könnte man das statt über Modbus durch die API erledigen. Alternativ käme auch ein lokaler Zugriff auf den HTTP-Server der SPS in Frage...

Sidenote/Rant: Wofür habe ich eigentlich fast 1500€ für so einen Müll von Regler und Software bezahlt? Da sind die über 400€ für die Netzwerkkarte noch nicht dabei... Und dann soll ich auch noch Funktionen in der App separat bezahlen? Ich fasse es nicht.

Edit: Sure as hell... kurz nach dem Klick auf zurücksetzen wird auf der SPS die Digitalvariable mit der Nummer 765 auf eins gesetzt. Dann klemmt der Kompressor wegen Hochdruck -> Variable geht auf 0.
Edit2: Das wird ja immer witziger. Beim Start der App werden von der API jedes Mal die Strings für eine EasyOn-Inbetriebnahme gesendet. Dann wird ein Push-Token für Benachrichtigungen ausgehandelt. Und dann wird eine Abfrage von zig Digitalvariablen im 900..1000er Bereich an die API gesendet. Die Abfrage sieht ein wenig nach JSON aus. Ich glaub, dass mir das noch richtig Spaß macht, die API auseinanderzunehmen.

Edit3: Etwas Fummeln an der API liefert die Erkenntnis, dass man nach einem Sign-In der App ein Bearer Token erhält. Damit geht bei Rücksetzanfragen der max WW Temp ein Post Request an https://prod.homecloud.dimplex.de/api/v1/devices/...//wpm/variable_read. Im Body des Requests ist JSON, das die Nummer der Variable angibt (die gesuchte 765d). Als Antwort kommt dann JSON mit dem Wert der Variable (0) und einem Zeitstempel.
Und wenn man sich wirklich sicher ist, dass man sich traut (Rücksetzen bestätigt) geht eine POST Anfrage an https://prod.homecloud.dimplex.de/api/v1/devices/...//wpm/variable_write mit Body JSON {"765d":1}.  Schon wieder eine Hochdruckstörung produziert. ;D
Bitte verzeiht, dass ich in der URL oben einige Punkte eingefügt habe. Das ist die SN und die MAC der WP.

Edit4: Fix per Postman nachgebaut. API liefert auf den Post Request einen Statuscode 200 zurück, ist zufrieden und die WP geht in die Schaltspielsperre. Diesmal keine Hochdruckstörung 8)

Edit5: Freundlicherweise gibt es auch eine Liste der Zustandsvariablen der Kiste: https://prod.homecloud.dimplex.de/api/v1/devices/<deviceID>/capabilities Direkt mit einigermaßen menschenlesbaren Namen für die Zuordnung der internen Variablen der pcoWeb SPS.

Edit6: Oh, da oben sind auch noch die sonstigen unterstützten Variablen der SPS dabei. Unter anderem unsere liebe 765d. Heißt P_WW_RES_MAX. Wunderbar, sogar mit Angaben zum Wertebereich. Maximum ist 1,0 und Minimum ist 0,0. So wie es sich für ne Digitalvariable gehört. Und ist zugehörig zu den Warmwassersachen (cond_ww_se).

Edit7: Damit könnte man jetzt eigentlich per BacNetIP (Passwort für den SPS Zugriff kriegt man auch von der API) die ganze Sache auch lokal setzen (statt über die API zugehen). Dazu müsste man in der Konfig-Oberfläche der SPS halt BacNetIP aktivieren. 

Fazit: Es geht. Lokal (BacNetIP) oder über die Cloud API.

XBuschman

Zitat von: db am 04 Juli 2023, 10:17:27Warum sollte man das wollen?
Zum Beispiel wenn man zuviel PV-Strom hat und den verheizen will.

Genau darum geht es. Das Hochsetzen der Warmwasser Temperatur reicht nicht, damit die WP bzw. die Heizstäbe anspringen.
Wenn ich deine Ausführungen richtig verstanden habe, hast du Wege gefunden, den "Reset WP Maximum" per "Skript" Zugriff auszulösen.
Wie das aber genau umgesetzt werden kann, habe ich nicht verstanden  :(
Besteht die Möglichkeit, dass ein wenig genauer auszuführen, so das ich das nachtstellen kann?

Danke und Gruß

PS: Auf jeden fall vielen Danke für die ausführlichen Untersuchungen

GatuRatz

Zitat von: GatuRatz am 31 März 2023, 09:07:19Hi,

gibt es irgendeine Möglichkeit,sich anzeigen zu lassen, ob die Absenkung gerade aktiv ist und welchen Wert sie hat?
Ich habe die Methode von https://forum.fhem.de/index.php/topic,33086.msg520995.html#msg520995 ausprobiert (die natürlich mehr Features hat, welche ich eigentlich nicht brauche) und sie funktioniert nicht (vermutlich weil ich Modbus TCP habe).
Mir genügt wie gesagt eine reine Anzeige


Das Register für den ersten Absenkwert ist 5876 und in 734 kann man ablesen, ob das grad aktiv ist.

LG GatuRatz

db

Sorry, hatte jede Menge andere Sachen um die Ohren.
Ich habe die App quasi gehackt (haha) und den Datenverkehr belauscht. Quintessenz ist, dass es einen API Endpunkt gibt, den man mit einem entsprechenden Aufruf (z.B. per Skript) ansprechen kann. Dazu braucht man die Login Daten der App und erhält dann ein Token. Das fügt man dem Aufruf bei. Den Endpunkt setzt man aus den oben angegebenen URL und ggfs Seriennummer WP und MAC Adresse der Interface Karte zusammen. War mir im Endeffekt aber alles zu dumm. Ich habe jetzt einfach ein in Der Unterverteilung vorhandenes Relais genommen und bediene damit das Schütz für den Heizstab an dem bekoppten WPM vorbei.