Moin, mit welchem Befehl kann ich ein zyklisches Ereignis zurücksetzen? Ich nutze das als Ausschalttimer mit IIPS_SetEventCyclic z.B. alle 60s und PS_SetEventLimit(id,1). Klappt ja auch, wenn ich das Ereignis aktiviere. Nun möchte ich aber - wenn der Timer schon läuft - ggf. der Timer wieder bei 0 starten.
Geht das ohne dekativieren/aktivieren?
Oder gibt es für Ein- Ausschaltverzöherungen etwas praktischeres?
Hm, da finde ich aber auch nicht, wie ich einen laufenden Scripttimer zurücksetze. Ich kann höchstens mit NextRun herausfinden, wann es wieder soweit ist.
Ist der Scripttimer intern nicht sowieso ein spezielles zyklisches Ereignis?
Danke für die Anregungen. Das Treppenhausmodul hat keine Einschaltverzögerung. Eigentlich ist IPS_SetEventCyclic($id, 2, 1, 0, 0, 1, 60) wunderbar, ABER:
das Ereignis löst dann nicht alle 60s aus, sondern jede Minute. Will sagen: Wenn ich diesen Timer um 16:02:34 aktiviere, dann wird es um 16:03:00 ausgelöst. Das ist für mich doof, irgendwas verstehe ich wohl noch falsch…
Je genau. Ist auch richtig so. Die zyklischen Ereignisse sind keine relativen sondern absolute Timer.
Ablaufplan wäre da jetzt auch meine Wahl.
Oder halt, wie oben von mir verlinkt, ein Script mit SetScriptTimer (der ist relativ).
Michael
Okay, danke für Eure Infos und Tipps! Ablaufpläne muss ich mir wohl mal genauer anschauen, bin da bis jetzt noch nicht rangegangen (gibt’s ja auch erst 5 Jahre oder so)
Ich verwende
Z.B 19:32:30 Uhr
IPS_SetEventCyclic($ID,0,0,0,0,1,60);
IPS_SetEventActive($ID,false);
IPS_SetEventActive($ID,true);
Ausgelöst 19:33:30 Uhr.
Das funktioniert also nicht?
Ich bearbeite alle Bewegungsmelder in einem Script. Ich lege für jeden Bewegungsmelder einen neuen Timer an. Dem gebe ich eine Ident(ID des auslösenden Bewegungsmelders) damit ich dann weiss welcher Bewegungsmelder ausgelöst hat. Den Timer will ich dann nachtriggern wenn der Bewegungsmelder noch aktiv ist. Da ich nur einen Scripttimer pro Script anlegen kann fällt IPS_SetScripttimer dann aus. Wie kann ich mehrere Timer anlegen die relativ in Ihrer Zeit sind?
Ich hab das jetzt mit IPS_SetEventCyclic (einmalig) und … DateFrom/to gelöst. Also Timer beim Triggern gezielt auf einen definierten Zeitpunkt setzen, dann kannst du den vor dir herschieben.