FHEM Forum

FHEM => Automatisierung => Thema gestartet von: DetlefR am 30 Oktober 2022, 13:17:12

Titel: Zeitumstellung
Beitrag von: DetlefR am 30 Oktober 2022, 13:17:12
Ich habe einen "Präsenzkonzentrator" in dem allen Präsenzmeldungen zusammenlaufen. Es gibt 6 Bluetooth und zwei Ping Presence Device je Bewohner. Funktioniert. Wenn jemand Zuhause ist, meldet immer mindestes eins "present". Nur heute Nacht zwischen 2:00 und 3:00 (zweite Runde) gab es Probleme. In schöner Regelmäßigkeit kamen Meldungen, dass jemand abwesend ist, nur um gleich wieder anwesend zu sein.
Ich habe ja ReadingsAge im Verdacht. Nur keine Ahnung woran es genau liegt.

mqtt_d_presence:_.*:.* {
#Setzt absent nach einer viertel Stunde Abwesenheit
my $roommate=$EVTPART0 =~ s/_//rg;
$roommate =~ s/://g;
if ($EVTPART1 =~ /^maybe/i){
# Nach Neustart von FHEM wird zuerst ein "maybe absent" gesendet
# Das würde dazu führen, das eine Abwesenheit aufgehoben wird.
if (ReadingsVal($NAME,$roommate,"absent") =~ /present/){
readingsSingleUpdate($defs{$NAME},$roommate,"present",1);
}
} elsif ($EVTPART1 =~ /^present/i){
readingsSingleUpdate($defs{$NAME},$roommate,"present",1);
}else{
if (ReadingsAge($NAME,$roommate,2000)>900){
readingsSingleUpdate($defs{$NAME},$roommate,"absent",1);
}
}
return undef;
}

Titel: Antw:Zeitumstellung
Beitrag von: frober am 31 Oktober 2022, 07:40:25
ReadingsAge liefert nur positive Ganzzahlen (int()).

Anhand vom "Datum" der Zeitumstellung kannst du das auch selbst abfangen (...letzten Sonntag im Oktober statt. Um 3:00 Uhr wird die Uhr um eine Stunde zurückgestellt).

...oder wenn > 3600 keine Meldung....
if (ReadingsAge($NAME,$roommate,2000)>900 && ReadingsAge($NAME,$roommate,2000)<3600)
Titel: Antw:Zeitumstellung
Beitrag von: DetlefR am 31 Oktober 2022, 13:50:48
Hallo,

Zitatoder wenn > 3600 keine Meldung
das ist ein guter Hinweis. Ich überlege mir mal die Konsequenzen und werde es dann einbauen.

Allerdings sollte doch nach dem ersten neuen setzen des Readings alles wieder in Ordnung sein. War es aber leider nicht. Ich habe , pro Roommate, 11 Wechsel von absent to present in dieser Stunde.
So als ob beim schreiben und lesen eine andere Zeitzone benutzt wird.
Titel: Antw:Zeitumstellung
Beitrag von: frober am 31 Oktober 2022, 14:37:26
Keine Ahnung, wie hier die Events gesendet werden.
Du hat ein "Defizit" von 45 Min bis wieder alles normal läuft.

Evtl. hilft ein event-on-change-reading...
Titel: Antw:Zeitumstellung
Beitrag von: DetlefR am 31 Oktober 2022, 16:13:45
Für den Rest des Jahres funktioniert es ja. Nur eben in der "doppelten" Stunde zur Zeitumstellung.
Its ja nur einmal im Jahr ::). Vielleicht finde ich bis nächstes Jahr noch was.

Danke