ETA Touch - Rest API

Begonnen von Heimweh, 11 November 2015, 23:21:54

Vorheriges Thema - Nächstes Thema

Heimweh

Hallo liebe FHEM Profis. Nach langem mitlesen habe ich mich nun auch angemeldet. Ich besitze seit kurzem eine ETA Pellet Kessel PU 15. Mit FHEM hab ich wenig Erfahrung - ich hoffe, jemand kann mir mal eine Hilfestellung geben. Kurz gesagt, ich würde gerne im 5 Minuten Takt, Ca. 30 Variablen der Heizung Steuerung abrufen, und mit FHEM erstmal loggen.

Die Steuerung der ETA ist über LAN im Netzwerk eingebunden, und lässt sich über eine REST API absprechen, im XML.

Gibt es hier jemand, der sowas schon gemacht hat?

Viele Grüße, Heimweh
RaspberryPi, 8 x Intertechnosteckdosen, ETA PU15 über HTTPMOD, Youless Eneergiemonitor, 8 x Technoline Funk Temperatur / Feuchtesensoren über jeeLink, Fritzbox Anbindung, Homematic Rolladen Aktoren, MAX Heizkörperventile + Cube, SONOFF S20, S26, POW, 4ch, OWD, Alexa-fhem, enOcean / Eltako,

jojoja

Hallo Heimweh,

ich bin gewiss kein Profi, habe aber eine funktionierende Lösung gefunden.

Wie du sicher schon weißt, kommt man im Browser über   <ETA-ip>:8080/user/menu   auf den Baum, von dem man die Links beziehen kann. Diese frage ich per HTTPMOD ab:

define ETA_Verbrauch_gesamt HTTPMOD http://<ETA-ip>:8080/user/var/40/10021/0/0/12016 300
attr ETA_Verbrauch_gesamt userattr readingsName_VerbrauchGesamt readingsRegex.* readingsRegex_VerbrauchGesamt stateFormat
attr ETA_Verbrauch_gesamt readingsName_VerbrauchGesamt VerbrauchGesamt
attr ETA_Verbrauch_gesamt readingsRegex_VerbrauchGesamt strValue="([\d]+)"
attr ETA_Verbrauch_gesamt stateFormat VerbrauchGesamt kg


Allerding liest man damit nur einen Wert aus, was bei 30 Werten schon aufwändig wird. In meinem Fall sind es 4, dafür reicht diese Lösung.
Es gibt mit großer Sicherheit elegantere Wege, doch dafür fehlt es mir momentan an KnowHow.

Gruß, Johannes
FHEM 6.0 @ IntelNUC6CAYH;  Unifi USG, Switch, AP AC Pro; HM-MOD-UART;  Sonos Play 1 & 3, One, Beam; Philips Hue

Heimweh

Hallo Johannes,

vielen Dank für Deine Hilfestellung!!! In diese Richtung hatte ich auch schon experimentiert, hat aber nicht so recht geklappt! Dein Code funktioniert!
Ob es elegant ist oder nicht - es funktioniert  :)
Weißt Du zufällig, ob man auch Befehle an die Heizung schicken kann? Wenn ich in die Restful Dokumentation schaue kommt es mir nicht so vor...

Danke, Gruß Daniel
RaspberryPi, 8 x Intertechnosteckdosen, ETA PU15 über HTTPMOD, Youless Eneergiemonitor, 8 x Technoline Funk Temperatur / Feuchtesensoren über jeeLink, Fritzbox Anbindung, Homematic Rolladen Aktoren, MAX Heizkörperventile + Cube, SONOFF S20, S26, POW, 4ch, OWD, Alexa-fhem, enOcean / Eltako,

jojoja

Morgen Daniel,

doch, kann man:

Zitat4.2 HTTP POST
Using HTTP POST you can set a variable to a certain value.

Allerdings bin ich hier am Ende meines Wissens, bin aber auch daran interessiert. Falls ich zu etwas komme werde ich es hier posten.

Gruß Johannes
FHEM 6.0 @ IntelNUC6CAYH;  Unifi USG, Switch, AP AC Pro; HM-MOD-UART;  Sonos Play 1 & 3, One, Beam; Philips Hue

edkiss

das würde mich auch interessieren... :)

QuesT


LONyTOOn

