NEWS
Schalter direkt und indirekt schalten
-
Hallo,
mein Schalter soll mir zeigen, ob meine Harmony eine Activity ausführt oder nicht und wenn ich ihn schalte soll er eine Standard activity starten, bzw das System ausschalten.
Beides getrennt bekomme ich hin, aber wenn ich es gleichzeitig laufen habe, dann geht zum Beispiel der Fernseher immer wieder an, wenn ich zum Beispiel die Harmony Fernbedinung nutze und nicht ioBroker.
Dies ist mein erstes Script mit Blockly.

-
Habe es dementsprechend geändert, trotzdem laufen sie in eine Endlosschleife, wenn ich am Schalter ausschalte.

on({id: "harmony.0.Wohnzimmer.activities.currentStatus"/*activity:currentStatus*/, change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (value == 0) { setState("javascript.0.Fernseher.SWITCH"/*SWITCH*/, false); } else { setState("javascript.0.Fernseher.SWITCH"/*SWITCH*/, true); } }); on({id: "javascript.0.Fernseher.SWITCH"/*SWITCH*/, change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (value == true) { setState("harmony.0.Wohnzimmer.activities.Fernsehen"/*activity:Fernsehen*/, 1); } else { setState("harmony.0.Wohnzimmer.activities.currentStatus"/*activity:currentStatus*/, 0); } }); -
Ich denke die Lösung liegt im "anerkannt" Flag. Wenn du beim SWITCH anerkannt ist "unwahr" einstellst wird es nur ausgelöst, wenn du den Wert via Script/VIS setzt; bei "wahr" entsprechend nur wenn der Wert von Hardware gesetzt wurde.
Wenn ein Wert von einem Adapter (also Hardware) geändert wurde, so sollte anerkannt auf wahr stehen und wenn es von einem Skript geändert wurde auf unwahr.
Wenn du in einem Skript einen Wert setzt kannst du einfluss darauf nehmen, ob anerkannt auf wahr oder unwahr gesetzt wird indem du setze oder steuere verwendet ;)
