TimeStamp als UserReading mit OldReadingsVal

Begonnen von Moerk, 01 Februar 2021, 11:05:53

Vorheriges Thema - Nächstes Thema

Moerk

Hallo,

ich verzweifle an einer vermutlich recht simplen Aufgabe.
Und zwar möchte ich wissen wie lange meine Fenster schon auf sind, um nach XX Minuten eine Warnung anzuzeigen.

Die Fenster(kontakte) sind nicht direkt an FHEM sondern über eine Homematic CCU3, welche die Statuswerte übermittelt. Da dies auch sporadisch geschieht, kann das Alter der letzten Änderung nicht einfach dem State-Timestamp entnommen werden.

Mein Gedanke ist nun also ein UserReading zu erstellen, das wenn sich der aktuelle vom vorherigen Fensterstatus unterscheidet als Wert die aktuelle Zeit erhält. So könnte ich dann zuverlässig sagen wie lange die letzte Änderung her ist.

Das Device heißt RESERVE01 und das Reading mit dem Status ist state.

Ich habe nun ein UserReading hinzugefügt:
attr RESERVE01 userReadings LastChange { if(ReadingsVal("RESERVE01","state",0) <> OldReadingsVal("RESERVE01","state",0)) {time} };

Und dann das Attribut oldreadings gesetzt:
attr RESERVE01 oldreadings state

Allerdings weiß ich nicht mal ob das OldReadingsVal überhaupt in PERL verfügbar ist? Und kann ich einen time-Wert als Value speichern?
Es gibt keine Meldung im LOG, keinen Hinweis im EventMonitor, aber eben auch kein Ergebnis. Ich sehe nicht mal das neue Reading LastChange.

Ich stehe auf dem Schlauch und freue mich wenn man mir da runter hilft  :-\
FHEM auf RaspberryPI mit Homematic IP CCU3,  Video Türsprechanlage ALP-600, BOSE SoundTouch, Shellys über MQTT, Selbstgautes über MQTT, TabletUI

MadMax-FHEM

Wenn sich der Wert immer wieder "sporadisch" ändert, dann ändert sich ja (verm.) auch das OldReading ;)

Wie wäre es mit event-on-change-reading, dann wird (sollte) das Reading nur aktualisiert werden, wenn sich auch der Wert geändert hat.
(tut es bei mir, allerdings Homematic mittels CUL_HM)

Dann einfach die Zeit seit der letzten Änderung mittels ReadingsAge("Devicename", "Readingname", 0) abfragen...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

guhu

schau Dir das Modul HOMEMODE an. Seit dem ich das im Einsatz habe, sind bei mir jede Menge DOIFS, notifys etc weggefallen. Du kannst auch Deine Fragestellung damit ganz einfach erledigen.
FHEM 5.9 auf Synology DS918+ (in Docker), HM-CFG-USB2 mit hmlan, HM-CC-RT-DN, HM-SEC-SC-2, nanoCUL,a-culfw,deCONZ,Brennenstuhl-Steckdosen,-FB
Module:ENIGMA2,SONOS,FRITZBOX,FB_CALLLIST,WDT_TIMER,VCONTROL300,WITHINGS

Moerk

Danke für eure Antworten!

event-on-change-reading war das was hier geholfen hat, das HOMEMODE ist mir zu mächtig - da traue ich mich grade nicht ran  ::)
FHEM auf RaspberryPI mit Homematic IP CCU3,  Video Türsprechanlage ALP-600, BOSE SoundTouch, Shellys über MQTT, Selbstgautes über MQTT, TabletUI