ETA Touch - Rest API

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

Vorheriges Thema - Nächstes Thema

Heimweh

Guten Morgen Ronny,

ich habe mich jetzt mal damit beschäftigt. Der Codeschnipsel den Du da eingefügt hast war ja von mir - und der funktioniert auch so bei mir.
Der Pfad hat sich in diesem Fall nicht geändert.

Gib mal an einem Rechner im Browser (selbes Netzwerk wie die Eta Heizung) folgende Adresse ein:


http://192.168.178.112:8080/user/var/40/10241/0/0/12197


dann müsste folgendes zurückkommen:


This XML file does not appear to have any style information associated with
it. The document tree is shown below.
<eta xmlns="http://www.eta.co.at/rest/v1" version="1.0">
<value uri="/user/var/40/10241/0/0/12197" strValue="5,5" unit="°C"
decPlaces="1" scaleFactor="10" advTextOffset="0">55</value>
</eta>


Funktioniert das so bei Dir?
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

Es können aber je nach Software Version und Kessel-Typ andere Pfade sein.
Ich würde das über das Menü abgleichen. Die Aussen-Temp sollte zwar überall gleich sein, aber man weis ja nie.
http://ip-des-kessels:8080/user/menu
dann runterscrollen bis "System", hier siehst Du den richtigen Pfad.  (im Anhang markiert)

Hier auch noch zum Vergleich mein Device:
defmod ETA_Kessel_Aussentemp HTTPMOD http://192.168.99.99:8080/user/var/40/10241/0/0/12197 300
attr ETA_Kessel_Aussentemp userattr reading01Name reading01OExpr reading01Regex readingsRegex.* stateFormat
attr ETA_Kessel_Aussentemp enableControlSet 1
attr ETA_Kessel_Aussentemp event-on-change-reading .*
attr ETA_Kessel_Aussentemp reading01Name Kessel_Aussentemp
attr ETA_Kessel_Aussentemp reading01OExpr $val =~ s/,/\./;; $val;;
attr ETA_Kessel_Aussentemp reading01Regex strValue="([0-9,.]+)"
attr ETA_Kessel_Aussentemp stateFormat Kessel_Aussentemp °C

Ronny_5578

#47
Vielen Dank,
habe mein Fehler gefunden.
IP war falsch  :o

Aber so ganz bekomme ich das aber nicht hin.

Wenn ich
Zitathttp://192.168.1.231:8080/user/menu/
eingebe, dann erhalte ich
Zitat<fub uri="/120/10101" name="HK"><object uri="/120/10101/0/0/12090" name="Heizkreis">
<object uri="/120/10101/0/0/12092" name="Betrieb"/>
<object uri="/120/10101/12113/0/0" name="Heizzeiten">
<object uri="/120/10101/12113/0/1109" name="Schaltzustand"/>
<object uri="/120/10101/12113/0/1110" name="Temperatur"/>

Ich möchte die Temperatur haben, also habe ich
Zitathttp://192.168.1.231:8080/user/var/120/10101/12113/0/1110
eingegeben und bekomme
Zitat<eta version="1.0">
<script/>
<value uri="/user/var/120/10101/12113/0/1110" strValue="xxx" unit="" decPlaces="1" scaleFactor="10" advTextOffset="0">-32768</value>
</eta>
aber die Temperatur habe ich da nicht, obwohl es die gibt z.Z. 60°C.

Ronny_5578

