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 :D
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 ;-)
-
Danke Dir paul53 :D
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.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden