Hallo Zusammen,
hier geht es um den Pumpen Status + Temperaturen die von meinem Webserver(microhttpd) zu Fhem übertragen werden sollen.
Ich suche immer noch eine Lösung um den Status der übertragenen Daten auf Aktualität zu überprüfen.
Obwohl der Webserver nicht mehr läuft steht immer noch der alte Wert bei den Readings, auch das Datum ist Alt.
Ich möchte alle Werte rot makieren (oder mit Ausführungszeichen), die nicht aktuell sind um auf den ersten Blick zu sehen, ob ein Übertragungsfehler vorliegt und oder der Server ausgefallen ist.
Die Angezeigten werden sollen aktuell sein - ich muss mich darauf verlassen können! Außerdem kann ich nicht bei allen 12 Sensoren erst das Datum und die Uhrzeit überprüfen, bevor ich dem Angezeigten Wert Glauben schenken kann - da muß eine andere Lösung her.
Zu dem Thema gab es einige Beiträge, aber ich komme da auch nicht weiter.
MATCHED_READINGS sollte bei den Readings mit erscheinen, finde ich aber nirgens in Fhem. Damit sollte man angeblich die letzten readings sehen können.
Wie man das ganze dann auf die Anzeige anwenden kann um zu sehen ob bei MATCHED_READINGS mein reading z.B. TempBufferOben auch dabei ist, weiß ich allerdings auch nicht.
Ich nutze die aktuelle Version: 98_HTTPMOD.pm 9127 2015-08-24 18:43:31
Wer kann mir da bitte helfen? Wie kann man da Abhilfe schaffen?
Hat den keiner eine Idee wie man den Status abfragen kann?
Ich komme hier wirklich nicht weiter. :-[
Es gibt bei mir im HTTPMOD Device ein Reading das sich code nennt. 200 heißt alles ok, alles andere heißt könnte was nicht in Ordnung sein. Thema HTTP Statuscode
https://de.wikipedia.org/wiki/HTTP-Statuscode (https://de.wikipedia.org/wiki/HTTP-Statuscode)
Desweiteren kannst Du das Reading httpheader auswerten. Auch hier sind wichtige Informationen zur Übertragung drin.
Ich denke mal da kannst Du ansetzen.
Danke für die Infos. Schaue ich mir beides an.
Hallo,
In der bisherigen Version von HTTPMOD ist so ein Feature nicht explizit drin.
MATCHED_READINGS wird erzeugt wenn das Attribut showMatched gesetzt ist. Das bringt aber bisher nichts wenn der HTTP Request einen Fehler erzeugt bzw. gar keine Daten liefert.
Mit dem Watchdog Modul kann man jedoch reagieren wenn Readings beliebiger Geräte nicht aktualisiert werden.
In einer kommenden Version von HTTPMOD wird das einfacher / direkt in HTTPMOD machbar sein.
Wenn man die Daten nicht in Fhem selbst sondern z.B. Auf einem Kindle darstellt und dafür das Modul FReplacer verwendet, dann kann man dort auch das maximale Alter eines Readings festlegen und ggf. Eine Ersetzung.
Gruß
Stefan
ZitatIn einer kommenden Version von HTTPMOD wird das einfacher / direkt in HTTPMOD machbar sein.
Das wäre eine echte Erleichterung für mich und vieleicht auch für Andere die ähnliche Probleme haben. :D
Vielleicht kann man das ganze gleich mit einem Attribut lösen, wäre dann auch leichter einzubinden bzw. zu verwenden.
Wann kann man den ungefähr mit der neuen Version rechnen?
Das mit dem Watchdog schaue ich mir trotzdem mal an. Danke!
Hallo,
Ich hoffe, dass ich die neue Version bis zum Jahresende einchecken kann.
Sie soll einige neue Features enthalten und daraus ergeben sich einige interne Umbauten im Code ...
Gruß
Stefan
Hallo Stefan,
vielen Dank für Deine neue Version. In MATCHED_READINGS stehen jetzt auch die Werte drin - vorher stand gar nichts drin. Eins von den neuen Features werde ich auf jeden Fall noch einbauen - das mit der Gültigkeit der Werte.
Zwischen dem Fest habe ich in meine Heizungs-Steuerung unsere neue Gas-Therme eingebunden sowie div. Pumpen Anteuerungen. Dazu habe ich auch mein Webserver erweitert um div. Status-Infos bereitzustellen.
Um das ganze schneller zu testen, habe ich mir auf meinem Entwickler-PC Fhem installiert v5.4 - Mein richtiger Raspberry-PI Fhem läuft mit v5.7.
Leider war das ein Fehler - ich hätte es mit dem richtigen PI testen sollen - meine definierten Geräte (readingsGroup) zeigen auf dem Raspberry-PI keine Temperatur/Sensor Daten an.
Die Readings sind in den Haupt-Modul OK - aber halt nicht in den definierten Untermodulen (Oder wie man das halt benennt)
Hier die Definition vom Haupt-Modul:
define HCS HTTPMOD http://192.xxx.xx.xx:8087/ 40
attr HCS userattr getHeader1 getHeader2 readingsName1 readingsName10 readingsName11 readingsName12 readingsName13 readingsName14 readingsName15 readingsName2 readingsName3 readingsName4 readingsName5 readingsName6 readingsName7 readingsName8 readingsName9 readingsRegex1 readingsRegex10 readingsRegex11 readingsRegex12 readingsRegex13 readingsRegex14 readingsRegex15 readingsRegex2 readingsRegex3 readingsRegex4 readingsRegex5 readingsRegex6 readingsRegex7 readingsRegex8 readingsRegex9 showMatched stateFormat timeout verbose
attr HCS getHeader1 Content-Type: text/html
attr HCS getHeader2 Accept: */*
attr HCS readingsName10 T-2Bot
attr HCS readingsName11 T-HBVL
attr HCS readingsName12 T-HBRL
attr HCS readingsName13 T-Out
attr HCS readingsName14 T-AG
attr HCS readingsName15 P-Sol
attr HCS readingsName2 T-Col
attr HCS readingsName3 T-3Top
attr HCS readingsName4 T-3Mid
attr HCS readingsName5 T-3Bot
attr HCS readingsName6 T-8Top
attr HCS readingsName7 T-8Mid
attr HCS readingsName8 T-8Bot
attr HCS readingsName9 T-2Top
attr HCS readingsRegex10 T-2Bot: ([\d.]+)
attr HCS readingsRegex11 T-HBVL: ([\d.]+)
attr HCS readingsRegex12 T-HBRL: ([\d.]+)
attr HCS readingsRegex13 T-Out: ([\d.]+)
attr HCS readingsRegex14 T-AG: ([\d.]+)
attr HCS readingsRegex15 P-Sol: ([\d.]+)
attr HCS readingsRegex2 T-Col: ([\d.]+)
attr HCS readingsRegex3 T-3Top: ([\d.]+)
attr HCS readingsRegex4 T-3Mid: ([\d.]+)
attr HCS readingsRegex5 T-3Bot: ([\d.]+)
attr HCS readingsRegex6 T-8Top: ([\d.]+)
attr HCS readingsRegex7 T-8Mid: ([\d.]+)
attr HCS readingsRegex8 T-8Bot: ([\d.]+)
attr HCS readingsRegex9 T-2Top: ([\d.]+)
attr HCS room Keller
attr HCS showMatched 1
attr HCS timeout 10
attr HCS verbose 3
Hier die Definition von einem der Unter-Modulen (Heizkessel):
#-- Anzeige (Heizkessel) --
define Temp_Heizkessel readingsGroup HCS:T-HBVL: HCS:T-HBRL:
attr Temp_Heizkessel alias Holz-Heizkessel
attr Temp_Heizkessel group Temperatur / Sensoren
attr Temp_Heizkessel mapping {'T-HBVL' => 'Vorlauf', 'T-HBRL' => 'Rücklauf'}
attr Temp_Heizkessel nameStyle style="font-weight:bold"
attr Temp_Heizkessel room Keller
attr Temp_Heizkessel style style="font-size:16px"
attr Temp_Heizkessel valueFormat {': %.1f °C'}
(http://dashboard.png)
(http://readings.png)
Mit der anderen Version von Fhem auf meinen Entwickler-PC wurden unter allen Rubricken die korrekten Senordaten / Temperaturen angezeigt.
Was kann das sein?
Gelöst!
Beim herumspielen mit den RegExp, ist mir der Doppelpunkt ins Auge gestoßen. Bei den Defines der Untergruppen habe ich auch doppelpunkte für die readings verwendet.
Richtig:
DEF
HCS:T-HBVL HCS:T-HBRL
Falsch:
DEF
HCS:T-HBVL: HCS:T-HBRL:
Der Doppelpunkt am Ende eines Readings darf mit der neuen Fhem version nicht mehr verwendet werden - bzw. liegt eher am Modul readingsGroup!
Im Anhang mein Aktuelles Dashboard!