PHP Loop - Blinken

Hallo, ich würde gerne ein einfaches Blinken realisieren: Wenn eine Variable auf true steht soll eine andere Variable im Intervall von 0,75sec ein und aus geschaltet werden. Ich habe mal so angefangen:

Wie bekomme ich jetzt eine Schleife hin, dass nach dem letzten Befehl das wieder oben anfängt?

Viele Grüße, Martin

Wie lange soll das laufen bzw. was ist die Abbruchbedingung? Achtung: PHP Scripte Laufen unendlich in PHP.

Wenn es z.B. 5x sein soll, ginge eine for-Schleife. Bei einer While-Schleife wird ggf. die Abbruchbedingung schwierig.

Muss es 750ms sein? 1s zu viel? Sonst würde ich ein Ereignis erstellen, welches alle Sekunde ausgeführt ist und etwas wie:
RequestAction($ID, !GetValue($id)); ausführt. Dabei natürlich die ID gesetzt.

Das soll nur solange laufen, wie die auslösende Variable auf true steht. Dann soll das wieder gestoppt werden. 1s wäre auch ok…

Ich würde zweistufig fahren.
Ein Zeitereignis schaltet alle 1s den Wert der Variable um (hierfür gibt es imho. mittlerweile eine Aktion).
Zwei Auslösende Ereignisse (Bei bestimmten Wert, einmal true, einmal false) schalten dieses Ereignis auf inaktiv/aktiv (was hoffentlich mittlerweile auch als Aktion geht.

Hallo Martin,

Für diesen Zweck hatte ich mir mal ein Modul erstellt.

Über das Module Control installieren. Dann findest Du die Instanz als „Taktgeber“

Mit „Aktiv“ kannst Du das blinken starten/stoppen
Mit „Takte pro Minute“ kannst Du die Frequenz einstellen.

grafik

Du schreibst Blinken um was handelt es sich denn da? Zigbee Leuchtmittel haben meistens Effekte wie breathe die sowas realisieren mit nur einem Befehl.

Ralf

Ja, die Effekte könnte man nutzen. Es gilt aber zu beachten, wenn ich es mit requestAction mache, wird der Befehl einmal ausgeführt.

RequestAction(36184, "blink");

führt also dazu, dass das Leuchtmittel nur einmal blinkt und nicht bis ich stopp sage.

Gruß
Burkhard

Mit z2m_command kann man eine Zeit angeben.

Z2M_Command(39051, "set/effect", "blink");

Kannst Du mir kurz erklären, wie ich da eine Zeit einbinden kann, oder nen Link, wo das beschrieben steht? Ich finds nicht.
image

Gruß
Burkhard

Geht doch nicht. Ich benutze Transition wenn alles OK ODER breathe bei einem Fehler. Ich dachte beides geht.

Ah, danke. Hatte einen ähnlichen Anwendungsfall gesucht. Stimmt breathe blinkt mehrmals. Aber schöner wäre es tatsächlich, wenn man die Effekte dauerhaft starten könnte mit einem

Z2M_Command(39051, "set/effect", "'blink");

und mit einem

Z2M_Command(39051, "set/effect", "stop_effect");

beenden könnte.

Den ‚stop_effect‘ gibt es ja, aber der nutzt ja nix, wenn der Effekt nur für kurze Zeit aktiv ist.

Gruß
Burkhard

Hallo,
ich habe bei mir eine einfache Alarmanlage gebaut. Alle Fenster und Türen nach aussen haben Reed-Kontakte. In den Räumen habe ich in den Decken 12V Summer eingebaut, die beim öffnen Pipsen sollen. Die Summer geben aber von sich aus nur einen durchgängigen Pipton aus. Jetzt hätte ich das dauerhafte „true“ Signal gerne in einen Takt geschaltet. Da ich kein Zeitrelais manuell einbauen wollte, und auch kein Logikmodul von MDT kaufen wollte dachte ich, dass ich das irgendwie mit der Symcon hin bekomme…

Der CyclicClock-Taktgeber funktioniert! Vielen Dank!!!

Super. Scheinbar kann es doch noch jemand anderes gebrauchen.
Ich reiche es mal für den Modul Store ein.

Gruß