NEWS
Trigger wird mehrfach ausgelöst oder debug output bug?
-
Hi Leute,
ich bin neu im Skripte schreiben in iobroker/Blockly. Ich will damit einen Home-Office Modus für meine Homematic realisieren. Dies klappt auch wie gewünscht. Allerdings scheine ich entweder ein Verständnis Problem bei den Abfragen/Triggern bei Blocky zu haben oder der debug output hat bei mir einen Bug.
Nach ändern des Datenpunkts Home-Office wird eine Abfrage getriggert, ob der Wert false oder true ist, danach wird eine HM Action gestartet, die man leider wieder manuell zurücksetzen muss.
Im Log unten seht ihr aber nun, bei einmaligem ändern des Datenpunkts zig Meldungen des debug outputs.. Wird hier das Skript wirklich so oft ausgeführt (wenn ja warum?) oder macht der debug output Mist?Viele Grüße
Chris -
Das Skript macht genau das was du ihm gesagt hast.
Und das ist mist:
Mal in "pseudocode" ausgedrückt:
Erzeuge Aktion für :Immer wenn Home-Office geändert wird mit:
- debug output
- Erzeuge Aktion für: Immer wenn Home-Office mit unwahr aktualisiert wird mit:
-- Debug output
-- Pause 5 s
-- Debug output
Ich vermute das was du da brauchst ist ein falls Baustein aus dem Logik Bereich, nicht einen Trigger Baustein.
A.
Nachtrag:
die beiden Bausteine
machen 2 unterschiedliche Dinge.
Der erste ist ein Trigger, der das Objekt überwacht und bei jeder Änderung des Objektes aktiv wird.
Der Zweite erlaubt das Abprüfen einer Bedingung nur wenn er ausgeführt wird.
Was du willst sieht normalerweise so oder ähnlich aus: -
@asgothian DANKE! Da lag wohl genau mein Problem! Habe den Unterschied zwischen Trigger und Falls Abfrage nicht verstanden!
Würde dann nicht eigentlich der Trigger -> Object ID -> true reichen? Also wird der nur ausgelöst, wenn sich der Wert von false auf true ändern würde? Oder würde der Trigger immer laufen, wenn true im Datenpunkt steht?
-
@chris0706 sagte in Trigger wird mehrfach ausgelöst oder debug output bug?:
Oder würde der Trigger immer laufen, wenn true im Datenpunkt steht?
Der trigger würde Immer dann laufen wenn der Datenpunkt mit "wahr" aktualisiert wird. Wenn Du den Wechsel "false" auf "wahr" fangen willst solltest du auf "ist grösser als vorher" triggern.
in JS gilt:
true
>false
-
@asgothian Also würden wohl beide Versionen funktionieren oder? Dein erster Vorschlag und jetzt der zweite.. ist da einer eleganter als der andere?
-
@chris0706 das hängt davon ab.
Willst du nur eine Aktion beim Wechsel falsch auf wahr, dann ist die 2. Variante die bessere. Willst du Aktionen beim Wechsel von falsch auf wahr und eine andere beim Wechsel von wahr auf falsch ist die vorher gepostete Version zu bevorzugen.
A.