Nachdem ich jetzt nach ein paar Hürden Zigbee2MQTT zum laufen bekam das nächste (kleine) Problem.
Ich bekomme es nicht in meinem PI 3 zum Autostart hinzugefügt.
Komisch ist auch das im manuellen start geht es nur mit sudo, sonst kommt auch eine Fehlermeldung.
sudo pnpm start
Das ist mein Start code.
Liegt das Problem irgendwo bei den Schreibrechten?
[Unit]
Description=zigbee2mqtt
After=network.target
[Service]
Environment=NODE_ENV=production
Type=notify
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 sys>
StandardError=inherit
WatchdogSec=10s
Restart=always
RestartSec=10s
User=pi
[Install]
WantedBy=multi-user.target
Das die Fehlermeldung:
pi@raspberrypicloud:~ $ sudo systemctl start zigbee2mqtt
Job for zigbee2mqtt.service failed because the control process exited with error code.
See "systemctl status zigbee2mqtt.service" and "journalctl -xeu zigbee2mqtt.service" for details.
Das ist die systemctl status zigbee2mqtt.service info:
pi@raspberrypicloud:~ $ systemctl status zigbee2mqtt.service
● zigbee2mqtt.service - zigbee2mqtt
Loaded: loaded (/etc/systemd/system/zigbee2mqtt.service; enabled; preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since Wed 2025-03-05 12:36:55 CET; 2s ago
Process: 2593 ExecStart=/usr/bin/npm start (code=exited, status=1/FAILURE)
Main PID: 2593 (code=exited, status=1/FAILURE)
CPU: 8.809s
Mar 05 12:36:55 raspberrypicloud systemd[1]: zigbee2mqtt.service: Failed with result 'exit-code'.
Mar 05 12:36:55 raspberrypicloud systemd[1]: Failed to start zigbee2mqtt.service - zigbee2mqtt.
Mar 05 12:36:55 raspberrypicloud systemd[1]: zigbee2mqtt.service: Consumed 8.809s CPU time.
Und das ist die journalctl -xeu zigbee2mqtt.service info:
pi@raspberrypicloud:~ $ journalctl -xeu zigbee2mqtt.service
Mar 05 12:38:11 raspberrypicloud systemd[1]: Starting zigbee2mqtt.service - zigbee2mqtt...
░░ Subject: A start job for unit zigbee2mqtt.service has begun execution
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░
░░ A start job for unit zigbee2mqtt.service has begun execution.
░░
░░ The job identifier is 3612.
Mar 05 12:38:12 raspberrypicloud npm[2701]: > zigbee2mqtt@2.1.3 start
Mar 05 12:38:12 raspberrypicloud npm[2701]: > node index.js
Mar 05 12:38:13 raspberrypicloud npm[2713]: Starting Zigbee2MQTT without watchdog.
Mar 05 12:38:17 raspberrypicloud npm[2713]: Error: EACCES: permission denied, mkdir '/opt/zigbee2mqtt/data/l>
Mar 05 12:38:17 raspberrypicloud npm[2713]: at Object.mkdirSync (node:fs:1372:26)
Mar 05 12:38:17 raspberrypicloud npm[2713]: at Logger.init (/opt/zigbee2mqtt/lib/util/logger.ts:75:16)
Mar 05 12:38:17 raspberrypicloud npm[2713]: at new Controller (/opt/zigbee2mqtt/lib/controller.ts:79:16)
Mar 05 12:38:17 raspberrypicloud npm[2713]: at start (/opt/zigbee2mqtt/index.js:159:18)
Mar 05 12:38:17 raspberrypicloud systemd[1]: zigbee2mqtt.service: Main process exited, code=exited, status=1>
░░ Subject: Unit process exited
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░
░░ An ExecStart= process belonging to unit zigbee2mqtt.service has exited.
░░
░░ The process' exit code is 'exited' and its exit status is 1.
Mar 05 12:38:17 raspberrypicloud systemd[1]: zigbee2mqtt.service: Failed with result 'exit-code'.
░░ Subject: Unit failed
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░
░░ The unit zigbee2mqtt.service has entered the 'failed' state with result 'exit-code'.
Mar 05 12:38:17 raspberrypicloud systemd[1]: Failed to start zigbee2mqtt.service - zigbee2mqtt.
░░ Subject: A start job for unit zigbee2mqtt.service has failed
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░
░░ A start job for unit zigbee2mqtt.service has finished with a failure.
░░
░░ The job identifier is 3612 and the job result is failed.
Mar 05 12:38:17 raspberrypicloud systemd[1]: zigbee2mqtt.service: Consumed 8.772s CPU time.
░░ Subject: Resources consumed by unit runtime
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░
░░ The unit zigbee2mqtt.service completed and consumed the indicated resources.
Was sagt die Logdatei von z2m selbst? Weiß grade nicht, wo die bei einer bare metal Installation standardmäßig gespeichert wird, weil ich es unter Docker betreibe. Da ist aber im gleichen Ordner wie die configuration.yaml ein Unterordner "log", der die ganzen Logdateien enthält.
Dass das sonst nur per sudo geht dürfte einigermaßen normal sein, weil wahrscheinlich dein regulärer Benutzer nicht die Berechtigung hat, z.B. auf den Zigbee-Stick zuzugreifen (oder so irgendwas).
Ob es sinnvoll ist, dass es nur als root geht?
Evtl. hilft es user=root statt user=pi in die Service-Datei einzutragen?
Gruß, Joachim
Mein Bauchgefühl sagt mir, dass die Zeile mit ExecStart= nicht passen könnte.
Probier mal mit /usr/bin/node anstatt npm
Siehe auch hier: https://www.zigbee2mqtt.io/guide/installation/01_linux.html#optional-running-as-a-daemon-with-systemctl
Riesen Dank euch allen.
@passibe > die Logdatei habe ich noch nicht gefunden, denke aber fast nicht das es an z2m liegt. Manueller start geht ja problemlos.
@MadMax-FHEM > hatte ich heute morgen und jetzt auch noch mal getestet, leider nein
@ betateilchen > das waren die Original settings, ging auch nicht, habe irgendwo in einem Forum gefunden das wohl npm start die Lösung sein soll.
Egal was ich mache beim starten von:
sudo nano /etc/systemd/system/zigbee2mqtt.service
pi@raspberrypicloud:~ $ sudo systemctl start zigbee2mqt
Failed to start zigbee2mqt.service: Unit zigbee2mqt.service not found.
kommt dieses, habe schon 20 verschiedene Kombis der .service getestet :).
Zitat von: Brad Majors am 05 März 2025, 14:28:51Failed to start zigbee2mqt.service: Unit zigbee2mqt.service not found.
Ist der Service enabled/aktiviert?
Wobei es hier doch schon anders war:
Zitat von: Brad Majors am 05 März 2025, 12:41:02pi@raspberrypicloud:~ $ sudo systemctl start zigbee2mqtt
Ah: mqt vs. mqtt
Gruß, Joachim
Zitat von: Brad Majors am 05 März 2025, 14:28:51@ betateilchen > das waren die Original settings, ging auch nicht, habe irgendwo in einem Forum gefunden das wohl npm start die Lösung sein soll.
Es ist halt schwierig, wenn man überhaupt keine Ahnung davon hat, was man eigentlich tut.
npm ist ein Paketmanager (genau wie pnpm). Der Paketmanager kann keine "index.js" ausführen.
Das ist ungefähr so, als würdest Du versuchen, Dein FHEM mit
apt fhem.pl fhem.cfg
zu starten, was logischerweise - und aus dem gleichen Grund - auch nicht funktionieren würde.
Davon abgesehen:
Wenn auf der Webseite des Projekts "zigbee2mqtt" das service-File so angegeben ist, dass dort node aufgerufen wird, würde ich das immer eher glauben als irgendwelchen Tipps in 3rd-party-Foren.
Dass du Dich beim Eintippen der Befehle schon vertan und ein t zu wenig eingegeben hast, hatte ja Joachim schon geschrieben.
Nach einem Logfile brauchst Du nicht zu suchen, dass das nicht vorhanden ist, steht ja schon in Deinem ersten Beitrag:
Zitat
Mar 05 12:38:17 raspberrypicloud npm[2713]: Error: EACCES: permission denied, mkdir '/opt/zigbee2mqtt/data/l>
Mar 05 12:38:17 raspberrypicloud npm[2713]: at Object.mkdirSync (node:fs:1372:26)
Mar 05 12:38:17 raspberrypicloud npm[2713]: at Logger.init (/opt/zigbee2mqtt/lib/util/logger.ts:75:16)
Was ich Dir vorschlagen würde:
Fang nochmal von vorne an und halte Dich strikt an die Anleitung auf zigbee2mqtt.io.
Zitat von: betateilchen am 05 März 2025, 20:53:08Nach einem Logfile brauchst Du nicht zu suchen, dass das nicht vorhanden ist, steht ja schon in Deinem ersten Beitrag:
Huch. Das habe ich glatt überlesen. Sorry :D
@Brad Majors
Ich denke, in deinem Startcode sollte so aussehen, wenn du mit User=pi arbeitest.
ExecStart=/usr/bin/sudo pnpm start
Da du ja auch sonst mit
sudo pnpm start
startest.
Gruß LuGu