Ich schaff es mit dem Beispielcode nicht die Außentemperatur einzulesen :( vermutlich liegt es an der (negativen) Kommazahl

attr ETA_Aussentemperatur readingsRegex_Aussentemperatur strValue="([\d]+)"

hier noch ein Ausschnitt aus dem xml request:
<value uri="/user/var/48/10241/0/0/12197" strValue="-2,0" unit="°C" decPlaces="1" scaleFactor="10" advTextOffset="0">-19</value>

Den Rest habe ich entsprechend angepasst. Mit der Vorlauftemperatur (ganze positive Zahl) funktioniert es z.B.

LONyTOOn

Nach vielem lesen und probieren bin ich soweit, dass das Dezimalkomma schuld ist, dass das einlesen nicht klappt.
mit ([\d\.]+)\< beispielsweise würde er mir 19 einlesen. Da fehlt dann allerdings das Vorzeichen und ich müsste den Wert irgendwie noch durch 10 Teilen... leider bin ich in Sachen FHEM noch totaler Anfänger.

jojoja

Hallo,

für die Außentemperatur habe ich diese Regex:

attr ETA_Sys_AuTemp readingsRegex_SysAuTemp strValue="(\d+(,\d*)?)"

Gruß Johannes
FHEM 6.0 @ IntelNUC6CAYH;  Unifi USG, Switch, AP AC Pro; HM-MOD-UART;  Sonos Play 1 & 3, One, Beam; Philips Hue

LONyTOOn


Heimweh

Hat es denn schon jemand geschafft, Befehle an die ETA zu schicken? Wie z.B. heizen einschalten?
RaspberryPi, 8 x Intertechnosteckdosen, ETA PU15 über HTTPMOD, Youless Eneergiemonitor, 8 x Technoline Funk Temperatur / Feuchtesensoren über jeeLink, Fritzbox Anbindung, Homematic Rolladen Aktoren, MAX Heizkörperventile + Cube, SONOFF S20, S26, POW, 4ch, OWD, Alexa-fhem, enOcean / Eltako,

Frank_Huber

soweit ich weis kann die Rest API nur lesen, nicht schreiben.

Heimweh

Hallo Frank,

doch das geht. Ich musste mich auch schon eines besseren belehren lassen... Hier in diesem Thema gibt's sogar einen link zu entsprechenden Codeschnippseln,
allerdings noch nicht ganz FHEM tauglich.
RaspberryPi, 8 x Intertechnosteckdosen, ETA PU15 über HTTPMOD, Youless Eneergiemonitor, 8 x Technoline Funk Temperatur / Feuchtesensoren über jeeLink, Fritzbox Anbindung, Homematic Rolladen Aktoren, MAX Heizkörperventile + Cube, SONOFF S20, S26, POW, 4ch, OWD, Alexa-fhem, enOcean / Eltako,

Frank_Huber

Oh, das ging an mir vorbei.
Dann verfolge ich das gespannt weiter.

war bisher schon mehr als zufrieden Werte auslesen zu können. :)

George_Best

Guten Abend zusammen,

erstmal vielen Dank für die Infos wie man Daten aus einer ETA-Heizung ausliest. Bei mir klappt das mit den Verbräuchen bereits. Nur die Außentemperatur will nicht.

define ETA_Aussentemp HTTPMOD http://192.168.178.13:8080/user/var//112/10241/0/0/12197 14400
attr ETA_Aussentemp userattr reading01Aussentemp reading01RegexAussentemp readingsRegex.* stateFormat
attr ETA_Aussentemp reading01Aussentemp Aussentemp
attr ETA_Aussentemp reading01RegexAussentemp strValue="(\d+(,\d*)?)"
attr ETA_Aussentemp stateFormat °C


Die XML-Antwort sieht so aus:
<eta xmlns="http://www.eta.co.at/rest/v1" version="1.0">
<value uri="/user/var//112/10241/0/0/12197" strValue="2,5" unit="°C" decPlaces="1" scaleFactor="10" advTextOffset="0">23</value>
</eta>


Ich erhalte jedoch leider kein Ergebnis....
Das Log-File sagt immer:
2017.02.02 20:46:06 3: ETA_Aussentemp: Defined with URL http://192.168.178.13:8080/user/var//112/10241/0/0/12197 and interval 14400
2017.02.02 20:46:08 3: ETA_Aussentemp: Read response to update didn't match any Reading


Hat jemand eine Idee??