NEWS
[gelöst]ioBroker und Zigbee2Mqtt auf einem Raspberry Pi ?
-
Hallo zusammen,
ich habe eine Grundsätzliche Frage:
Kann der ioBroker und Zigbee2Mqtt auf einem Raspberry Pi 4 betrieben werden?Aktuell betreibe ich einen Pi4 auf dem der ioBroker und Homebridge läuft.
Mit dem Zigbee Adapter bin ich nicht zufrieden und Deconz hat mich auch nicht überzeugt. Ich würde gerne Zigbee2Mqtt ausprobieren bringe ihn aber nicht zum Laufen.Bei sämtlichen Anleitungen wird meine ich zumindest von einem leeren Pi ausgegangen.
Grüße
-
@zickyzacky sagte in ioBroker und Zigbee2Mqtt auf einem Raspberry Pi ?:
Kann der ioBroker und Zigbee2Mqtt auf einem Raspberry Pi 4 betrieben werden?
Natürlich. Sind beides 'nur' Dienste.
-
IoBroker und zigbee2mqtt läuft bei mir auf einem pi4 ohne Probleme.
Ich habe mir diese Anleitung zusammen kopiert.sudo apt-get install -y git make g++ gcc # Repository Zigbee2MQTT clonen git clone --depth 1 https://github.com/Koenkk/zigbee2mqtt.git sudo mv zigbee2mqtt /opt/zigbee2mqtt # Abhängigkeiten installieren (als user "pi") cd /opt/zigbee2mqtt npm ci # Konfiguration erstellen nano /opt/zigbee2mqtt/data/configuration.yaml mqtt: base_topic: zigbee2mqtt server: mqtt://172.16.2.168:1883 # MQTT server authentication, uncomment if required: # user: my_user # password: my_password serial: port: /dev/serial/by-id/usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_08dea42454c8eb118e72c4c3de5b81b4-if00-port0 advanced: network_key: GENERATE frontend: port: 8080 host: 0.0.0.0 # zigbee2mqtt starten cd /opt/zigbee2mqtt npm start # systemctl configuration Datei erstellen für Zigbee2MQTT sudo nano /etc/systemd/system/zigbee2mqtt.service [Unit] Description=zigbee2mqtt After=network.target [Service] ExecStart=/usr/bin/npm start WorkingDirectory=/opt/zigbee2mqtt StandardOutput=inherit # Or use StandardOutput=null if you don't want Zigbee2MQTT messages filling syslog, for more options see systemd.exec(5) StandardError=inherit Restart=always RestartSec=10s User=pi [Install] WantedBy=multi-user.target # Starten Zigbee2MQTT sudo systemctl start zigbee2mqtt # Status anzeigen systemctl status zigbee2mqtt.service # Autostart sudo systemctl enable zigbee2mqtt.service
MQTT und Stick muss natürlich angepasst werden.
-
@zickyzacky sagte in ioBroker und Zigbee2Mqtt auf einem Raspberry Pi ?:
Bei sämtlichen Anleitungen wird meine ich zumindest von einem leeren Pi ausgegangen.
Naja, nodejs und npm hast Du ja schon. Also Mosquitto installieren und konfigurieren (oder den MQTT-Adapter als Server einrichten) und dann hier weiter machen:
https://www.zigbee2mqtt.io/guide/installation/01_linux.html#installing
-
Ja ich habe beides auf einem PI4 laufen . zigbee2mqtt, mosquitto und iobroker. Das zigbee2mqtt zum Laufen zu bringen ist eigentlich nicht schwierig, wenn Du Dich an die originale Installationsanleitung hälst.
Lediglich bei der Kartendarstellung bekommst Du die Geräte die direkt (ich nutze den conbee2 Stick) mit dem Koordinatior anliegen, nicht angezeigt.
Du brauchst kein leeren PI. Ich habe das auch nachträglich installiert.
Wenn Du Dich an die Originalanleitung hälst: https://www.zigbee2mqtt.io/guide/installation/01_linux.html#determine-location-of-the-adapter-and-checking-user-permissions
Dann wird das Programm erst im pi Homeverzeichnis installiert und dann in das Verzeichnis /opt/zigbee2mqtt verschoben.
sudo mv zigbee2mqtt /opt/zigbee2mqtt
Um dieses Front-End zu enablen musst Du nur die Konfigurationsdatei ändern:
https://www.zigbee2mqtt.io/guide/configuration/frontend.html#advanced-configurationfrontend: true
Die Datei ist die zentrale Konfigurationsdatei im data Unterverzeichnis.
/opt/zigbee2mqtt/data $ cat configuration.yaml
-
oder du nimmst den zigbee adapter ... ist das gleiche.. und einfacher
-
Hallo zusammen und schon mal vielen Dank für die Antworten.
Ich werde die Neuinstallation nochmal angehen und schauen ob das dann klappt was es ja sollte.Den Zigbee Adapter habe ich aktuell im Einsatz, bin mit dem aber nicht zufrieden.
Der andere Punkt ist, dass ich die Zigbee Geräte über Homebridge im Apple HomeKit haben möchte was mit dem Zigbee Adapter leider nicht funktioniert.
Die Homebridge bringt hier den Vorteil, dass die IPhone App EVE History Werte Aufzeichnungen macht.Viele Grüße
️
-
@zickyzacky sagte in ioBroker und Zigbee2Mqtt auf einem Raspberry Pi ?:
Den Zigbee Adapter habe ich aktuell im Einsatz, bin mit dem aber nicht zufrieden.
Da der ZigBee-Adapter auf dem ZigBee2MQTT basiert (bzw. diesen, in Teilen, als Unterbau verwendet) - was stört dich denn bzw. was erwartest du was anders ist?
-
@bananajoe ich habe auch vom Zigbee Adapter aus diversen Gründen verabschiedet, finde aber nicht, dass man das hier nun thematisieren muss, sondern sich auf die technische Umsetzung konzentrieren sollte. Mein Hauptgrund war , dass der Conbee2 vor wenigen Monaten offiziell nicht unterstützt wurde, während der Stick in dem Projekt bereits getan wurde. Inzwischen ist das zwar offiziell nicht mehr relevant, aber ich habe den Umstieg nicht bereut. Auch das Einschaltverhalten bei Stromwiederkehr kann direkt konfiguriert werden und muss nicht über undokumentierte Send Kommandos erzeugt werden. Wie gesagt, dem TE gefällt der Adapter nicht, dann wird er seine Erfahrungen gemacht haben und ob es dann so hilfreich ist, das in Frage zu stellen, gibt in meinem Augen keinen Mehrwert.
-
@mickym So viele Hintergedanken hatte ich gar nicht - das Problem mit "Einschaltverhalten bei Stromwiederkehr kann direkt konfiguriert werden und muss nicht über undokumentierte Send Kommandos erzeugt" kannte ich noch nicht.
Ich hab selbst 60 ZigBee Geräte und war neugierig. Allerdings betreibe ich auch nur Sensoren. -
@mickym sagte in ioBroker und Zigbee2Mqtt auf einem Raspberry Pi ?:
Wie gesagt, dem TE gefällt der Adapter nicht, dann wird er seine Erfahrungen gemacht haben und ob es dann so hilfreich ist, das in Frage zu stellen, gibt in meinem Augen keinen Mehrwert.
es geht doch nicht darum, das in Frage zu stellen, sondern den Grund zu erfahren, wo vielleicht noch Verbesserungspotential ist. (oder ggf. ein konfigproblem war)
wie du siehst, ist dein Grund für den Wechsel nicht präsent.
-
@homoran sagte in ioBroker und Zigbee2Mqtt auf einem Raspberry Pi ?:
wie du siehst, ist dein Grund für den Wechsel nicht präsent.
Vielleicht hat auch das einen Grund.
-
Mein Grund zum Wechsel oder eine Alternative zu probieren ist wie schon oben beschrieben, dass ich die Zigbee Geräte im Apple HomeKit mit History verwenden möchte. Das funktioniert meines Wissen nur über die Homebridge Lösung.
Dann stört mich die Ansicht der Karte. Meist werden alle Verbindungen rot und nicht Verbunden dargestellt und irgendwann kommt die richtige Darstellung.Grüße
-
@zickyzacky Na bei der Karte - wirst Du zumindest mit dem Conbee2 auch ein Problem haben, dass die Geräte, die direkt mit dem Koordinator verbunden sind - freischwebend sind. (s. mein Screenshot - sind aber nur 2^^).
-
Die 'Karte' ist eh nur 'Türelü'. Da kann man gar nichts valides rauslesen.
-
Ich beginne nochmal die Installation neu durchzuführen.
Den Ordern /opt/zigbee2mqtt habe ich gelöscht.Beim installieren des ersten Schrittes nodejs bekomme ich folgende Meldungen:
pi@raspberrypi-iobroker:/opt $ sudo apt-get install -y nodejs npm git make g++ gcc Paketlisten werden gelesen… Fertig Abhängigkeitsbaum wird aufgebaut… Fertig Statusinformationen werden eingelesen… Fertig g++ ist schon die neueste Version (4:10.2.1-1). gcc ist schon die neueste Version (4:10.2.1-1). git ist schon die neueste Version (1:2.30.2-1). make ist schon die neueste Version (4.3-4.1). nodejs ist schon die neueste Version (14.19.3-deb-1nodesource1). Einige Pakete konnten nicht installiert werden. Das kann bedeuten, dass Sie eine unmögliche Situation angefordert haben oder, wenn Sie die Unstable-Distribution verwenden, dass einige erforderliche Pakete noch nicht erstellt wurden oder Incoming noch nicht verlassen haben. Die folgenden Informationen helfen Ihnen vielleicht, die Situation zu lösen: Die folgenden Pakete haben unerfüllte Abhängigkeiten: libnode72 : Kollidiert mit: nodejs-legacy nodejs : Kollidiert mit: npm E: Probleme können nicht korrigiert werden, Sie haben zurückgehaltene defekte Pakete.
Vermutlich hätte ich das nicht tun sollen, aber nun ist es passiert
Weiter geht es mit den Version abfragen:
pi@raspberrypi-iobroker:/ $ node --version v14.19.3 pi@raspberrypi-iobroker:/ $ npm --version 6.14.17
Das sieht doch nicht verkehrt es.
Das downloaden der Datei und verschieben sieht auch ganz gut aus:
pi@raspberrypi-iobroker:/ $ sudo git clone --depth 1 https://github.com/Koenkk/zigbee2mqtt.git Klone nach 'zigbee2mqtt' ... remote: Enumerating objects: 131, done. remote: Counting objects: 100% (131/131), done. remote: Compressing objects: 100% (126/126), done. remote: Total 131 (delta 6), reused 40 (delta 1), pack-reused 0 Empfange Objekte: 100% (131/131), 492.28 KiB | 5.41 MiB/s, fertig. Löse Unterschiede auf: 100% (6/6), fertig. pi@raspberrypi-iobroker:/ $ sudo mv zigbee2mqtt /opt/zigbee2mqtt
Bei der Installation bekomme ich dann schon die Probleme:
pi@raspberrypi-iobroker:/ $ cd /opt/zigbee2mqtt pi@raspberrypi-iobroker:/opt/zigbee2mqtt $ npm ci npm ERR! code EACCES npm ERR! syscall mkdir npm ERR! path /opt/zigbee2mqtt/node_modules npm ERR! errno -13 npm ERR! Error: EACCES: permission denied, mkdir '/opt/zigbee2mqtt/node_modules' npm ERR! [OperationalError: EACCES: permission denied, mkdir '/opt/zigbee2mqtt/node_modules'] { npm ERR! cause: [Error: EACCES: permission denied, mkdir '/opt/zigbee2mqtt/node_modules'] { npm ERR! errno: -13, npm ERR! code: 'EACCES', npm ERR! syscall: 'mkdir', npm ERR! path: '/opt/zigbee2mqtt/node_modules' npm ERR! }, npm ERR! errno: -13, npm ERR! code: 'EACCES', npm ERR! syscall: 'mkdir', npm ERR! path: '/opt/zigbee2mqtt/node_modules' npm ERR! } npm ERR! npm ERR! The operation was rejected by your operating system. npm ERR! It is likely you do not have the permissions to access this file as the current user npm ERR! npm ERR! If you believe this might be a permissions issue, please double-check the npm ERR! permissions of the file and its containing directories, or try running npm ERR! the command again as root/Administrator. npm ERR! A complete log of this run can be found in: npm ERR! /home/pi/.npm/_logs/2022-06-27T15_48_45_646Z-debug.log pi@raspberrypi-iobroker:/opt/zigbee2mqtt $
Wo könnte das Problem sein?
-
@zickyzacky Schau Dir mal die Berechtigungen im /opt/zigbee2mqtt an - bei mir hat da pi überall Rechte.
Meines Erachtens hast Du schon verkehrt angefangen, in dem Du die Befehle unter /opt ausgeführt hast. Das wird alles im Homeverzeichnis des pi durch geführt und dann ja verschoben.
Also das sudo apt-get, git-clone usw. hast Du nicht im Homeverzeichnis des pi gemacht. Stand doch nirgends dass Du irgendwas im opt am Anfang machen solltest.
Erst wenn Du mit cd aufgefordert wirst, wird das Verzeichnis gewechselt.
Würde sowohl im Home-PI Verzeichnis als auch im /opt das zigbee Verzeichnis wieder löschen.
Wenn es fertig ist - hast Du folgende Berechtigungsstruktur unter /opt/zigbee2mqtt.
/opt/zigbee2mqtt $ ls -la insgesamt 832 drwxr-xr-x 12 pi pi 4096 18. Jun 05:02 . drwxr-xr-x 6 root root 4096 21. Feb 08:33 .. -rw-r--r-- 1 pi pi 328 21. Feb 08:33 babel.config.js -rwxr-xr-x 1 pi pi 179 21. Feb 08:33 cli.js -rw-r--r-- 1 pi pi 5449 21. Feb 08:33 CODE_OF_CONDUCT.md -rw-r--r-- 1 pi pi 1351 21. Feb 08:33 CONTRIBUTING.md drwxr-xr-x 4 pi pi 4096 27. Jun 17:53 data drwxr-xr-x 6 pi pi 4096 18. Jun 05:02 dist drwxr-xr-x 2 pi pi 4096 18. Jun 04:58 docker -rw-r--r-- 1 pi pi 166 21. Feb 08:33 .dockerignore -rw-r--r-- 1 pi pi 20 21. Feb 08:33 .eslintignore -rw-r--r-- 1 root root 1608 18. Jun 04:58 .eslintrc.js drwxr-xr-x 8 pi pi 4096 18. Jun 04:58 .git drwxr-xr-x 4 pi pi 4096 18. Jun 04:58 .github -rw-r--r-- 1 pi pi 1177 21. Feb 08:33 .gitignore drwxr-xr-x 2 pi pi 4096 21. Feb 08:33 images -rw-r--r-- 1 root root 3896 18. Jun 04:58 index.js drwxr-xr-x 6 pi pi 4096 18. Jun 04:58 lib -rw-r--r-- 1 pi pi 35141 21. Feb 08:33 LICENSE drwxr-xr-x 422 pi pi 20480 18. Jun 05:02 node_modules -rw-r--r-- 1 pi pi 234 21. Feb 08:33 .npmignore -rw-r--r-- 1 pi pi 23 21. Feb 08:33 .npmrc -rw-r--r-- 1 root root 675330 18. Jun 04:58 npm-shrinkwrap.json -rw-r--r-- 1 root root 2807 18. Jun 04:58 package.json -rw-r--r-- 1 pi pi 6212 21. Feb 08:33 README.md drwxr-xr-x 2 pi pi 4096 16. Mär 19:10 scripts drwxr-xr-x 6 pi pi 4096 18. Jun 04:58 test -rw-r--r-- 1 pi pi 605 21. Feb 08:33 tsconfig.json -rwxr-xr-x 1 pi pi 978 21. Feb 08:33 update.sh
eventuell kannst Du die Berechtungungen mit
chown -R pi:pi /opt/zigbee2mqtt
gerade ziehen. Weiss aber nicht was sonst schief gelaufen ist.
Schau auch mal, dass Dein opt Verzeichnis sauber ist. Das sollten nur die root Verzeichnisse deiner Produkte drin sein. Jedenfalls alles löschen - ausser iobroker (falls Du den schon installiert hast). Kein node_modules Verzeichnis und nichts.
Nur im Homeverzeichnis hat der pi user die Rechte und vergibt quasi bei Ausführen des git-clones die korrekten Berechtigungen.
Vor der Installation - würde ich aber gleich auf Nodejs 16 gehen, sonst darfst gleich nochmal installieren.
Nimm am Besten die Anleitung von @Thomas-Braun und ändere die Datei nodesource.list in /etc/apt/sources.list.d mit
sudo nano nodesource.list
ändere die 14 in 16.
pi@MWHome:/etc/apt/sources.list.d $ cat nodesource.list deb https://deb.nodesource.com/node_16.x bullseye main deb-src https://deb.nodesource.com/node_16.x bullseye main pi@MWHome:/etc/apt/sources.list.d $
dann führst Du als erstes ein
sudo apt update sudo apt upgrade
durch und Du bist auf aktuellen Versionen. Am Besten die Maschine nach dem Update neu starten. Wie gesagt, ich musste zigbee2mqtt updaten - nachdem ich nodejs hochgezogen hatte, deshalb solltest Du das zuerst machen.
-
@mickym sagte in ioBroker und Zigbee2Mqtt auf einem Raspberry Pi ?:
Meines Erachtens hast Du schon verkehrt angefangen, in dem Du die Befehle unter /opt ausgeführt hast. Das wird alles im Homeverzeichnis des pi durch geführt und dann ja verschoben.
Das Problem ist das git clone mit sudo... Dann gehört natürlich alles root:
@zickyzacky sagte in ioBroker und Zigbee2Mqtt auf einem Raspberry Pi ?:
pi@raspberrypi-iobroker:/ $ sudo git clone --depth 1 https://github.com/Koenkk/zigbee2mqtt.git
Warum nicht einfach an die Anleitung gehalten?! Dort wird es doch Schritt für Schritt erklärt.
-
@haus-automatisierung sagte in ioBroker und Zigbee2Mqtt auf einem Raspberry Pi ?:
Das Problem ist das git clone mit sudo... Dann gehört natürlich alles root:
Nun wahrscheinlich hat er sudo genommen, da pi keine Rechte im /opt, geschweige denn im / Verzeichnis hat.
- Insofern gibt sich eins das andere.
Wahrscheinlich ist nun im / auch irgendein Mist.
-
habe noch das Node Update auf 16 durchgeführt die Installation nochmal durchgeführt
pi@raspberrypi-iobroker:/opt/zigbee2mqtt $ npm start > zigbee2mqtt@1.25.2 start > node index.js Zigbee2MQTT:info 2022-06-27 19:40:03: Logging to console and directory: '/opt/zigbee2mqtt/data/log/2022-06-27.19-40-03' filename: log.txt Zigbee2MQTT:info 2022-06-27 19:40:03: Starting Zigbee2MQTT version 1.25.2 (commit #9b2a921) Zigbee2MQTT:info 2022-06-27 19:40:03: Starting zigbee-herdsman (0.14.34) Zigbee2MQTT:error 2022-06-27 19:41:09: Error while starting zigbee-herdsman Zigbee2MQTT:error 2022-06-27 19:41:09: Failed to start zigbee Zigbee2MQTT:error 2022-06-27 19:41:09: Check https://www.zigbee2mqtt.io/guide/installation/20_zigbee2mqtt-fails-to-start.html for possible solutions Zigbee2MQTT:error 2022-06-27 19:41:09: Exiting... Zigbee2MQTT:error 2022-06-27 19:41:09: Error: network commissioning timed out - most likely network with the same panId or extendedPanId already exists nearby at ZnpAdapterManager.beginCommissioning (/opt/zigbee2mqtt/node_modules/zigbee-herdsman/src/adapter/z-stack/adapter/manager.ts:347:23) at ZnpAdapterManager.start (/opt/zigbee2mqtt/node_modules/zigbee-herdsman/src/adapter/z-stack/adapter/manager.ts:92:17) at Controller.start (/opt/zigbee2mqtt/node_modules/zigbee-herdsman/src/controller/controller.ts:123:29) at Zigbee.start (/opt/zigbee2mqtt/lib/zigbee.ts:58:27) at Controller.start (/opt/zigbee2mqtt/lib/controller.ts:101:27) at start (/opt/zigbee2mqtt/index.js:109:5) pi@raspberrypi-iobroker:/opt/zigbee2mqtt $
Nach dem Start Befehl für Zigbee2MQTT habe ich diese Fehlermeldungen bekommen. Ich bin der Meinung der Dienst läuft noch nicht