NEWS
Cloud Adapter + Alexa + Mehrere Räume
-
Ich habe in IO Broker einigen Lampen mehrere Räume zugeordnet.
D.h.
Lampe A ist Teil von "Raum" Sofa und Wohnzimmer
Lampe B ist Teil von "Raum" Esstisch und Wohnzimmer
"Alexa, schalte das Licht am Sofa an" (Nur Sofa geht an)
"Alexa,schalte das Licht im Wohnzimmer an" (Sofa UND Esstisch) geht an.Die Virtuellen Geräte im Cloud Adapter werden zwar angelegt, allerdings ist eine Lampe jeweils nur in einem Raum angelegt.
Hat da jemand einen Tipp?
Vielen Dank. -
Problem gelöst:
Ich habe mir ein eigenes Script geschrieben, über das die Virtuellen Geräte angelegt werden.Dazu lösche ich erst alle Einstellungen des Cloud Adapters:
$('state').each(function (id) { var obj = getObject(id); if (obj.common.smartName) { //console.log(id); extendObject(id, { common: { smartName: null } }); } });Dann sammle ich alle Räume und Funktionen ein, und gruppiere die zu den entsprechenden IDs:
var objects = {}; getEnums('rooms').forEach(function (obj) { obj.members.forEach(function (id) { var o = objects[id]; if (!o) o = objects[id] = { rooms: [], functions: [], id: id }; var name = typeof obj.name == "string" ? obj.name : obj.name.de; o.rooms.push(name); }) }) getEnums('functions').forEach(function (obj) { obj.members.forEach(function (id) { var o = objects[id]; if (!o) o = objects[id] = { rooms: [], functions: [], id: id }; var name = typeof obj.name == "string" ? obj.name : obj.name.de; o.functions.push(name); }) })Am Ende laufe ich durch alle IDs in objects, erstelle eine Liste von "Gerätenamen", und setze diese via extendObject.
var virtualNames="Name1,Name2,Name3"; extendObject(col.id, { common: { smartName: { de: virtualNames, smartType: "LIGHT" } } });Im Cloud Adapter deaktiviert man einfach nur alle Aufzählungen.
Mein Script starte ich immer neu, wenn ich etwas an den Räumen oder Gruppen geändert habe.
Stolpersteine:
Der CloudAdapter blockiert manchmal das Ändern des smartName Feldes. Dann muss man den Cloud Adapter kurz abschalten während das Script läuft. Eventl geht das auch per Script?Auflistungen, Räume und Funktionen: Wenn man da was ändert, sollte man den Javascript Adapter neu starten, weil die Änderungen sonst noch nicht bekannt sind.
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