ScriptTimer wird nicht erstellt und schaltet nicht

Hallo,

ich bekomme den ScriptTimer einfach nicht zum laufen, kann mir jemand von euch helfen?

Ich habe die Variable 53144 die ich über das Webinterface einschalte, danach soll ein Timer loslaufen und die Variable nach 15 Minuten wieder ausschalten. Also nicht alle 15 Minuten sondern genau 15 Minuten nach dem einschalten. ich habe auch hier schon in der Doku geschaut aber hilft mir nicht, da ich die Variable ja schon an geschalten habe
(oder verstehe ich das komplett falsch) und sie ja eigentlich nur wieder aus gemacht werden müsste.

Bin für jede Hilfe dankbar.

Viele Grüße
MaBu

Für diese Anwendung könnte ich dir das Modul Eieruhr empfehlen. Das macht genau das.

Danke für deine Antwort, um das aber zu lösen muss ich dann 2 Skripte einbauen, das eine das die Eieruhr einschaltet und das andere das dann die Variable ausschaltet wenn die Eieruhr abgelaufen ist, richtig?

Ja, wobei man beides in einen Ablaufplan integrieren könnte mit zwei Auslöser. Der eine Auslöser geht auf die Variable die du im WF schaltest, der zweite wenn die Eieruhr abgelaufen ist. In den Aktionen kannst du je nach Auslöser eine bestimmte Aktion ausführen.

Okay, das werde ich versuchen. Obwohl wenn ich es richtig verstehe wäre der ScriptTimer der „direkte“ weg…oder?

Ja, wahrscheinlich. Hab ich persönlich noch nicht verwendet.
Was du machen musst, ist das Skript beim Einschalten deiner Variable starten. Beim „Ein-Zweig“ brauchst du natürlich nur den Skript-Timer setzen. Die Variable selbst bleibt unangetastet.

das Rumpfscript zur Behandlung eines Timers geht so

<?php

declare(strict_types=1);

if ($_IPS['SENDER'] == 'TimerEvent') {
    // Timer ausschalten
    IPS_SetScriptTimer($_IPS['SELF'], 0);

    // und was man sonst noch machen will nach Ablauf des Timers
} else {
    // Timer auf 15m setzen
    IPS_SetScriptTimer($_IPS['SELF'], 15 * 60);

    // und was man sonst noch machen will bei Start
}

wenn SENDER den Wert TimerEvent wurde das Script durch den ablaufenden Timer aufgerufen.
Man muss dann den laufenden Timer auf 0 setzen, denn der läuft sonst immer wieder an