FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: cocojambo am 08 August 2019, 15:50:20

Titel: [gelöst] ReadingsTimestamp und S300TH
Beitrag von: cocojambo am 08 August 2019, 15:50:20
Ich habe mehrer S300TH im Einsatz und man sieht nie wann die Letzte Messung oder Aktuallisierung übertragen wurde. Deshalb wollte ich gerne hinter jeder Anzeige Zeile gerne die Zeit der letzten Meldung einfügen.
Folgendes habe ich versuchsweise bei der Definition des S300TH im Büro probiert:

TH_Diele_2.Etage:,<Temperatur>,temperature,<Luftfeuchte>,humidity TH_Wohnzimmer_EG:,<Temperatur>,temperature,<Luftfeuche>,humidity TH_Toepferei:,<Temperatur>,temperature,<Luftfeuchte>,humidity TH_Garten:,<Temperatur>,temperature,<Luftfeuchte>,humidity TH_Partyraum:,<Temperatur>,temperature,<Luftfeuchte>,humidity TH_Buero_1.Etage:,<Temperatur>,temperature,<Luftfeuchte>,humidity,<Zeit>,{ ReadingsTimestamp("TH_Buero_1.Etage","state",0) }


Ich habe auch alle Schreibmöglichkeiten laut Wiki und im Board ausprobiert, zb: Die 0 in "0" oder so"" zu ändern. Auch verschiedene Schreibmöglichkeiten mit und ohne den Klammern probiert. Mit CUL_TIME hat es auch nicht funktioniert. Hinter dem Feld <Zeit> erscheint nichts oder bei manchen Versuchen stürtzt FHEM ab oder hängt.
Weiß jemand wie hier die richtige Schreibweise ist?
Gruß aus Köln
Norbert
Titel: Antw:ReadingsTimestamp und S300TH
Beitrag von: amenomade am 08 August 2019, 16:47:24
Ich würde einfach state in der DEF schreiben, und dann es mit valueFormat formattieren:
valueFormat { if ($READING eq "state") {ReadingsTimestamp($DEVICE,"state",0)::}
Titel: Antw:ReadingsTimestamp und S300TH
Beitrag von: cocojambo am 08 August 2019, 17:19:35
Vielen Dank für Deine Antwort. Funktioniert auf Anhieb noch nicht. Folgende Fehlermeldung erscheint:

syntax error at (eval 14044) line 1, near ")::"
Missing right curly or square bracket at (eval 14044) line 1, at end of line
syntax error at (eval 14044) line 1, at EOF


Setze ich ans Ende die wohl fehlende Klammer:

valueFormat { if ($READING eq "state") {ReadingsTimestamp($DEVICE,"state",0)::}}

erscheint diese Meldung:

syntax error at (eval 14092) line 1, near ")::"

Titel: Antw:ReadingsTimestamp und S300TH
Beitrag von: amenomade am 08 August 2019, 18:48:23
Naja, hab von der Arbeit aus geschrieben
:: ist natürlich ;;
und ja, es fehlte eine Klammer.
Titel: Antw:ReadingsTimestamp und S300TH
Beitrag von: cocojambo am 09 August 2019, 16:34:03
Prima funktioniert super. Danke. Habe dann aber probiert dieses ValueFormat in die Zeile mit meinen bisherigen ValueFormat zu integrieren.
Die Zeit wird weiterhin ausgegeben, aber mein ValueFormat mit "C" und "%" ist verschwunden - liegt wahrscheinlich an dem Trennungszeichen zwischen beiden Formatierungen.

{temperature => "%.1f&nbspC", humidity => "%.1f&nbsp%%" , {if ($READING eq "state") {ReadingsTimestamp($DEVICE,"state",0);;}}}

Ich habe auch andere Zeichen und Klammern probiert. Es kommt entweder Error oder es wird wie vorher im Zeitfeld nur der "state" angezeigt.
Kannst du mir sagen, was ich da falsch mache?

Gruß
Norbert
Titel: Antw:ReadingsTimestamp und S300TH
Beitrag von: amenomade am 09 August 2019, 20:47:52
Du kannst nicht Hash und Perl in valueFormat mischen

{if ($READING eq "state") {ReadingsTimestamp($DEVICE,"state",0);;}
elsif ($READING eq "temperature") {"%.1f&nbspC"}
elsif ($READING eq "humidity") {"%.1f&nbsp%%"}}
Titel: Antw:ReadingsTimestamp und S300TH
Beitrag von: cocojambo am 10 August 2019, 15:28:33
@ amenomade

Das hat wunderbar geklappt. So tief stecke ich nicht in der Materie drin, das ich das so auf Anhieb gemerkt oder hin bekommen hätte.
Teilweise finde ich hier im Forum Anleitungen und Hinweise wie es funktioniert. Aber zu diesem Fall habe ich auch bei intensiver Suche nichts gefunden.
Also, nochmals danke für deinen Tip.

Gruß aus Köln
Norbert