Jede Minute wird manchmal dauernd aufgerufen

Begonnen von Det20, 09 Februar 2019, 11:42:35

Vorheriges Thema - Nächstes Thema

Det20

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?

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Det20

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.

Otto123

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...
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Det20

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.