NEWS
Google Home/Assistant ioBroker einrichten/nutzen
-
@hollywoot Könntest du du bitte die Version die hier verlinkt ist installiert nur um sicherzustellen dass es bei allen iot versionen auftritt.
-
@tombox
Jopp, hab ich erledigt.
Hab die 1.18 vom Github installiert. Änderung gibt es keine.
Auf dem Bild kann man gut sehen, dass ich "Flur" manuell hinzugefügt habe und jetzt das Thermostat aus dem "Kinderzimmer" über die Autofunktion hinzugefügt habe.
Das Thermostat aus dem Flur kann ich abfragen, steuern, regeln, was auch immer - es geht alles.
Bei der Abfrage des Termostates aus dem Kinderzimmer knallt es und ich bekomme folgende Errors im Log:
-
Hi,
hat schon mal jemand von euch Rolladen unter ghome zum laufen gebracht(mit iot Adapter) ?
Meine wurden zwar automatisch erkannt:
Doch in der G Home App ist der Device nur Lesbar, kann dort keinen Wert setzen. Unter Alexa funktioniert das gerät einwandfrei.
Des Weiteren bringt der Aufruf eines Thermostat in der Google Home App den IoT Adapter zum Absturz:
2019-12-28 21:45:53.365 - info: iot.0 (19421) hm-rpc.0.PEQ2266365.1.LEVEL is auto added with type blind. 2019-12-28 21:45:53.472 - info: iot.0 (19421) Connection changed: connect 2019-12-28 21:52:36.283 - error: iot.0 (19421) uncaught exception: Cannot read property 'startsWith' of undefined 2019-12-28 21:52:36.284 - error: iot.0 (19421) TypeError: Cannot read property 'startsWith' of undefined at GoogleHome.getStates (/opt/iobroker/node_modules/iobroker.iot/lib/GoogleHome.js:2072:26) at Immediate.setImmediate [as _onImmediate] (/opt/iobroker/node_modules/iobroker.iot/lib/GoogleHome.js:2074:41) 2019-12-28 21:52:36.316 - info: iot.0 (19421) Connection changed: disconnect 2019-12-28 21:52:36.316 - info: iot.0 (19421) Connection lost 2019-12-28 21:52:36.318 - info: iot.0 (19421) terminating 2019-12-28 21:52:36.318 - info: iot.0 (19421) Terminated (NO_ERROR): Without reason 2019-12-28 21:52:36.838 - error: host.HomeServer Caught by controller[0]: at GoogleHome.getStates (/opt/iobroker/node_modules/iobroker.iot/lib/GoogleHome.js:2072:26) 2019-12-28 21:52:36.838 - error: host.HomeServer Caught by controller[0]: at Immediate.setImmediate [as _onImmediate] (/opt/iobroker/node_modules/iobroker.iot/lib/GoogleHome.js:2074:41) 2019-12-28 21:52:36.838 - info: host.HomeServer instance system.adapter.iot.0 terminated with code 0 (NO_ERROR) 2019-12-28 21:52:36.839 - info: host.HomeServer Restart adapter system.adapter.iot.0 because enabled 2019-12-28 21:53:06.851 - info: host.HomeServer instance system.adapter.iot.0 started with pid 21869 2019-12-28 21:53:09.206 - info: iot.0 (21869) starting. Version 1.1.9 in /opt/iobroker/node_modules/iobroker.iot, node: v8.15.0
-
@echoDave manche Geräte lassen sich nur per Sprache und nicht per App steuern. Hast du per Sprache probiert?
-
@tombox Ohjj per Sprache gehts, gracias! Aber Schade, dass es per App nicht geht
-
Auf dem Google Nest hub Display gibts für die Rolläden Auf und Ab Tasten.
-
@echoDave Ja ich war auch überrascht wie schlecht die Unterstützung ist und das anscheinend keine signifikanten Verbesserungen kommen. Aber du kannst gerne dein Wunsch auf Englisch in einem Ticket bei Google äußern. Vielleicht hat es ja ein Einfluss
https://issuetracker.google.com/issues/new?component=655104&template=1284148
-
Hi!
Nachdem ich jetzt nun in den letzten Wochen mehrere Stunden damit zugebracht habe, hier zu lesen und auszuprobieren, wo das Problem liegt, muss ich einfach hier noch mal fragen.
Ich habe Aqara Sensoren (Temperatur und Fenster) und will die in meiner GHome-App angezeigt bekommen. Ich bekomme es einfach nicht hin, weil ich die richtige Kombination von Type/Trait/Attribut irgendwie nicht herausfinden kann. Kann mir hier jemand mal für absolute Idioten erklären, wie das geht? Ich bin durchaus bereit komplett von vorne anzufangenMein Setup: Raspberry 3B+ mit RaspBee Aufsatz von Dresden Elektronik, drei Temperatur-Sensoren und zwei Fenster-Sensoren von Xiaomi/Aqara
-
@Maximilian-Klie könntest du ein export von den objekten (Beschreibung Beitrag 1) machen dann kann ich mir das anschauen. Wenn ich Zeit habe.
-
@tombox
Hier bitte:{ "deconz.0.Sensors.2": { "type": "device", "common": { "name": "Bad oben Temp", "role": "sensor", "smartName": false }, "native": { "ep": 1, "etag": "1cc6a3fe67a5e3502457af81c184ceae", "id": "2", "manufacturername": "LUMI", "modelid": "lumi.weather", "swversion": "20161129", "type": "ZHATemperature", "uniqueid": "00:15:8d:00:03:f0:55:74-01-0402" }, "from": "system.adapter.deconz.0", "user": "system.user.admin", "ts": 1574276560696, "_id": "deconz.0.Sensors.2", "acl": { "object": 1636 } }, "deconz.0.Sensors.2.battery": { "type": "state", "common": { "name": "Multisensor battery", "type": "number", "role": "indicator.battery", "read": true, "write": false }, "native": {}, "from": "system.adapter.deconz.0", "user": "system.user.admin", "ts": 1574276560720, "_id": "deconz.0.Sensors.2.battery", "acl": { "object": 1636, "state": 1636 } }, "deconz.0.Sensors.2.lastupdated": { "type": "state", "common": { "name": "lastupdated", "type": "string", "role": "state", "read": true, "write": false }, "native": {}, "from": "system.adapter.deconz.0", "user": "system.user.admin", "ts": 1574276615079, "_id": "deconz.0.Sensors.2.lastupdated", "acl": { "object": 1636, "state": 1636 } }, "deconz.0.Sensors.2.offset": { "type": "state", "common": { "name": "Multisensor offset", "type": "number", "role": "state", "read": true, "write": true, "smartName": false }, "native": {}, "from": "system.adapter.iot.0", "user": "system.user.admin", "ts": 1577399877048, "_id": "deconz.0.Sensors.2.offset", "acl": { "object": 1636, "state": 1636 } }, "deconz.0.Sensors.2.on": { "type": "state", "common": { "name": "Multisensor on", "type": "boolean", "role": "state", "read": true, "write": true, "smartName": false }, "native": {}, "from": "system.adapter.deconz.0", "user": "system.user.admin", "ts": 1574276560746, "_id": "deconz.0.Sensors.2.on", "acl": { "object": 1636, "state": 1636 } }, "deconz.0.Sensors.2.reachable": { "type": "state", "common": { "name": "Multisensor reachable", "type": "boolean", "role": "state", "read": true, "write": false }, "native": {}, "from": "system.adapter.deconz.0", "user": "system.user.admin", "ts": 1574276560746, "_id": "deconz.0.Sensors.2.reachable", "acl": { "object": 1636, "state": 1636 } }, "deconz.0.Sensors.2.temperature": { "type": "state", "common": { "name": "Sensor Bad oben", "type": "number", "role": "value.temperature", "unit": "°C", "read": true, "write": true, "smartName": false, "enums": [ { "_id": "enum.functions.infos", "common": { "name": "Infos", "icon": "", "color": false } }, { "_id": "enum.rooms.bad_oben", "common": { "name": "Bad oben", "icon": "", "color": false } } ] }, "native": {}, "from": "system.adapter.iot.0", "user": "system.user.admin", "ts": 1577541459184, "_id": "deconz.0.Sensors.2.temperature", "acl": { "object": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator", "state": 1636 } } }
Ich will nicht ausschließen, dass ich irgendwo Mist gemacht hab. Das ist jetzt auch nur ein Sensor exemplarisch. Danke schon mal!
-
@Maximilian-Klie die json datei wäre einfacher für mich
-
@tombox Verzeihung. Hier isse: deconz.0.Sensors.2.json
-
@tombox said in Google Home/Assistant ioBroker einrichten/nutzen:
https://issuetracker.google.com/issues/new?component=655104&template=1284148
Mache ich danke.
Aber der Zustand, dass der Adapter Abstürzt wenn ich in der GHome App ein Thermostat aufrufe wäre noch zu klären. Ich habe mal den iot Adapter etwas debugt und folgendes rausgefunden:
der Fehler Steckt in folgender Datei:
/opt/iobroker/node_modules/iobroker.iot/lib/GoogleHome.jsUnd zwar in der Zeile 2073:
getStates(ids, callback, states) { states = states || {}; if (!ids || !ids.length) { callback(states); } else { const id = ids.shift(); this.adapter.getForeignState(id, (err, state) => { <-- Hier steck der Fehler! states[id] = state && state.val; setImmediate(() => this.getStates(ids, callback, states)); }); } }
ids ist ein Array der zwei Elemente hat, das erste ist bestückt das zweite ist leer. Warum auch immer liefert hier das ids.length in der If trotzdem eine 1 für das leere Element. Dadurch geht der If zum zweiten mal in den Else-Zweig. Beim shift kommt's dann zur "Tragödie", die Konstante id wird undefined, wodurch der getForeignState abbricht weil er .startwith(ALIAS_STARTS_WITH) nicht auf ein undefiniertes Objekt machen kann. Dadurch schmiert der Adapter dann ab und Google Home App bekommt keine Antwort.
Ich habe die Funktion wie folgt abgeändert:
getStates(ids, callback, states) { states = states || {}; const id = ids.shift(); if (!id || !id.length) { callback(states); } else { //const id = ids.shift(); this.adapter.getForeignState(id, (err, state) => { states[id] = state && state.val; setImmediate(() => this.getStates(ids, callback, states)); }); } }
Also den Shift vor die If gezogen und in der If Frage ich die Konstante ab.
Jetzt läuft es durch und man kann Thermostate über die App auch bedienen.
Hat noch jemand anders den Fehler gehabt?
Und reicht es hier als Lösung oder soll ich das noch wo anders posten?Viele Grüße, David
-
Hallo,
ich hab jetzt auch mal diese Zeilen abgeändert und es funktionieren jetzt auch die Thermostate. Vorher ist der Adapter sofort abgestürzt, sobald irgendetwas mit Temperatur zu tun hatte.
Allerdings kann ich sie nur über die Google Home App bedienen und nicht auf Zuruf, hier kommt das das Gerät aktuell nicht erreichbar ist. -
@echoDave Hi danke für das Feedback, In meiner Version ist der Fehler schon länger behoben aber ich hatte noch keine Zeit es in die offizielle Version zu kopieren. Werde ich zeitnah machen.
Bzw teste doch mal meine Version ob da der Fehler auch weg ist.
-
@Maximilian-Klie Der schnellste Weg dein Problem zu fixen ist Sensor.2 manuell zu löschen und durch deconz neuerzeugen lassen und dann wie beschrieben dem Device Sensors.2 ein Raum und Funktion zu weisen und nicht dem State temperature
-
@tombox welche ist deine hast du mal nen Link zum github?
-
@echoDave https://github.com/TA2k/ioBroker.iot Anleitung zur Installation in Beitrag 1
-
@hollywoot Also die Jalousie wird erkannt wenn man dem Channel hm-rpc.0.OEXXXXXXXX.1 einen Raum und Funktion zuweist. Das Problem ist das der Türsensor bei mir im gleichen Channel liegt. Damit ist es schwer zwei Geräte automatisch zu erkennen. Ist es möglich den Sensor von der Jalousie zu trennen?
-
@tombox said in Google Home/Assistant ioBroker einrichten/nutzen:
ok Danke
aber welcher Brunch ist deiner? den Master 1.1.9 habe ich bereits von da.
Sorry übersehen, dass es dein repo ist nicht das vom iobroker. ich teste mal.Wieso kann man die Thermostate nicht per Sprache steuern?