20 min. nach Event Script ausführen

Hallo zusammen,

ich bräuchte mal dringend eine Denkanstoss. Und zwar möchte ich 20 min. nach dem ein Event durch eine geänderte Variable ausgeführt wurde einen anderen Script starten.

Ich hatte gedacht mit Ips_GetEvent den Unix Timestamp zu verarbeiten aber hier stehe ich auf dem Schlauch und komme nicht weiter.

Vielleicht hat von euch einer Idee?

Danke und Gruß

Sorry für die Schreibfehler aber meine Finger sind für das iPhone einfach zu dick. :slight_smile:

Vorschlag:

  1. ein Event überwacht die Änderungen der Variable
  2. durch das Event wird ein Script gesteuert welches beim 1. Auslösen einen Timer auf 20 min und setzt (dieser Timer löst das darüberliegende Script aus)
  3. wenn dieser Timer das Script erneut auslöst wird durch dieses Script ein Befehl (neues Script starten) abgesetzt

hätte ich jetzt auch so realisiert.

einfach über IPS_SENDER = „TimerEvent“ bzw. IPS_SENDER = „Variable“ im Script unterscheiden om man bei t0 oder t+20 ist

rööööööchtöööch :wink:

Hallo zusammen,

danke für die schnelle(n) Antworten. Vom Prinzip her klar aber ich kann mich mit dem TimerEvent nicht anfreunden.
Ich denke mal wieder das es an mir liegt aber ich habe auch noch keine eindeutige Erklärung gefunden.

Ich habe ein Ereignis (21335), das bei einer Variablenänderung ein Script (Lampe via ezcontrol einschalten) ausführt (35507).
Dann erstelle ich ein zweites Script mit folgendem Inhalt, um das Licht nach 20 min. nach Event 21335 wieder abzuschalten:

if ($IPS_SENDER == 21335)
{
Ezcontrol Befehl Licht ausschalten;
IPS_SetScriptTimer($IPS_SELF,20*60);

Echo „Timer an“;

}else{

IPS_SetScriptTimer($IPS_SELF,0);

Echo „Timer aus“;

}

Wo ist denn hier nur mein Denkfehler. Ich weiß immer nicht was ich in den TimerEvent eintragen soll und aktuell ist der Timer nach Ausführung immer deaktiviert, egal ob es ein Event aufgrund Variablenänderung gab.

Gruß

IPS_SENDER funktioniert anders:
Systemvariablen: IP-Symcon :: Automatisierungssoftware


if ($IPS_SENDER == "Variable" && $IPS_VARIABLE == 21335)
{
Ezcontrol Befehl Licht ausschalten;
IPS_SetScriptTimer($IPS_SELF,20*60);

Echo "Timer an";

}else{

IPS_SetScriptTimer($IPS_SELF,0);

Echo "Timer aus";

}

Es geht leider nicht, $IPS_SENDER reagiert überhaupt nicht auf das ausgeführte Event 21335. Es wird somit auch kein Timer gesetzt.

Hallo,

lies Dir das nochmal durch

Zitat Doku
$IPS_VARIABLE - ID der auslösenden Variable

$IPS_EVENT - ID des auslösenden Ereignisses
und passe die erste Zeile dementsprechend an.

Gruß