Zeitumstellung

Begonnen von DetlefR, 30 Oktober 2022, 13:17:12

Vorheriges Thema - Nächstes Thema

DetlefR

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;
}


frober

#1
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)
Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

DetlefR

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.

frober

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...
Raspi 3b mit Raspbian Buster und relativ aktuellem Fhem,  FS20, LGW, PCA301, Zigbee, MQTT, MySensors mit RS485(CAN-Receiver) und RFM69, etc.,
einiges umgesetzt, vieles in Planung, smile

********************************************
...man wächst mit der Herausforderung...

DetlefR

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