NEWS
[gelöst] Mehrere Geräte kombinieren
-
Hallo,
ich bin komplett neu mit ioBroker und hab eine Frage, wo ich bisher leider nichts gefunden habe.
Ich habe mehrere Lampen, die sich über verschiedene Kanäle einzeln schalten lassen:
Lampe 1 hm-rpc.1.LEQ1286307.13.STATE
Lampe 2 hm-rpc.1.LEQ1286307.14.STATE
Lampe 3 hm-rpc.1.LEQ1286307.15.STATE
Diese möchte ich in Vis über ein Widget zusammenfasst haben. Also wenn eine der Lampen an ist (Kanal State = true ?) soll das Widget angezeigt werden als ob die Lampe an ist, und wenn ich das Widget "betätige" sollen alle 3 Lampen angehen.
Wie realisiere ich das am besten?
Geht das direkt in Vis oder benötige ich ein Javascript mit einem virtuellen Kanal?
Gibt es dafür irgendwo ein beispiel?
Danke & Gruß
Robert
-
Ich würde mit dem Widget eine Systemvariable in der CCU setzen. Dann dort noch ein kleines Programm:
Wenn SV = true
Schalte alle drei Geräte ein.
-
Ich würde keine CCU-Logik mehr anlegen, wenn wir hier schon bei ioBroker sind :lol:
Der Scenes Adapter kann das, was du brauchst.
Gruß
Pix
-
Ich würde mit dem Widget eine Systemvariable in der CCU setzen. Dann dort noch ein kleines Programm: `
Oder ein Javascript-Programm in ioBroker, das die zu setzende Variable erzeugt:createState("3-Lampen-an", false, { read: true, write: true, desc: "3 Lampen mit VIS einschalten", type: "boolean", def: false }); on({id: "javascript.0.3-Lampen-an", change: 'ne', val: true}, function() { setState("javascript.0.3-Lampen-an", false); setState("hm-rpc.1.LEQ1286307.13.STATE", true); setState("hm-rpc.1.LEQ1286307.14.STATE", true); setState("hm-rpc.1.LEQ1286307.15.STATE", true); });
-
Viele Wege führen zu drei eingeschalteten Lampen.
-
Hier noch ein Javascript, dass alle gewünschten Aspekte erfüllen dürfte.
`//In "javascript.0.wohnung.status.lampen" wird der Status der Lampen abgelegt. createState('javascript.0.wohnung.status.lampen', false); //Hier müssen alleLampen, die überwacht werden sollen eingetragen werden lampen = [ "hm-rpc.1.IEQxxx.4.STATE"/*Flur Licht1.STATE*/, "hm-rpc.1.IEQxxx.4.STATE"/*Flur Licht3.STATE*/, "hm-rpc.1.IEQxxx.3.STATE"/*Flur Licht2.STATE*/ ]; //Bei Start des Script, Lampenstatus aktualisieren updateLampenStatus(); //Lampenstatus aller Lampen überwachen for (var i=0;i<lampen.length;i++) {/subscribe({id:/lampen[i]},/function/(obj)/updatelampenstatus();/});/}/prüfe/lampenstatus/und/setze/entsprechend/"wohnung.status.lampen"/updatelampenstatus()/var/zustand="0;" for/(var/i="0;i<lampen.length;i++)" if(getstate(lampen[i]).val="">zustand) zustand=getState(lampen[i]).val; } setState('wohnung.status.lampen',zustand); } //Funktion, die "javascript.0.wohnung.status.lampe" überwacht und bei Änderung alle Lampen entsprechend per alleLampenSet schaltet subscribe({id: 'javascript.0.wohnung.status.lampen', change:'any', fromNe:'system.adapter.javascript.0'}, function (obj) { var level=getState('javascript.0.wohnung.status.lampen').val; alleLampenSet(level); }); //Funktion, die alle im Array "Lampen[]" auf einen Wert setzt function alleLampenSet(level) { for (var i=0;i<lampen.length;i++) {/setstate(lampen[i],level);/}/<e=""></lampen.length;i++)></lampen.length;i++)>`[/i][/i][/i][/i]