FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: AnBad am 03 November 2023, 19:47:05

Titel: userReadings bei bestimmten Event
Beitrag von: AnBad am 03 November 2023, 19:47:05
Hallo, ich habe einen Bewegungsmelder, welche alle halbe Stunde ein SingOfLive sendet, und damit auch ein "state=off".
Ich brauche jedoch ein Reading (userReadings), was mir den letzten Zeitpunkt des Wechsel von 'off' zu 'on' festhält. Und auch ein zweites Reading, welches mir den Zeitupunkt 'on' zu 'off' festhält.
Also in der Art:

LastOn { (if Zustandswechsel und Event = "on") {return localtime}},
LastOff { (if Zustandswechsel und Event = "on") {return localtime}}

Über eine Aufruf einer Sub würde ich das hinbekommen. Aber es geht doch vlt. auch einfacher über userReadings? Im FHEMWiki gibt es eine Erläuterung, aber ich bekomme es einfach nicht hin..

Vielen Dank und schönen Abend.
Titel: Aw: userReadings bei bestimmten Event
Beitrag von: Jamo am 03 November 2023, 20:05:49
Das geht etwa so, da Du aber nur Pseudocode geschrieben hast, hier auch nur Pseudocode in RAW formstLastOff:Zustand:.off {ReadingsTimestamp($name,'Zustand','1970-01-01 01:01:01')}, \
LastOn:Zustand:.on   {ReadingsTimestamp($name,'Zustand','1970-01-01 01:01:01')}
Titel: Aw: userReadings bei bestimmten Event
Beitrag von: KölnSolar am 03 November 2023, 20:25:14
korrekt.

Anstatt dem timestamp(der wird ja eh im userreading gesetzt) vielleicht einen counter ?

{my $counter = ReadingsVal($name,'counterOn',0) + 1}
Titel: Aw: userReadings bei bestimmten Event
Beitrag von: betateilchen am 03 November 2023, 20:49:58
mich würde ja mal wieder die tatsächliche Aufgabenstellung interessieren, für die man sowas braucht...
Titel: Aw: userReadings bei bestimmten Event
Beitrag von: AnBad am 04 November 2023, 11:43:27
Zitat von: Jamo am 03 November 2023, 20:05:49Das geht etwa so, da Du aber nur Pseudocode geschrieben hast, hier auch nur Pseudocode in RAW formstLastOff:Zustand:.off {ReadingsTimestamp($name,'Zustand','1970-01-01 01:01:01')}, \
LastOn:Zustand:.on   {ReadingsTimestamp($name,'Zustand','1970-01-01 01:01:01')}

Hallo, so weit funktioniert es. Vielen Dank
Titel: Aw: userReadings bei bestimmten Event
Beitrag von: AnBad am 04 November 2023, 12:57:52
Zitat von: betateilchen am 03 November 2023, 20:49:58mich würde ja mal wieder die tatsächliche Aufgabenstellung interessieren, für die man sowas braucht...


Hallo,
eine andere Sub soll den tats. Zeitpunkt der letzten "On"-Schaltung auslesen. Da das SignOfLive alle 30 Minuten die Readings aktuallisiert, werden entsprechend die Timestamps auch überschrieben. Mit dem userReading hoffe ich die aktuelle On-Schaltung zu "speichern". Mit Event-On-Change usw. hat das nicht geklappt.

Ich bin mir noch nicht sicher, ob damit wirklich funktioniert.

lastOn:motion:.on {
my $timestamp = localtime;
return $timestamp;
}