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: `
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); }); -
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]
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