NEWS
Hue-Alternative: Zigbee2MQTT und Mosquitto => iobroker
-
Guten Tag,
ich habe verschiedene Installationen (Homematik, Shelly, Hue) und will das alles ein bisschen kanalisieren und mich von der Cloud befreien. So will ich insbesondere die Hue Bridge durch eine Open Source Alternative ersetzen. Das soll aber auch unabhängig vom iobroker laufen. Nur die Automatisierungen sollen über iobroker laufen.Als Stick habe ich mir einen Conbee II zugelegt.
Ich habe nun zu Testzwecken probiert, auf einem Odroid H2+ Phoscon zu installieren. Das hat recht gut geklappt, aber Phoscon ist nicht sehr stabil und auch etwas unstrukturiert.
Besser soll Zigbee2mqtt sein, in Verbindung mit Mosquitto. Das sind aber alles sehr abenteuerliche Installationen, selbst bare metal. Das ist nichts, was man mal eben neu aufsetzen kann, wie es bei iobroker mit backup oder Homematic ist. Ich habe es trotzdem hinbekommen, aber es scheitert jetzt an der Verbindung mit iobroker - irgendwo verhasple ich mich da immer.
Wenn ich jetzt Zigbee2mqtt und mosquitto auf einem eigenen Rechner (Raspi, H2+ o.ö) laufen lasse, wie bekomme ich das in iobroker eingebunden? Mit dem Adapter Zigbee2mqtt? Irgendwie habe ich das Konzept nicht verstanden.Hat jemand Zigbee im Einsatz und kann von einer best practise berichten?
-
@solear du kannst den zigbee2mqtt Adapter nehmen. Ich nutze aber nur den mqtt Adapter als Client zu mosquitto und wickle darüber alle mqtt Kommunikation ab, auch andere, die nichts mit zigbee2mqtt zu tun hat, wie Shellie’s, owntrack oder ich kommuniziere auch noch zu fhem via mqtt über mosquitto als Broker
-
@solear wenn du zigbe2mqtt und mosquitto schon laufen hast.. dann brauchst du nur im iobroker zigbee2mqtt adapter die ip der mschiene angeben wo das zigbee2mqtt läuft.
ansonsten würde ich vorschlagen wiki zu dem adatpter zu lesen da steht alles drin .. inl wie man es konfiguriert..
-
@solear sagte in Hue-Alternative: Zigbee2MQTT und Mosquitto => iobroker:
Hat jemand Zigbee im Einsatz und kann von einer best practise berichten?
Zigbee haben viele im Einsatz.
Es gibt prinzipiell 3 Wege:
- zigbee2mqtt via mosquitto und den mqtt Adapter (so wie @mickym geschrieben hat)
- zigbee2mqtt via Websocket und den zigbee2mqtt adapter (so wie @arteck geschrieben hat)
- iobroker.Zigbee Adapter ohne Zigbee2mqtt (nutzt auch die Bibliotheken des zigbee2mqtt.io Projektes, so das fast alle Funktionalitäten direkt verfügbar sind).
Jede der 3 Varianten hat ihre Vor- und Nachteile.
Wenn es Dir darum geht zu 100% aus einem backup das System wieder aufsetzen zu können dann ist die 3. Option die beste - allerdings solltest Du da auf einen Koordinator (Hardware) mit TI SOC wechseln (Siehe liste der empfohlenen Koordinatoren auf zigbee2mqtt.io) - dann ist die vollständige Konfiguration Teil der ioBroker Konfiguration.
Bei beiden anderen Ansätzen musst du die Konfiguration von zigbee2mqtt.io extra sichern und zurück spielen. Das ist meines Wissens bisher nicht im Backup vom ioBroker enthalten.
A.
-
@solear Ich nutze zigbee2mqtt im Docker und einen Mosquitto, ebenfalls im Docker. Vom ioBroker greife ich via zigbee2mqtt Adapter zu.
Ich hatte vorher den Zigbee-Adapter im Einsatz, allerdings hatte ich damit Probleme meine FoH Schalter anzulernen. Ebenfalls hatte ich eine 4 Fach Zigbee Steckdose, die das log mit lauter Error-Meldungen geflutet hatte. Daher bin ich auf Zigbee2mqtt umgestiegen und das läuft sauber mit meinen ganzen Zigbeegeräten. Dass es nun schneller geht, als mit dem Zigbee-Adapter kann ich so nicht wirklich bestätigen.
Ich würde auch nicht den ioBroker mqtt Server nehmen sondern einen externen. Gab bei mir weniger Probleme, wenn ich den ioBroker neu gestartet hatte. -
Vielen Dank für eure Antworten!
Habe mich jetzt aufgrund eurer Hinweise entschieden: auf Proxmox eine VM mit Zigbee2mqtt und Mosquitto.
Dann auf einer anderen VM mein normales iobroker mit dem "mqtt client" das klappt gut.Aber, was ich jetzt noch nicht kapiere, ich habe da in den Objekten nur die langen Datenketten für eine Lampe ({"color_mode":"xy","linkquality":152,"state":"OFF","update";).
Gibt es einen Adapter o.ä., welcher das übersetzt in das klassische, wie im HUE-Adapter, wo man per einfachen "true" eine Lampe schalten kann?
-
@solear Nutze den zigbee2mqtt Adapter - da kann man einen externen Broker angeben. Wobei ich nutze die JSON strings viel lieber direkt - die sind wesentlich effizienter.
-
@mickym
Aber wie soll das gehen.
Im zigbee2mqtt - Adapter habe ich auf "externen MQTT -Server" gestellt und auf die Mosquitto-IP gepointed. Login-Daten kann man nicht angeben, deswegen habe ich mosquitto mal auf "erlaube anonymen Zugriff" gestellt.
Trotzdem geht es nicht und der Adapter stürzt ab.at MqttClient._handlePacket (/opt/iobroker/node_modules/iobroker.zigbee2mqtt/node_modules/mqtt/lib/client.js:535:12) at work (/opt/iobroker/node_modules/iobroker.zigbee2mqtt/node_modules/mqtt/lib/client.js:438:12) at processTicksAndRejections (node:internal/process/task_queues:78:11) 2023-02-04 07:57:04.222 - error: zigbee2mqtt.0 (13866) Unexpected token o in JSON at position 11 2023-02-04 07:57:04.222 - error: zigbee2mqtt.0 (13866) Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). 2023-02-04 07:57:04.223 - error: zigbee2mqtt.0 (13866) unhandled promise rejection: Unexpected token o in JSON at position 11 2023-02-04 07:57:04.223 - error: zigbee2mqtt.0 (13866) SyntaxError: Unexpected token o in JSON at position 11 at JSON.parse () at Zigbee2mqtt.messageParse (/opt/iobroker/node_modules/iobroker.zigbee2mqtt/main.js:135:33) at MqttClient. (/opt/iobroker/node_modules/iobroker.zigbee2mqtt/main.js:95:22) at MqttClient.emit (node:events:513:28) at MqttClient._handlePublish (/opt/iobroker/node_modules/iobroker.zigbee2mqtt/node_modules/mqtt/lib/client.js:1547:12) at MqttClient._handlePacket (/opt/iobroker/node_modules/iobroker.zigbee2mqtt/node_modules/mqtt/lib/client.js:535:12) at work (/opt/iobroker/node_modules/iobroker.zigbee2mqtt/node_modules/mqtt/lib/client.js:438:12) at processTicksAndRejections (node:internal/process/task_queues:78:11) 2023-02-04 07:57:04.223 - error: zigbee2mqtt.0 (13866) Unexpected token o in JSON at position 11 2023-02-04 07:57:04.230 - error: zigbee2mqtt.0 (13866) TypeError: mqttClient.close is not a function 2023-02-04 07:57:04.335 - error: zigbee2mqtt.0 (13866) TypeError: Cannot read properties of undefined (reading 'allTimerClear') 2023-02-04 07:57:04.336 - info: zigbee2mqtt.0 (13866) terminating 2023-02-04 07:57:04.336 - warn: zigbee2mqtt.0 (13866) Terminated (UNCAUGHT_EXCEPTION): Without reason 2023-02-04 07:57:04.844 - error: zigbee2mqtt.0 (13866) Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). 2023-02-04 07:57:04.844 - error: zigbee2mqtt.0 (13866) unhandled promise rejection: DB closed 2023-02-04 07:57:04.845 - error: zigbee2mqtt.0 (13866) Error: DB closed at close (/opt/iobroker/node_modules/ioredis/built/redis/event_handler.js:184:25) at Socket. (/opt/iobroker/node_modules/ioredis/built/redis/event_handler.js:151:20) at Object.onceWrapper (node:events:628:26) at Socket.emit (node:events:513:28) at TCP. (node:net:301:12) 2023-02-04 07:57:04.845 - error: zigbee2mqtt.0 (13866) DB closed 2023-02-04 07:57:04.916 - error: host.iobroker instance system.adapter.zigbee2mqtt.0 terminated with code 6 (UNCAUGHT_EXCEPTION) 2023-02-04 07:57:04.917 - info: host.iobroker Restart adapter system.adapter.zigbee2mqtt.0 because enabled
Wie gesagt, der normale MQTT-Client-Adapter funktioniert.
-
@solear ok, ich dachte es funktioniert. Ich persönlich nutze auch nur den normalen Mqtt Adapter und bin damit glücklich. Ich mache auch alles mit JSON, wenn du eigene Datenpunkte haben willst, dann habe ich eine Node-Red Flow der Dir jeden JSON in einzelne Datenpunkte zerlegt
https://forum.iobroker.net/topic/43856/json-oder-javascript-objekt-in-iobroker-datenpunkte-zerlegen
Ansonsten halt nochmal in dem zigbee2mqtt Thread beim Ebtwickler nachfragen, warum das Einbinden nicht klappt.
Vielleicht ist nur ein JSON kaputt und der Adapter kann das nicht handeln.
Hier 8st der Thread zu dem zigbee2mqtt Adapter: https://forum.iobroker.net/topic/59260/test-adapter-zigbee2mqttWie gesagt ich persönlich arbeite nur mit mosquitto und reinem mqtt und arbeite auch gerne mit JSON Strings, damit ist man einfach am unabhängigsten, wenn man die vom unverfälschte Kommunikation verwendet und bei Bedarf nutze ich meinen Flow.
-
@solear websocket und die IP von zigbee2mqtt!! Nicht externer mqtt server.
also die gleichen Daten wie bei der WebUI. Für alles weitere direkt im Thread zu diesem Adapter fragen, da bekommst Du schneller Hilfe.