Ereignisverknüpfung zeitverzögern

Bestimmt findet ihr wieder schneller eine Lösung als ich. Ich habe zwei Z-Wave-Actoren, deren Status ich verknüpft habe:

Jetzt habe ich den halben Ostermontag versucht, eine Zeitverzögerung von 2s in diesen Ablauf hineinzubekommen. Ein Script, abgeleitet von „Wie kann ich …?“, habe ich probiert.

if($_IPS['SENDER'] == "TimerEvent")
{
    RequestAction (20810, true);  
    IPS_SetScriptTimer($_IPS['SELF'], 0); 
}
else 
{  
    if (GetValueBoolean (57995)) 
    {
        IPS_SetScriptTimer($_IPS['SELF'], 2);
    }
    else
    {
        RequestAction (20810, false);
    }
}

Das Timerereignis wurde nie ausgelöst bzw. kam nicht an.  Wo habe ich da einen Denkfehler?

Wenn es wirklich nur zwei Sekunden sind, würde ich stumpf ips_sleep(2000); machen.
Wenn es mehr werden soll, ist das mit dem Timer schon richtig. Den setzt du aber nur, wenn die Variable auf True schaltet. Hast du diese zusätzliche If Bedingung einfach mal weg gelassen?

Danke für die Antwort. Die Bedingung ist drin. GetValueBoolean(57995) → wahr Timner setzen, falsch Ausgang rücksetzen. Ich sollte aber im Timerevent dann die RequestAction nicht stur auf true setzen [ RequestAction (20810, GetValueBoolean(57995)) ] . Das ist klar. Aber so testet es sich besser.

Meine Frage; Warum wird das Event des Timers aber nie gefeuert, bzw. warum kommt das Event nicht an?

Ich probiere derweil mal das Sleep. Auch wenn ich kein Freund davon bin.

Hast du überhaupt ein Script im Objektbaum, oder den Code nur in das Ereignis geschrieben?
Ein Scripttimer kann nur ein Script starten und kein Ereignis.
Michael

1 „Gefällt mir“

Hi,
außerdem wartest Du nur 2 Millisekunden nicht Sekunden.

Ralf

Hallo
Die Funktion erwartet Sekunden als Parameter.

Hi,
sorry stimmt. Hatte es mit Sleep verwechselt.

Ralf

Ich würde in deinem Fall auch einen Ablaufplan anstatt eines PHP-Skriptes empfehlen, da kannst du dir die Verzögerung problemlos zusammenklicken und musst dich nicht mit PHP rumärgern.

Danke für die vielen Tipps. Tatsächlich: ich habe nur den PHP-Script bei der Action angehängt. O.K. das Prinzip muss man sich erarbeiten. Jeder „tickt“ da ein bisschen anders.

  1. Sleep tut … war zu erwarten.
  2. Extra script, o.k. aber auf welcher Ebene?
  3. Zusammenklicken. Hmm ja aber nee dann lerne ich ja nix.

mal sehen was ich hinbekomme.

Zu 2.
Egal. So wie du es am besten wiederfinden kannst.

Michael