Fehler beim Timer Event

Wenn ich die Werte im Timer Event anpassen will, scheint die berechnete nächste ausführung inkorrekt zu sein.
Ich benutze das neuste Update von IP Symcon

Hier ein video zu dem fehler:
2017-11-07-1906-25 - Streamable

ähnliches passiert auch, wenn ich die Stunden bei „Von“ im Event Fenster in der Konsole verändere.

Hallo David,

die Timer funktionieren so wie sie sollen. Worüber du wahrscheinlich stolperst ist, dass der Referenzpunkt für den Timer die „Von“-Zeit ist. Reduzierst du das Intervall um eine Sekunde so wird nicht, wie du wahrscheinlich erwartest, die nächste Ausführung um eine Sekunde nach vorne verschoben, sondern basierend auf der neuen Intervallgröße und Startzeit neu berechnet. Die neue Startzeit ist also <Von-Zeit> + x * <Zeitintervall> um es als mathematische Formel auszudrücken. Damit wird der Unterschied größer, je weiter der Tag voranschreitet.

Das gilt dann wahrscheinlich analog für die Veränderung der Von-Zeit.

Das heißt, wenn ich bei dem Timer Event bei jeder Ausführung die „Von“ Zeit auf die momentane Zeit stelle, also IPS_SetEventCyclicTimeFrom($eventID, date(‚H‘), date(‚i‘), date(‚s‘)); sollte das immer die momentane Zeit als <Von-Zeit> nehmen und x wäre dann auch gleich 1.
Wenn das intervall dann also auf 10 steht und die abfrage minütlich ist, sollte für die „nächste ausführung“ die momentane Zeit + 10 minuten stehen.
Was wenn es jetzt aber 23:55 ist. Springt es dann automatisch auf 00:05 für die nächste ausführung?

Das ist korrekt. Wenn du es per Skript machen willst, geht es mit dieser Hilfsfunktion übrigens einfacher: IPS_SetScriptTimer — IP-Symcon :: Automatisierungssoftware

Dort sind dann auch die relevanten Spitzfindigkeiten erklärt.

paresy

Danke für die Antworten, hat mir sehr geholfen :slight_smile:

DavidCks:
Was wenn es jetzt aber 23:55 ist. Springt es dann automatisch auf 00:05 für die nächste ausführung?

um meine eigene Frage hier zu beantworten. Nein.
Wenn bei „Von“ 23:55:00 angegeben ist und das Interval bei 10 Minuten liegt, wird erst wieder um 23:55:00 am nächsten Tag das nächste mal ausgeführt.