So habe iniges hin bekommen aber noch nicht alles  :-[

Nun wollte ich die Betriebsstunden anzeigen lassen, aber hier scheitere ich an Fhem.
Mit http://192.168.1.231:8080/user/var/40/10021/0/0/12153 erhlate ich folgendes:

<eta version="1.0">
<script/><value uri="/user/var/40/10021/0/0/12153" strValue="1899h 38m" unit="" decPlaces="0" scaleFactor="1" advTextOffset="0">6838690</value>
</eta>


Also  strValue="1899h 38m"

Wie schaffe ich dies anzuzeigen?

mit attr Betriebsstunden_Kessel reading01OExpr $val =~ s/,/\./;; $val;;
attr Betriebsstunden_Kessel reading01Regex strValue="([0-9,.]+)"


kommt nix gescheites raus da steht dann bei mir 14h ???

Hier mal meine gesammter Code
define Betriebsstunden_Kessel HTTPMOD http://192.168.1.231:8080/user/var/40/10021/0/0/12153 300
attr Betriebsstunden_Kessel userattr reading01Name reading01OExpr reading01Regex readingsRegex.* stateFormat
attr Betriebsstunden_Kessel enableControlSet 1
attr Betriebsstunden_Kessel event-on-change-reading .*
attr Betriebsstunden_Kessel group Heizung
attr Betriebsstunden_Kessel reading01Name Betriebsstunden
attr Betriebsstunden_Kessel reading01OExpr $val =~ s/,/\./;; $val;;
attr Betriebsstunden_Kessel reading01Regex strValue="([0-9,.]+)"
attr Betriebsstunden_Kessel room Keller
attr Betriebsstunden_Kessel stateFormat Betriebsstunden h


Kann mir jemand helfen?
Danke

Frank_Huber

#49
Zitat von: Ronny_5578 am 30 Januar 2019, 09:13:55
Nun wollte ich die Betriebsstunden anzeigen lassen, aber hier scheitere ich an Fhem.
Wie schaffe ich dies anzuzeigen?
Kann mir jemand helfen?

Meine Vermutung: Regex passt nicht. kannst über regex101.com testen. https://regex101.com/
Dein jetziger Regex matcht gar nicht:
ZitatYour regular expression does not match the subject string.

dieser:
strValue="([0-9,.]+)h
matcht zu 1899. Also die Stunden ohne die Minuten.

dieser:
h ([0-9,.]+)m"
würde die Minuten matchen, 38

Mit einem User-Reading z.B. könnte man diese dann zu hhh:mm zusammenführen.

Ronny_5578

Vielen Dank,
das werde ich heute Abend gleich ausprobieren.

Meine HK Temperatur habe ich wirklich nicht gefunden, so habe ich heute mal eine Mail an eta gesendet.
Mal sehen, ob es eine Antwort gibt.

Frank_Huber

die sind im Regelfall sehr hilfsbereit.
Hab ich bishe rnur gute Erfahrungen gemacht.

Ronny_5578

Der Service von eta ist echt super.
Am gleichen Tag hatte ich die Antwort berkommen.

Eigentlich ist es ganz einfach!!
Hier die Antwort:
"Die Ressource /user/menu hat den exakt gleichen Aufbau wie das Textmenü am ETAtouch (nur halt für alle Funktionsblöcke); du kannst dann einfach in der XML-Datei zum gewünschten Parameter absteigen und somit hast du dann die notwendige Adresse. "

So habe ich meinen Temperaturwert gefunden.

@Frank
Vielen Dank noch für https://regex101.com/



crazysky

Hallo,

weiß zufällig jemand ob und wenn ja, wie man den Ertrag einer Solarthermie-Anlage in der ETA auslesen kann?
Ich habe den ETA Support schon bemüht. Die haben mir freundlicherweiße zwei allgemeine Anleitungen mit der hier im Forum schon erwähnten und bekannten Struktur geschickt. Sie verneinten es nicht, dass das möglich ist. Jedoch nannten sie mir auch nicht den genauen Ort. Und ich finde es nicht.
Vielleicht hat schon ein anderer ETA-User sich damit beschäftigt?

Gruß

Frank_Huber

Zitat von: crazysky am 18 Juli 2019, 07:34:45
Hallo,

weiß zufällig jemand ob und wenn ja, wie man den Ertrag einer Solarthermie-Anlage in der ETA auslesen kann?
Ich habe den ETA Support schon bemüht. Die haben mir freundlicherweiße zwei allgemeine Anleitungen mit der hier im Forum schon erwähnten und bekannten Struktur geschickt. Sie verneinten es nicht, dass das möglich ist. Jedoch nannten sie mir auch nicht den genauen Ort. Und ich finde es nicht.
Vielleicht hat schon ein anderer ETA-User sich damit beschäftigt?

Gruß

poste mal die manüstruktur die dir die ETA auswirft. Da drin solltest Du deine gewünschten Werte finden.
den passenden httpmod bekommen wir dann auch noch zusammen hin.

Heimweh

Ich kann Dir mal meinen Code schicken, kann aber sein dass Du eine andere Menüstruktur hast. Das müsstest Du anpassen:


#
# ---------------------------
# - ETA SOLARERTRAG HEUTE ---
# ---------------------------
#
define ertragheuteEta HTTPMOD http://192.168.178.58:8080/user/var/120/10221/0/0/12350 1800
setuuid ertragheuteEta 5cf64a97-f33f-55ed-2890-06a88eb5a6975e67
attr ertragheuteEta userattr event-min-interval event-on-change-reading reading01Name reading01Regex readingsExpr1 stateFormat verbose
attr ertragheuteEta alias Eta Solar Ertrag heute
attr ertragheuteEta enableControlSet 1
attr ertragheuteEta event-min-interval SEH_Eta:182000
attr ertragheuteEta event-on-change-reading .*
attr ertragheuteEta reading01Name SEH_Eta
attr ertragheuteEta reading01Regex strValue="([\d\,]+)"
attr ertragheuteEta room Eta
attr ertragheuteEta stateFormat {no warnings 'numeric' ;; sprintf("%.1f kW/h",int(ReadingsVal($name,"SEH_Eta",0)))}
attr ertragheuteEta userReadings { my $val = (ReadingsVal("$name", "SEH_Eta",0));; $val =~ s/,/\./g;; return $val;;}\


Und noch der Ertrag von "gestern"


#
#
#
# ---------------------------
# - ETA SOLARERTRAG GESTERN -
# ---------------------------
#
define ertraggesternEta HTTPMOD http://192.168.178.58:8080/user/var/120/10221/0/0/12769 21600
setuuid ertraggesternEta 5cf64a97-f33f-55ed-41f0-30ba515bee3161b6
attr ertraggesternEta userattr reading01Name reading01Regex
attr ertraggesternEta alias Eta Solar Ertrag gestern
attr ertraggesternEta enableControlSet 1
attr ertraggesternEta event-min-interval SEG_Eta:182000
attr ertraggesternEta reading01Name SEG_Eta
attr ertraggesternEta reading01Regex strValue="([\d\,]+)"
attr ertraggesternEta room Eta
attr ertraggesternEta stateFormat {sprintf("%.1f kW/h",ReadingsVal($name,"SEG_Eta",0))}

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,

crazysky

ok, ich checke das mal heute abend. httpmod bekomme ich schon selbst hin. ich finde bloß den wert bzw. die url nicht.
In meinem normalen touch menü gibt es den punkt auch nicht. Ist der dort bei dir vorhanden? Dann läge es eventuell an meiner Version von ETA dass das gar nicht so erfasst wird.

vielen Dank

Heimweh

In meiner Menüstruktur heisst es dort "Ertrag heute" und "Ertrag gestern". Hast Du ja sicher schon aufgerufen


http://DEINEIP:8080/user/menu/


Das es an der Version liegt, glaube ich weniger. Hast Du denn einen Durchflussmesser installiert in Deinem Solarkreislauf? Ich habe den auch erst nachträglich
eingebaut um den Ertrag messen zu können. Ich habe einen Kollektorfühler, einen Temperaturfühler im Vorlauf, einen im Rücklauf und den besagten Durchflussmesser. Und nach dem ich den eingebaut hatte, musste ich an der Eta noch einstellen wieviel Pulse / Liter mein Durchflussmesser macht und dann ging auch die Ertragsmessung. 
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,

crazysky

den habe ich vermutlich nicht. das erklärt alles. was hat der gekostet? :-P

Heimweh

Zitat von: crazysky am 18 Juli 2019, 11:04:35
den habe ich vermutlich nicht. das erklärt alles. was hat der gekostet? :-P

Der hat damals 110 Euro gekostet. Es handelt sich um einen:

RESOL Volumenmessteil V40-06 - Messgerät mit Kontaktgeber - Durchflussmesser

Aber frag lieber nochmal bei ETA nach bevor Du den jetzt kaufst. Weil die ungefähre Durchflussmenge wird ja meiner Erinnerung auch ohne diesen Durchflussmesser angezeigt oder?
Anhand der Pumpendrehzahl (die ja die ETA vorgibt) und dem eingestellten Glykolgehalt sollte das ja grob möglich sein.

Eta hat mir damals folgendes geschrieben wo ich vor diesem Projekt stand:

Zitat
Über unsere Regelung kann eine Wärmemengenmessung für Solaranlagen realisiert werden.

Hierfür ist ein Durchflussmessung mittels Impulsgeber erforderlich.

Seitens ETA Heiztechnik GmbH kann der Volumenstromgeber Typ: V 40-06 der Fa. Resol (http://www.resol.de/) empfohlen werden!

Dieser ist über den Handel zu beziehen und wird nicht von uns geliefert.



Zusätzlich ist eine ,,Wärmemengenabschätzung" möglich.

Hier wird der Durchfluss der Solarpumpe bei 100% eingegeben und die jeweilige Durchflussmenge anschließend abgeschätzt.

Zur Temperaturmessung sind dann jeweils Tauchfühler an Vor – und Rücklauf möglichst nahe dem Speicher erforderlich.

Dieses Verfahren ist dann natürlich nicht für die Förderung ausreichend!



Zusätzlich finden Sie im Anhang das Schemenheft Solar.

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,