Timer

Hallo,

suche ne einfache Möglichkeit zeitversetzt auf ein Ereignis zu reagieren.
Ich will eine definierte Zeit (hier2h) nach einem Ereigniss (aus boolean-Variable) ein Script ausführen.
Geht das doch irgendwie über das Ereignis-Objekt (WF) oder muss ich das selbst per php erzeugen. Hab mich an letzterem versucht, hab heute früh aber nen Knoten im Hirn, die Versuche bisher waren mir viel zu kompliziert (und funktionierten nicht). Hat jemand ne kleine Starthilfe?

Vielen Dank
hardlog

hier gäbe es was Innovatives & Fertiges

Danke für den Tip.

Hab es dann doch noch anderes hinbekommen:

(1) Scipt anlegen:

<?

// Timer-Script: Ergänzt WF-Events um die Möglichkeit ein Einmaliges ausgelöstest
// Ereigniss nach xx Minuten wieder zu deaktiveren.

$Intervall=2; // Intervallzeit in Minuten

$EventStatusID=57073;                    // manuell angelegte BOOLEAN-Variable
$EventStatus=GetValue($EventStatusID);   
$ID_Speicher=48888;                      // manuell angelegte INTEGER-Variable
$EreignisID=Getvalue($ID_Speicher);

if ($EventStatus==TRUE) //wenn $Eventstatus an ist und Zeit abgelaufen, dann wieder alles rückgängig machen
  {
  IPS_DeleteEvent($EreignisID);        // Event löschen
  setvalue($EventStatusID,FALSE);      // $EventStatus auf FALSE (Reset)
  // .... hier individuelle Ereingisse, bei mir Relais deaktivieren:
    //WUT_SwitchMode(57971 , false);       // hier: W&T-Relais abschalten, individuell anpassen
  }
  else
  {
   $EreignisID = IPS_CreateEvent(1);            // zyklisches Ereignis erzeugen
   setvalue($ID_Speicher,$EreignisID);                 // EreignissID in variable speichern
   IPS_SetEventCyclic($EreignisID, 0, 0, 0, 2, 2 ,$Intervall); //Alle x ($intervall) Minuten
   IPS_SetEventLimit($EreignisID, 1);           //nur einmal ausführen
   IPS_SetParent($EreignisID, $_IPS['SELF']);   //Eregnis zuordnen
   IPS_SetEventActive($EreignisID, TRUE);       //Ereignis aktivieren
   Setvalue($EventStatusID,TRUE);
};
?>

Unterhalb des Scripts eine BOOLEAN-Variable hinzufügen (Name egal, hier EVENTSTATUS) und eine INTERGER_Variable (Name egal, hier EreignisID).
(siehe Bild)

Das Script erzeugt nach erster Ausführung einen Timer der nach xx Minuten das obige Script erneut ausführt und sich darüber selbst resetet.

Das obige Script löse ich z.B. mit einem Eventtrigger aus.

Vielleicht kanns jemand gebrauchen.

PS: Was ich nicht finden konnte: Kann ich die ID eines Ereignisses im Script ermittel? In Anlehung an „IPS_GetObjectIDByName“?

Gruß
hardlog