Auslöser: Tor wird geöffnet (Öffnung = TRUE)
Solange Tor geöffnet, gib alle 10 Sekunden einen Sound (Sonos) aus
Sobald Tor geschlossen, ist die Auslöseaktion/Ablaufplan abgeschlossen
So habe ich gestartet, aber dann läuft der Ablaufplan unendlich lange bis zum nächsten „Schließen“?
Und außerdem ist es keine richtige While Schleife…
Schleifen gibt es so direkt nicht im Ablaufplan. Ich würde das auch gar nicht per Ablaufplan machen sondern einfach per zyklischem Ereignis mit Bedingung. Erstelle einfach ein zyklisches Ereignis, dass alle 10 Sekunden den Sound ausgibt. Als erweiterte Bedingung gibst du dann an, dass das Tor geöffnet sein soll.
Belasten solche zyklischen Ereignisse dann nicht mit der Zeit das System zu stark, wenn ich irgendwann 50 davon für verschiedenste Aufgabn parallel laufen habe, wiel sie andaurend laufen?
Dann vielleicht lieber doch einen php script mit „echter“ While Schleife?
Das habe ich mich auch schon öfter gefragt. Aber vermutlich könnten hier sehr, sehr viele davon in einer Sekunde abgearbeitet werden. Aber hier mal eine Zahl zu bekommen, was problemlos möglich ist, wäre interessant.
Ich habe jetzt keine Belastungstests durchgeführt, aber da sollte einiges gehen. Die Bedingungen werden ja rein nativ ausgewertet ohne die Brücke zu PHP zu überschreiten. Im Zweifelsfall kannst du aber statt der erweiterten Bedingung noch Ereignisse an das Ereignis hängen, welche das Hauptereignis aktivieren oder deaktivieren.
Nutze keine Endlosschleife in einem Script.
Das blockiert dir einen ganzen PHP Thread.
Nutze lieber die von @Dr.Niels vorgeschlagene Lösung. Dafür sind zyklische Ereignisse gedacht, oder nutzt eine Script mit ScriptTimer.
Siehe Doku: IPS_SetScriptTimer