FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Det20 am 09 Februar 2019, 11:42:35

Titel: Jede Minute wird manchmal dauernd aufgerufen
Beitrag von: Det20 am 09 Februar 2019, 11:42:35
Hallo,

ich habe ein komisches Phänomen. Ich rufe jede Minute eine Funktion auf. Manchmal wird die dahinterliegende Funktion aber einfach 10-20 mal direkt hintereinander, also nicht maximal 1 x pro Minute aufgerufen. Einzig gemeinsamer Nenner ist, dass das Problem unmittelbar nach FHEM (neu-) Start auftritt.


define Every1Minute at +*00:01:00 { Every1Minute() }
attr Every1Minute alignTime 00:00


Ich habe das Problem soweit im Griff, dass ich die Funktion "Every1Minute" so schütze.


  $data{LastEvery1Min} = 0 unless(defined($data{LastEvery1Min}));
  return if(time() < $data{LastEvery1Min}+1*50);
  $data{LastEvery1Min} = time(); 


Das klappt zwar, aber wieso wird die Funktion manchmal mehrmals in einem kurzem Zeitraum aufgerufen?
Titel: Antw:Jede Minute wird manchmal dauernd aufgerufen
Beitrag von: Otto123 am 09 Februar 2019, 11:57:15
Hi,
Zitatdass das Problem unmittelbar nach FHEM (neu-) Start auftritt.
Nach FHEM Neustart oder nach komplettem Systemneustart?
Was ist das für ein System?

Gruß Otto
Titel: Antw:Jede Minute wird manchmal dauernd aufgerufen
Beitrag von: Det20 am 09 Februar 2019, 11:57:45
Zitat von: Otto123 am 09 Februar 2019, 11:57:15
Hi,Nach FHEM Neustart oder nach komplettem Systemneustart?
Was ist das für ein System?

Beides.
Titel: Antw:Jede Minute wird manchmal dauernd aufgerufen
Beitrag von: Otto123 am 09 Februar 2019, 12:05:02
Mein Gedanke ging in die Richtung: Beim Raspberry z.B. bleibt die Uhr während der Startphase "stehen" und wird erst später über NTP korrigiert. Dabei ändert sich die Systemzeit innerhalb kurzer Zeit. Keine Ahnung wie sich ein minuten Takt Gerät dabei verhält.
War nur ne Idee...
Titel: Antw:Jede Minute wird manchmal dauernd aufgerufen
Beitrag von: Det20 am 09 Februar 2019, 13:11:04
Hmmm, guter Ansatz. Unter Windows gibt es GetTickCount, um die MSek seit Systemstart zu ermitteln. Gibt es sowas auch im FHEM? Müsste ja mehr 59 Sekunden sein, bevor die erste Minute aufgerufen wird.