FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Uwe_Eta20 am 14 Januar 2017, 14:24:17

Titel: Fehlermeldung bei HTTPMOD Abfrage
Beitrag von: Uwe_Eta20 am 14 Januar 2017, 14:24:17
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
Titel: Antw:Fehlermeldung bei HTTPMOD Abfrage
Beitrag von: JoeALLb am 14 Januar 2017, 15:29:16
attr temper reading01Regex >([\d]+)<
sollte funktionieren ;-)

Woher hast Du den Code mit strValue= ??
Titel: Antw:Fehlermeldung bei HTTPMOD Abfrage
Beitrag von: Uwe_Eta20 am 14 Januar 2017, 21:38:34
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


Titel: Antw:Fehlermeldung bei HTTPMOD Abfrage
Beitrag von: JoeALLb am 14 Januar 2017, 22:05:50
versuch mal

attr temper reading01Expr $val / 10


wenn sich jedoch variablen wie "decPlaces" ändern können, sollte man nochmals anders ran gehen.,...
Titel: Antw:Fehlermeldung bei HTTPMOD Abfrage
Beitrag von: JoeALLb am 14 Januar 2017, 22:08:57
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..... ;-)
Titel: Antw:Fehlermeldung bei HTTPMOD Abfrage
Beitrag von: Uwe_Eta20 am 14 Januar 2017, 23:25:29
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
Titel: Antw:Fehlermeldung bei HTTPMOD Abfrage
Beitrag von: Uwe_Eta20 am 14 Januar 2017, 23:35:28
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.
Titel: Antw:Fehlermeldung bei HTTPMOD Abfrage
Beitrag von: JoeALLb am 15 Januar 2017, 15:01:40
Viel Erfolg dabei!
Regex sind sehr mächtig und eigentlich auch Logisch, man kann damit sehr viel machen hier in fhem!!