Hallo,
Idee mit einem Skript geht auf mindestens 2 Arten.
Synchronisierung:Hab es nicht probiert, aber mir fiel gleich die Gefahr einer Endlosschleife auf const idLampe1 = "IDDERLAMPE1"; const idLampe2 = "IDDERLAMPE2"; const idLampe3 = "IDDERLAMPE3"; const Lampen_arr = [idLampe1, idLampe2, idLampe3]; on({id: Lampen_arr, change: "ne"}, function (obj) { // Prüfung, ob neuer Wert ungleich alter Wert ist, dann neuen Wert schreiben if (obj.state.val != (getState(idLampe1).val) setState(idLampe1, obj.state.val); if (obj.state.val != (getState(idLampe2).val) setState(idLampe2, obj.state.val); if (obj.state.val != (getState(idLampe3).val) setState(idLampe3, obj.state.val); }); Neuer Datenpunkt:
Erstellt weiteren Datenpunkt, der dann zB ausschließlich in VIS verwendet wird und dessen Wert in die IKEA-Datenpunkte geschrieben wird. Lampen lassen sich dann über eigene ID noch einzeln steuern. const idLampe1 = "IDDERLAMPE1"; const idLampe2 = "IDDERLAMPE2"; const idLampe3 = "IDDERLAMPE3"; const idLampen = "javascript.0.IKEA-kombiniert"; createState(idLampen, 0, { name: "IKEA Lampen Sollwert", type: "number", role: "level", desc: "Wert wird in JS in Lampen ID geschrieben" }); on({id: idLampen, change: "ne"}, function (obj) { // Prüfung, ob neuer Wert ungleich alter Wert ist, dann neuen Wert schreiben if (obj.state.val != (getState(idLampe1).val) setState(idLampe1, obj.state.val); if (obj.state.val != (getState(idLampe2).val) setState(idLampe2, obj.state.val); if (obj.state.val != (getState(idLampe3).val) setState(idLampe3, obj.state.val); });
Gruß
Pix