Gibt es einen bequemen Weg bei Readings einen Timeout zu setzen nachdem der Wert zurück gesetzt wird?
Hintergrund sind Sensoren die nicht sehr zuverlässig die Temperatur setzen. Falls für Stunden kein neuer Wert kommt, so bleibt der alte Wert stehen. Ich bräuchte hier nach zBsp 1 Stunde einen nicht definierten Wert anstelle des veralteten.
Ich könnte mir periodische Skripte vorstellen, aber das ist alles fern von bequem.
Da gibt es mehrere Möglichkeiten. Wenn Du kein separates Device willst, missbrauche ein userReadings in der Art (nicht getestet):
attr DeviceNameDeinesSensors userReadings watchdog:temperature:.* {fhem("sleep 3600 watch1;; setreading $name temperature undef")}
Wirkungsweise: ein benanntes sleep wird gestartet wenn ein Temperatur Wert kommt, kommt innerhalb einer Stunde wieder einer beginnt der Timer einfach von vorn, kommt kein Wert wird das reading temperature auf einen Wert gesetzt.
Das reading watchdog bleibt leer...
Achte beim eingeben des Codes auf die Semikolons, wenn Du es über die DEF machst darf nur eines hin!
Gruß Otto
Warum genau kommt es bei dem Vorschlag nicht zu der ... prohibited Meldung ?
Es ist doch ein setreading im selben Device und $name wird auch verwendet.
Liegt es daran das aus der Perl-Ebene der FHEM-Befehl ausgeführt wird und es darum dann nicht zu der Meldung kommt ?
@Thomas Durch das sleep ist es quasi ausgelagert.
Mich beschäftigt das weiter, kann auch daneben liegen (irgendwas ist mir aber in Erinnerung, komm aber nicht drauf), müsste es nicht ein at geben das mir mit list TYPE=at angezeigt würde ? Ist es versteckt und ich muss mich nur wieder weiter einlesen bis ich drauf komme ?
cancel zeigt Dir das "named sleep" solange an wie es existiert.
Ja, machts, Danke.
Verstehen tu ich deshalb gerade nicht mehr, irgendwo her muss der Timer ja kommen. Ich mag mich aber aktuell nicht tiefer mit beschäftigen, auch wenn es mich grundsätzlich interessieren würde warum und weshalb.
Hätte die Suche nicht geholfen?
https://forum.fhem.de/index.php/topic,49408.msg410767.html#msg410767 (https://forum.fhem.de/index.php/topic,49408.msg410767.html#msg410767)
Den Tipp mit dem
watchdog habe ich verwendet und er funktioniert wie gewünscht.
Das Module Modul
98_readingsWatcher scheint es bequemer zu machen, schaue nun, wie ich mit dem zurecht komme.
Vielen Danke für die Antworten!
PS:
Zitat von: rabehd
Hätte die Suche nicht geholfen?
Falls die Frage mir gegolten hat, so ist der Konjunktiv unbegründet. Die Suche half nicht, daher der Beitrag. Aber man freut sich schon, wenn der erste Forumsbeitrag in der Kategorie
Anfängerfragen so nett beantwortet wird!