NEWS
Google Home/Assistant ioBroker einrichten/nutzen
-
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. -
@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
@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.
-
@tombox Verzeihung. Hier isse: deconz.0.Sensors.2.json
-
@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.
-
Moin!
Nachdem ich die Heizkörperthermostate nun endlich zugange habe (Auto Mode hat nicht funktioniert, obwohl Raum und Funktion zugeordnet. Objekt wird gefunden und im iot angezeigt mit komplett korrekten Einstellungen. Iot schmiert bei Abfrage dieser Geräte allerdings mit nem riesen Error-Block ab und restartet. Füge ich das identische Objekt manuell hinzu, funktioniert es sofort!), möchte ich nun auch gerne meine Rollläden und Tür-/Fensterkontakte in der GHome App und per Sprache sehen und steuern können.
Da ich beides nicht eingebunden bekomme, bzw nur so, dass die Geräte nicht steuerbar sind (Icon in der GHome App mit einem "Einstellungen-Ritzel". Beim auswählen bekommt man nur die Informationen, dass das Gerät zu iobroker gehört, mehr nicht), möchte ich hier einmal um Hilfe bitten und stelle zudem gerne die Json-Files zur Verfügung. Es muss ja noch andere Leute geben, die zB den HM Rollladenaktor nutzen.jalousie.json
tuerkontakt.jsonGruß
@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?
-
@echoDave https://github.com/TA2k/ioBroker.iot Anleitung zur Installation in Beitrag 1
@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?
-
@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
Hmm also deine Version hat schon mal Probleme die Thermostate überhaupt einzufügen:
iot.0 2019-12-31 16:33:19.970 warn (10126) Missing name, type or treat for: hm-rpc.0.MEQ1457539.1.SET_TEMPERATURE. Not added to GoogleHome iot.0 2019-12-31 16:33:19.970 warn (10126) Missing name, type or treat for: hm-rpc.0.MEQ1773490.1.SET_TEMPERATURE. Not added to GoogleHome iot.0 2019-12-31 16:33:19.969 warn (10126) Missing name, type or treat for: hm-rpc.0.MEQ1773431.1.SET_TEMPERATURE. Not added to GoogleHome iot.0 2019-12-31 16:33:19.969 warn (10126) Missing name, type or treat for: hm-rpc.0.MEQ1452909.1.SET_TEMPERATURE. Not added to GoogleHome iot.0 2019-12-31 16:33:19.969 warn (10126) Missing name, type or treat for: hm-rpc.0.MEQ1450924.1.SET_TEMPERATURE. Not added to GoogleHome iot.0 2019-12-31 16:33:19.968 warn (10126) Missing name, type or treat for: hm-rpc.0.MEQ1773015.1.SET_TEMPERATURE. Not added to GoogleHomemit Blinds gibts auch Probleme, irgendwie fügt die Adapter Version einen Doppelten Eintrag hinzu ohne Namen.
Der Führt zu Fehlern:

Meine Ikea Glühbirne (Zigbee) wurde auch nicht wirklich gut erkannt, konnte die nicht steuern.
-
Hmm also deine Version hat schon mal Probleme die Thermostate überhaupt einzufügen:
iot.0 2019-12-31 16:33:19.970 warn (10126) Missing name, type or treat for: hm-rpc.0.MEQ1457539.1.SET_TEMPERATURE. Not added to GoogleHome iot.0 2019-12-31 16:33:19.970 warn (10126) Missing name, type or treat for: hm-rpc.0.MEQ1773490.1.SET_TEMPERATURE. Not added to GoogleHome iot.0 2019-12-31 16:33:19.969 warn (10126) Missing name, type or treat for: hm-rpc.0.MEQ1773431.1.SET_TEMPERATURE. Not added to GoogleHome iot.0 2019-12-31 16:33:19.969 warn (10126) Missing name, type or treat for: hm-rpc.0.MEQ1452909.1.SET_TEMPERATURE. Not added to GoogleHome iot.0 2019-12-31 16:33:19.969 warn (10126) Missing name, type or treat for: hm-rpc.0.MEQ1450924.1.SET_TEMPERATURE. Not added to GoogleHome iot.0 2019-12-31 16:33:19.968 warn (10126) Missing name, type or treat for: hm-rpc.0.MEQ1773015.1.SET_TEMPERATURE. Not added to GoogleHomemit Blinds gibts auch Probleme, irgendwie fügt die Adapter Version einen Doppelten Eintrag hinzu ohne Namen.
Der Führt zu Fehlern:

