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
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