NEWS
Trigger mit Bedingung in Blockly
-
Hallo zusammen,
ich bin noch blutiger Anfänger in Smart Home, mit der CCU3 und insb. mit ioBroker und Skripten.
Nachdem ich mit Suchen nichts passendes gefunden habe, stelle ich meine aktuelle Frage hier direkt.
Ein Blockly Skript fängt ja in der Regel wohl mit einem Trigger "Falls Objekt" an:
Ich möchte aber nur eine Aktion auslösen, wenn der Wert des Objektes (hier: Helligkeit) unter einem bestimmten Wert X ist. Also:
Mein Skript soll aber nur dann starten, wenn der Wert des Objektes sich geändert hat UND der Wert < X ist. Sonst, so meine Logik, läuft das Skript im Prinzip bei jeder Änderung und würde erst bei der nächsten if-Klausel wieder stoppen. Eigentlich unnötig, wie ich finde.
Daher habe ich die Startbedingung wie folgt geändert:
Kann das so funktionieren, wie ich mir denke?
Oder laufen beide Ansätze an sich identisch ab?
-
An Falls Objekt (Trigger) kann nur eine (oder mehrere) Datenpunkt-ID(s) übergeben werden. Der erste Ansatz (2. Bild) funktioniert, der zweite Ansatz nicht.
Soll bei Unterschreitung des Grenzwertes bei jeder weiteren Änderung das Programm ausgeführt werden oder nur einmalig bei erstmaliger Unterschreitung ? Wenn nur einmalig, dann
falls value < 200 und oldValue >= 200
-
Ok das ist schade.
Aber wie komme ich denn an den oldValue?
Die Auswahl gibt es bei mir nicht. Muss ich da mit Variablen arbeiten?
-
Aber wie komme ich denn an den oldValue? `
oldValue ist so wie value eine vordefinierte <u>Variable</u>. Wenn Du den Javascript-Code Deines Blocklys ansiehst, wirst Du es feststellen.var value = obj.state.val; var oldValue = obj.oldState.val;
Anstelle der Variablen value und oldValue kann man auch die Trigger-Datenpunkteigenschaften Wert und vorheriger Wert (unter Trigger) verwenden.
-
Danke Dir paul53
So müsste es jetzt dann gehen. Ich habe den Block "value" aus den Variablen dann ersetzt durch "Wert" und hinten die Bedingung mit "vorheriger Wert" gesetzt.
Das macht für mich mehr Sinn, wenn man die Blöckchen aus den gleichen Blockbereichen verwendet
-
Hey.
Vielen Dank. Genau das hat mir auch geholfen.
Ich hab ewig rumprobiert und wollte halt auch nicht, das die Meldungen permanent kommen, sondern nur wenn der Wert einmal unterschritten wurde.