Meine Ikea Glühbirne (Zigbee) wurde auch nicht wirklich gut erkannt, konnte die nicht steuern.
-
@echoDave Wenn du MEQ1457539.1 und PEQ2266365.1 und die Lampe kurz als Export bereitstellen könntest, kann ich mir das bei mir anschauen.
-
Ich habe jetzt auch wieder die Version von tombox installiert. Thermostate kann ich damit hinzufügen und beim Synchronisieren der Geräte wird der Adapter jetzt nicht mehr rot.
Wenn ich Geräte manuell hinzufüge und dann Type und Funktion auswähle z.B. Thermostat dann steht nach dem speichern plötzlich Light drin oder switch. Nach ca. 3-5 mal korrigieren und neu speichern bleibt es dann.
Eine Zeile bei den google devices kann ich nicht mehr löschen, hier steht nur Blinds und Wohnzimmer das sich immer mal wieder verändert. -
@tombox gerne aber erst im neuen Jahr, habe die master vom iobroker wieder installiert damit das System über die Tage läuft :) stelle es im Neuen Jahr wieder auf deine Version.
Guten Rutsch euch allen!
-
@echoDave Der Export ist unabhängig davon welche Version gerade installiert ist. Bei den Thermostaten überprüfe nochmal das der Raum und Funktion auf dem Channel zugewiesen ist und nicht SET_TEMPERATURE
-
@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 said in Google Home/Assistant ioBroker einrichten/nutzen:
@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
Heya! Danke, werde ich testen. Das Ergebnis teile ich hier mit.
-
Hallo,
hab die neue Version von heute installiert, hier sind die fehlerhaften Einträge jetzt verschwunden, Thermostate lassen sich einbinden und per Sprache abfragen, auch beim Speichern bleibt es unter Google Devices nicht mehr grau. Läuft jetzt super, Danke. -
@tombox said in Google Home/Assistant ioBroker einrichten/nutzen:
Bei mir bringt die Version von heute ganz andere Probleme:
iot.0 2020-01-01 14:55:18.147 error (19946) iot.0 2020-01-01 14:55:18.147 error (19946) [object Object] iot.0 2020-01-01 14:55:18.147 error (19946) 3799978283214788838 iot.0 2020-01-01 14:55:18.146 error (19946) TypeError: Cannot convert undefined or null to object at Function.keys (<anonymous>) at devices.forEach.dev (/opt/iobroker/node_modules/iobroker.iot/lib/GoogleHome.js:2476:28) at A iot.0 2020-01-01 14:55:18.144 error (19946) TypeError: Cannot convert undefined or null to object <-- jetzt folgt der Aufruf ind er App -> iot.0 2020-01-01 14:54:52.565 error (19946) [GHOME] devices are unknown to google home iot.0 2020-01-01 14:54:49.191 warn (19946) Missing name, type or treat for: hm-rpc.0.MEQ1450924.1.ACTUAL_TEMPERATURE. Not added to GoogleHome iot.0 2020-01-01 14:54:49.190 warn (19946) Missing name, type or treat for: hm-rpc.0.MEQ1450924.1.SET_TEMPERATURE. Not added to GoogleHome iot.0 2020-01-01 14:54:29.507 info (19946) hm-rpc.0.MEQ1450924.1 is auto added with type thermostat.Hier der JSON des Objects:
-
@tombox said in Google Home/Assistant ioBroker einrichten/nutzen:
Bei mir bringt die Version von heute ganz andere Probleme:
iot.0 2020-01-01 14:55:18.147 error (19946) iot.0 2020-01-01 14:55:18.147 error (19946) [object Object] iot.0 2020-01-01 14:55:18.147 error (19946) 3799978283214788838 iot.0 2020-01-01 14:55:18.146 error (19946) TypeError: Cannot convert undefined or null to object at Function.keys (<anonymous>) at devices.forEach.dev (/opt/iobroker/node_modules/iobroker.iot/lib/GoogleHome.js:2476:28) at A iot.0 2020-01-01 14:55:18.144 error (19946) TypeError: Cannot convert undefined or null to object <-- jetzt folgt der Aufruf ind er App -> iot.0 2020-01-01 14:54:52.565 error (19946) [GHOME] devices are unknown to google home iot.0 2020-01-01 14:54:49.191 warn (19946) Missing name, type or treat for: hm-rpc.0.MEQ1450924.1.ACTUAL_TEMPERATURE. Not added to GoogleHome iot.0 2020-01-01 14:54:49.190 warn (19946) Missing name, type or treat for: hm-rpc.0.MEQ1450924.1.SET_TEMPERATURE. Not added to GoogleHome iot.0 2020-01-01 14:54:29.507 info (19946) hm-rpc.0.MEQ1450924.1 is auto added with type thermostat.Hier der JSON des Objects:
@echoDave Ich habe den Fehler auch kurz gesehen. Es war anscheinend ein Problem bei Google.
Bezüglich deines Thermostat wir der korrekt automatisch erkannt. Nur sind Custom sachen für actual und set eingegeben und auch ein Raum vergeben. Einfach das Objekt löschen und durch den hm-rpc adapter neu erstellen lassen und nur dem channel ein Raum und Funktion zuweisen.
Der Fehler müsste nichts mit dem Thermostat zu tun ich habe aber die Fehlerausgabe nochmal verbessert.
Einfach neuinstallieren via github und instanz neustarten. -
@echoDave Ich habe den Fehler auch kurz gesehen. Es war anscheinend ein Problem bei Google.
Bezüglich deines Thermostat wir der korrekt automatisch erkannt. Nur sind Custom sachen für actual und set eingegeben und auch ein Raum vergeben. Einfach das Objekt löschen und durch den hm-rpc adapter neu erstellen lassen und nur dem channel ein Raum und Funktion zuweisen.
Der Fehler müsste nichts mit dem Thermostat zu tun ich habe aber die Fehlerausgabe nochmal verbessert.
Einfach neuinstallieren via github und instanz neustarten.hmm die sind wieder rausgeflogen und lassen sich nicht per GHome Steuern.
Habe die Geräte in ioBroker gelöscht und neu einlesen lassen:
hm-rpc.0.MEQ1450924 (1).json2020-01-01 22:03:42.405 - warn: iot.0 (25784) Missing name, type or treat for: hm-rpc.0.MEQ1450924.1.SET_TEMPERATURE. Not added to GoogleHome 2020-01-01 22:03:42.405 - debug: iot.0 (25784) {"traits":["action.devices.traits.TemperatureSetting_thermostatTemperatureSetpoint"],"roomHint":"Gaestezimmer","smartEnum":"X","type":"action.devices.types.THERMOSTAT","ioType":"state","displayTraits":["action.devices.traits.TemperatureSetting_thermostatTemperatureSetpoint"],"parentId":"hm-rpc.0.MEQ1450924.1","name":{"nicknames":["hm-rpc.0.MEQ1450924.1.SET_TEMPERATURE"]},"id":"hm-rpc.0.MEQ1450924.1.SET_TEMPERATURE"} 2020-01-01 22:03:42.406 - warn: iot.0 (25784) Missing name, type or treat for: hm-rpc.0.MEQ1450924.1.ACTUAL_TEMPERATURE. Not added to GoogleHome 2020-01-01 22:03:42.406 - debug: iot.0 (25784) {"traits":["action.devices.traits.TemperatureSetting_thermostatTemperatureAmbient"],"roomHint":"Gaestezimmer","smartEnum":"X","type":"action.devices.types.THERMOSTAT","ioType":"state","displayTraits":["action.devices.traits.TemperatureSetting_thermostatTemperatureAmbient"],"parentId":"hm-rpc.0.MEQ1450924.1","name":{"nicknames":["hm-rpc.0.MEQ1450924.1.ACTUAL_TEMPERATURE"]},"id":"hm-rpc.0.MEQ1450924.1.ACTUAL_TEMPERATURE"}Mit dem Alten Adapter funktioniert jedoch alles Einwand frei
-
hmm die sind wieder rausgeflogen und lassen sich nicht per GHome Steuern.
Habe die Geräte in ioBroker gelöscht und neu einlesen lassen:
hm-rpc.0.MEQ1450924 (1).json2020-01-01 22:03:42.405 - warn: iot.0 (25784) Missing name, type or treat for: hm-rpc.0.MEQ1450924.1.SET_TEMPERATURE. Not added to GoogleHome 2020-01-01 22:03:42.405 - debug: iot.0 (25784) {"traits":["action.devices.traits.TemperatureSetting_thermostatTemperatureSetpoint"],"roomHint":"Gaestezimmer","smartEnum":"X","type":"action.devices.types.THERMOSTAT","ioType":"state","displayTraits":["action.devices.traits.TemperatureSetting_thermostatTemperatureSetpoint"],"parentId":"hm-rpc.0.MEQ1450924.1","name":{"nicknames":["hm-rpc.0.MEQ1450924.1.SET_TEMPERATURE"]},"id":"hm-rpc.0.MEQ1450924.1.SET_TEMPERATURE"} 2020-01-01 22:03:42.406 - warn: iot.0 (25784) Missing name, type or treat for: hm-rpc.0.MEQ1450924.1.ACTUAL_TEMPERATURE. Not added to GoogleHome 2020-01-01 22:03:42.406 - debug: iot.0 (25784) {"traits":["action.devices.traits.TemperatureSetting_thermostatTemperatureAmbient"],"roomHint":"Gaestezimmer","smartEnum":"X","type":"action.devices.types.THERMOSTAT","ioType":"state","displayTraits":["action.devices.traits.TemperatureSetting_thermostatTemperatureAmbient"],"parentId":"hm-rpc.0.MEQ1450924.1","name":{"nicknames":["hm-rpc.0.MEQ1450924.1.ACTUAL_TEMPERATURE"]},"id":"hm-rpc.0.MEQ1450924.1.ACTUAL_TEMPERATURE"}Mit dem Alten Adapter funktioniert jedoch alles Einwand frei
-
@echoDave Bitte nochmal installieren dieser Fehler sollte nicht ausgegeben werden.
Bei mir wird hm-rpc.0.MEQ1450924.1 Gaestezimmer Heizung korrekt erkannt und funktioniert auch in der App.@tombox Jop Fehler ist im Log nicht mehr da. In der App kann ich jedoch die Heizung nicht setzen.
Sieht dann so aus:

Beim Synchronisieren kommt auch so eine Meldung (früher schon mal gesehen):
iot.0 2020-01-01 22:26:42.476 error (2922) [GHOME] Cannot updateStates: Request contains an invalid argument.