GEOFANCY - Geofences mit FHEM und Loxone ReadingsVal

Begonnen von logol01, 30 Oktober 2018, 16:21:08

Vorheriges Thema - Nächstes Thema

logol01

Hallo zusammen,
ich wurde von meintechblog.de inspieriert Geofences mit FHEM zu installieren.
https://www.meintechblog.de/2017/10/loxone-mit-anwesenheitserkenung-geofences-ueber-fhem-nutzen/
Hierzu benutze ich
define geofancy GEOFANCY geo

Bis vor der Zeitumstellung letzten Samstag/Sonntag war hat alles super funktioniert.
Nun nach der Zeitumstellung geht die Zeit aber um eine Stunde nach.
FHEM und Loxone haben beide Seiten jedoch die Sommer/Winterzeit richtig umgestellt.

Mit folgendem Code in der Datei 99_myUtils.pm werden dann die relevanten Daten an Loxone per UDP übergeben:
#AnwesenheitToLoxone
sub ResidentToLoxone ($)
{
my ($device) = @_;
my $state = ReadingsVal("$device","state","-1");
if ($state eq "absent") {
$state = "0";
}
if ($state eq "home") {
$state = "1";
}
my $arrival=time_str2num(ReadingsVal("$device","lastArrival","-1"));
my $departure=time_str2num(ReadingsVal("$device","lastDeparture","-1"));
my $wayhome=ReadingsVal("$device","wayhome","-1");

UDP_Msg("192.168.178.245" , "7200" , "$device: $state $arrival $departure $wayhome");
}


Nun meine Frage:
Kann es sein, dass man mit ReadingsVal der Human-Readable Visu-String - ohne Zeitzonenbereinigung - in epoch umgerechnet? Der Visu-String ist Lokalzeit, nicht epoch UTC. Somit rechnest das Skript mit FHEM-Lokalzeit, und vermutlich macht Loxone auch nochmal Lokalzeit-Umrechnung? - oder?
Ich hab keine Ahnung! :o

Was muss ich für einen Befehl anstatt "ReadingsVal" wählen um die "richtige Zeit" im Sommer und Winter an Loxone zu übergeben?

Ich freue mich sehr auf Euer Feedback.

VG

Logol01

Loredo

Wenn die mobile App eine Zeit mit überträgt, wird diese Zeit übernommen. Ggf. ist die Zeit auf dem Gerät falsch
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

logol01

Hallo,

die mobile App ist Geofency auf iPhone. Die Zeit auf dem Gerät stimmt.
Die Zeit wird auch richtig im FHEM Geo Modul angezeigt.

Die Frage von mir ist, wird mit dem Wert "ReadingsVal" die Zeit inkl. Zeitzonen Korrektur übertragen? Sprich eine Stunde weniger in Winterzeit und entsprechend Sommerzeit eine Stunde mehr?
Das Problem entsteht für mich - welcher Wert an Loxone mit dem Skript übertragen wird.

Loredo

ReadingsVal() gibt die Zeit als Textstring so wieder, wie er drin steht. Es handelt sich also um die lokale Zeit deines Rechners, auf dem FHEM läuft.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER