Hallo an die Gemeinde,
ich versuche seit geraumer Zeit einen Weg zu finden, meinen ETA Holzvergaser abzufragen.
Zunächst wollte ich einmal die Außentemperaur
Dessen Variablen kann man ja über http Anfragen auslesen.
Das sieht so aus:
http://192.168.2.101:8080/user/var/120/10251/0/0/12197 ( die 12197 steht für die Aussentemp. )
Zurück kommt dann so etwas
<eta version="1.0"><value uri="/user/var/120/10251/0/0/12197" strValue="1,5" unit="°C" decPlaces="1" scaleFactor="10" advTextOffset="0">14</value></eta>
Zumindest in einem Tool wie HTTPRequester
Im FHEM kommt ständig jedoch "Read response to update didn't match any Reading "
Schade ist es, das es am Anfang meiner Versuche im Dezember bereits zumindest Readings gab ( ohne schön auszusehen in der Formatierung).
Ein Update habe ich gemacht ( ob ich das auch im DEZ gemacht habe, weiß ich nicht genau).
Jetzt gar nichts mehr.
Abfrage immer dieselbe, obwohl er eine Gutmeldung erhält 200 OK.
Die buf Variable bleibt immer leer, nur einmal, wenn ich das aller erste Mal definiere und abschicke, wird die Variable voll mit genau dem String, den der XML Code einliest
Ich schicke mal die internals mit
Internals:
BUSY 0
CHANGED
DEF http://192.168.2.101:8080/user/var/120/10251/0/0/12197
Interval 300
LASTSEND 1484399379.51329
MainURL http://192.168.2.101:8080/user/var/120/10251/0/0/12197
ModuleVersion 3.3.5 - 29.9.2016
NAME temper
NR 21
STATE 0.0 °C
TRIGGERTIME 1484399679.51311
TRIGGERTIME_FMT 2017-01-14 14:14:39
TYPE HTTPMOD
addr http://192.168.2.101:8080
buf
code 200
conn
data
displayurl http://192.168.2.101:8080/user/var/120/10251/0/0/12197
header
host 192.168.2.101
httpheader HTTP/1.0 200 OK
Content-Length: 234
Content-Type: application/xml;charset=UTF-8
Cache-Control: no-cache
Date: Sat, 14 Jan 2017 14:05:43 GMT
httpversion 1.0
hu_blocking 0
hu_filecount 6
ignoreredirects 0
loglevel 4
path /user/var/120/10251/0/0/12197
protocol http
redirects 0
timeout 2
url http://192.168.2.101:8080/user/var/120/10251/0/0/12197
value 0
QUEUE:
Readings:
Request:
data
header
ignoreredirects 0
retryCount 0
type update
url http://192.168.2.101:8080/user/var/120/10251/0/0/12197
value 0
Sslargs:
Attributes:
enableControlSet 1
event-on-update-reading .*
reading01Name Temp
reading01Regex strValue="([\d\d]+)"
stateFormat {sprintf "%.1f °C", ReadingsVal($name, "Temp", 0)}
userattr reading01Name reading01Regex stateFormat
So, jetzt bin ich mal gespannt
P.S. ich wollte jetzt (noch )nicht auf die weitere Ausgestaltung der Attribute eingehen, sonst wird es ein Durcheinander womöglich, aber so ähnlich wollte ich das machen.
Da wie bereits geschrieben, schon die Rückgabe beim Updaten mit HTTPMOD nicht passt.
Ggf. kann man auch andere Module verwenden, wer weiß.
Achso, und ob ich es über Windows oder Raspi / Linux machen ist egal.
Danke
Uwe
attr temper reading01Regex >([\d]+)<
sollte funktionieren ;-)
Woher hast Du den Code mit strValue= ??
Hallo Joe,
vielen Dank dafür.
Wenn ich deine Schreibweise nehme, bekomme ich einen ersten Erfolg.
HTTPMOD
temper 12.0 °C ( könnte auf die interne Messung 1,2°C hindeuten )
Das ist das, was zwischen den Ecken steht im String
<value uri="/user/var/120/10251/0/0/12197" strValue="1,0" unit="°C" decPlaces="1" scaleFactor="10" advTextOffset="0">12</value></eta>
Geht also prinzipiell, nun würde ich das gerne als 1,0°C angezeigt bekommen, oder den 12er Wert formatiert dargestellt.
Gerade ist der auf 11°C gegangen, das müsste dann nur für jedem Bereich passen, einfach durch 10 teilen ist ja schlecht.
Woher hast Du den Code mit strValue= ??
das war aus einem der wenigen Threads mit ETA Öfen zu dem Thema
https://forum.fhem.de/index.php?topic=56744.0
Mein Einstiegspfad zu FHEM überhaupt war der folgende Faden, der ziemlich genau mein Wunsch enthält.
Im Prinzip wollte ich einmal den Solarertrag einlesen.
Dies ist auch nur eine bestimmte Variable, man kann "gestern" und "heute" einlesen.
viele Grüße
Uwe
versuch mal
attr temper reading01Expr $val / 10
wenn sich jedoch variablen wie "decPlaces" ändern können, sollte man nochmals anders ran gehen.,...
Zitat von: Uwe_Eta20 am 14 Januar 2017, 21:38:34
Gerade ist der auf 11°C gegangen, das müsste dann nur für jedem Bereich passen, einfach durch 10 teilen ist ja schlecht.
den satz verstehe ivj nicht ganz..... ;-)
Gerade ist der auf 11°C gegangen, das müsste dann nur für jedem Bereich passen, einfach durch 10 teilen ist ja schlecht.
Ja, das stimmt.
Will heißen, ist der Wert im Einerbereich, dann sieht es mit einer starren Teilung schlecht aus.
Für den Ladezustand des Ofens habe ich auch gerade 654 raus, was 65% meint.
Probiere das andere gleich mal aus
Merci, rechnet korrekt um ;)
Ladezustand
64.8 Prozent
Solar_gestern
0.0 Kwh
temper
0.9 °C
Dann les ich mir nochmal kurz die Funktion durch, das ist einfach sehr viel Stuff.
Viel Erfolg dabei!
Regex sind sehr mächtig und eigentlich auch Logisch, man kann damit sehr viel machen hier in fhem!!