das Thema wurde hier in verschiedener Form im Forum schon abgehandelt, aber eher mit komplexen Lösungen. Ich such eine simple Lösung, um eine Variable z. B. „Licht“ manuell einzuschalten und nach z. B. 10 Minuten automatisch wieder auszuschalten. So richtig komme ich nicht weiter. Hat jemand einen einfachen PHP-Code dazu?
An Befehl brauchst du ja nicht, nur den Timer setzen auf 600 Sekunden. Und bei Aus Befehl mit SetValue die Variable setzen.
Dann ein Ereignis bei Variable gleich bestimmter Wert (An) auf das Script.
Michael
den Link habe ich gesehen, kämpfe aber etwas mit der Syntax. „An“ brauche ich, wie du schon sagst, nicht. Im Beispiel der Doku stehen die 60 Sekunden beim „An“-Befehl. Wo müssen die 600 Sekunden für meine 10 Minuten dann hin?
if($_IPS['SENDER'] == "TimerEvent") // prüft ob das Script vom TimerEvent gestartet wird. Wenn Du das Script von Hand oder vom WF startetst wird nicht ausgeschaltet.
{
//Aus Befehl
//Timer ausschalten
IPS_SetScriptTimer($_IPS['SELF'], 0); // hier wird der Timer ausgeschaltet. Wenn Dein Licht aus ist brauchst Du keinen Timer mehr.
} else // wenn das Script von Hand, vom WF oder einem anderen Script gestartet wird, wird (ohne anschalten), nur der Timer gesetzt der das Licht wieder ausschaltet.
{
//Timer anschalten
IPS_SetScriptTimer($_IPS['SELF'], 60); // hier wird der Timer eingeschaltet. Für 10 Minuten müsstest Du die 60 in 600 ändern.
}
sorry wenn ich am Feiertag nerve, aber ich stehe komplett auf dem Schlauch. Ich will die Bool-Variable 29802 schalten. Das Skript wird durch Änderung einer anderen Variablen ausgelöst. Die Variable 29802 soll von „aus“ für 10 Sekunden auf „an“ geschaltet werden und dann wieder „automatisch“ auf „aus“. Mein Skript sieht so aus:
Sender ist so korrekt, das ist der Ausschalt Teil.
Sollte so gehen.
Hast du das Ereignis angelegt welches durch xyz dieses Script startet ?
Wo genau ist das Problem ?
Sonst mach Screenshots von dem Ereignis, dem TeilBaum etc…
Ohne weitere Infos was dein Problem ist, raten wir jetzt.
Michael
Dein Scritpt ist genau richtig. Schaltet halt nach 10 Sekunden aus.
Das Script musst Du jetzt nur noch als ActionScript bei der Variable 29802 hinterlegen.
Die Variable „starter“ startet „Testskript“ bei Varaiblenänderung (habe ich auch mit Variablenaktualisierung probiert). „Testskript“ ist das vorhin gepostete Skript. Die „Testvariable“ (29802) soll dann 10 Sekunden auf TRUE gehen und danach wieder auf FALSE. Die Variable reagiert nicht, auch wenn sie vorher manuell auf FALSE gesetzt wird.
Sicher ein grundsätzlicher (Denk-) Fehler meinserseits.
Meine Erwartung: bei Änderung der Variablen „starter“ wird die „Testvariable“ für 5 Sekunden ein- und dann wieder ausgeschaltet. das passiert bei mir aber nicht. Entweder mache ich noch einen grundsätzlichen Fehler oder es liegt an einem Detail…
Und Du hast in Deinem Script am Anfang noch <? und am Ende ?>
…peinlich, das war’s. Habe ich glatt übersehen, beim Copy & Paste einfach überschreiben. Manchmal sieht man vor lauter Bäumen den Wald nicht… Ich hab’s fast geahnt, dass es so ein Fehler ist, aber wenn man sich verrannt hat, übersieht man oft die Basics. :o
Wie änderst Du denn die Starter?
Testweise klappt es, einfach manuell „true“ oder „false“ anzuklicken.
Vielen Dank für die Hilfe! Jetzt habe ich wieder etwas gelernt, den Code kann man immer gut gebrauchen, wenn etwas automatisch nach einer definierten Schaltzeit wieder in den Ursprungszustand zurückgehen soll.