Ich habe aktuell das Problem, daß einer meiner Rauchmelder wohl keine Daten mehr sendet. Aufgefallen ist es mir nur, weil eine Temperatur von über 30° aktuell eher unwahrscheinlich ist ;)
Ich suche jetzt nach einer Möglichkeit festzustellen/anzuzeigen wenn ein Gerät über einen Zeitraum von sagen wir mal einem Tag keine Updates geliefert hat.
Als eine Möglichkeit sehe ich den Timestamp des anzuzeigenden Readings auszuwerten und die Anzeige entsprechend anzupassen, wenn es zu alt ist. Alternative 2 wäre alle Devices zu checken und die ältesten Werte in einer Listbox (gibt es sowas ?) anzuzeigen.
Sicher gibt es noch viele andere Varianten - würde mich mal interessieren ob und - falls ja - wie ihr das gelöst habt, da ich im Moment nicht so recht weiß, wie ich anfangen soll ...
Es gibt ReadingsAge und auch diverse Monitoring Module.
Eigenwerbung : schau dir in der command.ref mal readingsWatcher bzw. https://forum.fhem.de/index.php/topic,49408.0.html an
Ich müsste also ein Device anlegen
define RW readingsWatcher
und dann bei meinem Device Rauchmelder_1
attr Rauchmelder_1 86400,,temperature,battery
Jetzt würden temperature und battery überwacht ob sie innerhalb des letzten Tages verändert wurden. Finde ich die Info dann nur im Device RW im Reading Rauchmelder_1.aktueller_status ?
Viele Wege führen zum Ziel:
Bei mir ist es ein JeeLink USB-Stick über den ich die LaCrosse-Thermometer auslese und der alle paar Wochen mal den Betrieb einstellt. Da habe ich einen watchdog-Device drauf das alle 20 Minuten prüft, ob sich bei einem der LaCrosse-Devices der STATE aktualisiert hat (falls nein wird ein RESET-Befehl an den JeeLink gesendet).
Zitat von: dt2510 am 24 September 2019, 11:04:38
Finde ich die Info dann nur im Device RW im Reading Rauchmelder_1.aktueller_status ?
im ersten Schritt ist alles auf das RW Device beschränkt, für weitere Infos direkt im überwachten Device ist das Attribut readingActifity zuständig.
ZitatreadingActifity (default none)
Das Modul kann ähnlich dem HomeMatic ActionDetector im überwachten Gerät ein eigenes Reading setzen und den Überwachungsstatus
in diesem speichern. Beispiel :
attr <name> readingActifity actifity
Erzeugt in den überwachten Geräten das zusätzliche Reading actifity und versorgt es mit dem Status dead bzw alive
attr <name> readingActifity aktiv:0:1
Erzeugt in den überwachten Geräten das zusätzliche Reading aktiv und versorgt es mit dem Status 0 bzw 1
Das Attribut heißt wirklich readingActifity - nicht readingActivity ?
es heißt readingActivity ... hab' es mal eingebaut und es funktioniert einwandfrei :) Danke !!
Eine Frage hab' ich noch. Folgendes Attribut hab ich gesetzt
attr FGSD002_ID23 readingsWatcher 86400,,temperature,battery
Die Temperatur wurde kürzlich aktualisiert (steht im readingsWatcher Device auf "ok"), die Batterie vor 2 Tagen. FGSD002_ID23_battery steht daher auch korrekterweise auf "timeout".
Wieso aber ist das readingsActivity Attribut von FGSD002_ID23 (heißt bei mir "alive") "dead" und nicht "alive" ? Sollte das nicht alive sein, wenn mindestens ein Wert verändert wurde ?
edit:
ich denke ich überwache nicht temperature, battery usw. einzeln sondern wakeup - wo es vorhanden ist - dann weiß ich daß das Gerät noch aktiv ist. Der Batteriewert wird oft nur aktualisiert, wenn er sich ändert.
Zitat von: dt2510 am 24 September 2019, 12:14:20
Sollte das nicht alive sein, wenn mindestens ein Wert verändert wurde ?
Ansichtsache, wie so vieles im Leben.
Wenn der Patient nur "halbtot" da liegt ist er nicht mehr gesund und genau das will man (ich) eigentlich wissen :)