Timer / Funktion alle x Stunden skirpt ausführen

Servus Zusammen,

ich stehe mal wieder auf dem Schlauch und komme nicht weiter. Ich möchte wenn eine bestimmte Variable true ist ein bestimmtes Skript alle 3h durchführen. Wichtig hierbei ist das auch dass das erste Durchführen des Skriptes exakt 3h nach aktiv werden der Variablen geschieht.

derzeit realisiere ich das über ein zeitgesteuertes Ereignis ID58420 (Datumsmuster=keine; Zeitmuster=Stündlich; Alle=3Stunden; ohne Begrenzung)

Dieses Ereignis setzte ich dann via ausgelösten Skript aktiv/inaktiv:


$Stunde = strftime("%H");
$Minute = strftime("%M");

IPS_SetEventActive(58420, true); 
IPS_SetEventCyclicTimeFrom(, $Stunde, $Minute, 0); 

Mein Problem ist nun wenn das Ereignis z.B. um 22:00 aktiv geschalten wird dann wird nach 3h nichts mehr aktiviert da Uhrzeit ja 1:00 Uhr am nächsten Tag und Ereignis ja nur ab 22:00 Uhr aktiv.

Das kann doch nicht so schwer sein via IPS eine entsprechende Zeitverzögerung einzubauen…:confused:

Beste Grüße,
Thomas

Das klappt so via zyklischem Ereignis leider nicht bzw. nur recht umständlich. Probier es stattdessen mal mit IPS_SetScriptTimer.

Du schaltest dann per ausgelöstem Ereignis ein Skript. Das Skript widerum setzt den Skripttimer auf 3 Stunden, falls die Variable auf true gesetzt wurde, deaktiviert den Timer, falls sie auf false gesetzt wurde und führt das gewünschte Skript aus, falls das Skript via Timer gestartet wurde.

Danke Dr. Niels! das war genau der notwendige Wink mit dem Zaunpfahl den ich gebraucht habe.
Ich teste das jetzt mal so!