Zyklische Ereignisse zurücksetzen

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?

Danke,
Tom

Du kannst z.b. den Scripttimer verwenden:

Wie kann ich...? — IP-Symcon :: Automatisierungssoftware…_ein_Ger%C3%A4t_einschalten_und_nach_60_Sekunden_wieder_aussschalten

Michael
@paresy die Links innerhalb der Seite funktionieren nicht.

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?

Naja, beim auslösen wird er deaktiviert.
Und neu gestartet, indem das Script ausgeführt wird.
Michael

okay, danke, die Frage war aber ja, ob das NUR durch deaktivieren/aktivieren passieren kann. Aber ich verstehe das jetzt so.

Glaube der kleine Unterschied ist halt dass du ein Limit gesetzt hast.

Michael

Aber hier steht das:

Oder du nimmst einfach den Ablaufplan mit einer Aktion Warten und dann den schaltbefehl. Bei erneuter Ausführung laufenden Plan abbrechen.

Oder das Treppenlicht Modul?

Gruß
Stephan

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…

Auch die einschaltverzögerung würde ICH mit dem Ablaufplan machen.

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)

1 „Gefällt mir“

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?

Wenn ich einen noch laufenden Timer lösche dann wird der trotzdem noch ausgeführt. Das soll so sein?

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.

Event nicht löschen, sondern ggf. deaktivieren

Dankeschön jetzt funktioniert es. :slight_smile:

Ein Beitrag wurde in ein neues Thema verschoben: Frage zum Ablaufplan