Hier also eine Praxisanleitung für Amateure. Sicherlich werden Experten auf bessere, smartere bzw. offensichtlichere Lösungen hinweisen, aber bis dato waren mir diese nicht zugänglich.
Ich habe 2 halbe Tage gebraucht um endlich Daten aus der Wärmepumpe zu lesen und nun auch zu schreiben. Die Syntax ergab sich aus vielen Versuchen, und ich hoffe diese ist für den einen oder anderen sinnvoll als Inspiration oder Lösung.
Hardwareeinbindung Gateway/Bosch WP war ohne Auffälligkeiten. Die Anleitungen hierzu vom Hersteller sind gut anwendbar. Ich konnte das Verbindungskabel zum Gateway in den Serviceport an der Seite stecken. Wifi Erkennung hat funktioniert, Zugang zum Gateway Portal ebenso, und ich war positiv überrascht, dass alle weiteren Geräte wie Mischer, Thermostate usw. automatisch über das EMS protokoll erkannt wurden. (siehe Screenshot)
Lesen von Daten
Grundlegend habe ich mich für die RestApi Kommunikation entschieden, da ich keine Umwege über weitere Server/Broker machen wollte.
zuerst in Loxone einen Virtuellen HTTP Eingang einfügen. Dort muss man lediglich die URL einfügen. Ich habe diese mit dem User und Passwort eingegeben, die für die Anmeldung auf dem Gateway benötigt wird, und natürlich auf die IP Adresse im Heimnetz.
http://user
asswort@192.168.55.44/api/boiler/info (da wo der Smiley ist noch Doppelpunkt und p einsetzen)Anmerkung: boiler bezieht sich auf die Wärmepumpe, der Regler heisst thermostat. Ist einfach so, ist aber auf dem Screenshot des Gateways ersichtlich.
Als 2. Schritt nun einen Virtuellen HTTP Eingang Befehl erstellen. Mein Beispiel hier ist die Abfrage der WP-Modulation. Interessierte können in Browser einfach
http://user
asswort@192.168.55.44/api/boiler/info oder http://user
asswort@192.168.55.44/api/thermostat/info eingeben, dann sollten alle Werte ausgelesen werden. Im Browser kann man diese dann im JSON Format oder als Rohdaten ansehen. Wenn man nun auf den kleinen Pfeil des Feldes (Eigenschaften von Virtuellen HTTP Eingang Befehl) drückt werden ebenso die Rohdaten angezeigt. Hier muss man nun den richtigen Wert suchen. Im Falle der Modulation heisst es burner current power. Jetzt muss man den gefundenen String bis zu dem Zeichen vor dem Zahlenwert in die Befehlserkennung reinkopieren, dazu noch \v, ergo in meinem Fall "burner current power (curburnpow)":\v . Wenn man auf Daten abfragen drückt, sollte der richtige Wert in Prozent ausgespuckt werden, das aber nur zur Kontrolle. Danach auf ANWENDEN drücken, und schon ist die Befehlskette reinkopiert. Das war es eigentlich schon.Das Auslesen von Text bzw. Strings ist etwa umständlicher, da der virtuelle HTTP Eingang kein Text verarbeiten kann. In den meisten Fällen steht aber "on", " Off", "Comfort" usw. Hier kann man mit einer Befehlskette den ASCII Wert eines markanten Buchstaben herauslesen. ZB wollte ich wissen ob Warmwasser produziert wird oder nicht . Die Rohdaten hierzu zeigen "tapwater active (tapwateractive)":"off" . Da on und off erst ab dem 2. Buchstaben sich unterscheiden, einfach die Befehlskette "tapwater active (tapwateractive)":"o\v\1 eingeben. Dann wird der Ascii Wert von dem f , ergo 102 ausgegeben. Damit lässt sich dann eine entsprechende Statusanzeige (virtueller Status) generieren.
Für den 2. Teil werde ich einen separaten Beitrag schreiben, damit es nicht so lang wird. Ich hoffe das klappt bei Euch auch so.
Kommentar