NEWS
Zigbee2MQTT Build Fehler
-
viell. kannst du mir auf die schnelle weiterhelfen.
wollte gerade mein System updaten wie gewohnt und den zigbee2mqtt adapter.
Nun erhalte ich beim Ausführen des Befehls npm ci folgenden Fehler:pi4b@pi4b:/opt/zigbee2mqtt$ npm ci npm error code EUSAGE npm error npm error The `npm ci` command can only install with an existing package-lock.json or npm error npm-shrinkwrap.json with lockfileVersion >= 1. Run an install with npm@5 or npm error later to generate a package-lock.json file, then try again. npm error npm error Clean install a project npm error npm error Usage: npm error npm ci npm error npm error Options: npm error [--install-strategy <hoisted|nested|shallow|linked>] [--legacy-bundling] npm error [--global-style] [--omit <dev|optional|peer> [--omit <dev|optional|peer> ...]] npm error [--include <prod|dev|optional|peer> [--include <prod|dev|optional|peer> ...]] npm error [--strict-peer-deps] [--foreground-scripts] [--ignore-scripts] [--no-audit] npm error [--no-bin-links] [--no-fund] [--dry-run] npm error [-w|--workspace <workspace-name> [-w|--workspace <workspace-name> ...]] npm error [-ws|--workspaces] [--include-workspace-root] [--install-links] npm error npm error aliases: clean-install, ic, install-clean, isntall-clean npm error npm error Run "npm help ci" for more info npm error A complete log of this run can be found in: /home/pi4b/.npm/_logs/2024-12-05T19_59_47_899Z-debug-0.log
was ist den nun schon wieder verbogen im System?
Gruß
-
@diamand2k22 öhm, warum gibst du
npm
Befehle ein? -
@diamand2k22 sagte in Zigbee2MQTT Build Fehler:
und den zigbee2mqtt adapter
Davon hab ich keine Ahnung, weil nicht im Einsatz.
Da scheinen mir aber veraltete Versionen im Spiel zu sein.Sicher, dass man das so überhaupt installiert und aktuell hält?
-
Für zigbee2mqtt gibts ein eigenes Script im zigbee Verzeichnis. Mit dem user ausführen, mit dem man installiert hat. Und Adapter updated man ganz normal im Admin.
Warum liest man die Doku nicht?
https://www.zigbee2mqtt.io/guide/installation/01_linux.html#for-later-update-zigbee2mqtt-to-the-latest-version -
ja die install anleitung ist von zigbee2mqtt.io.
ich installier immer den dev branch.soll ich es mal mit npm install probieren in dem zigbee Ordner? dann sollten zumindest mal die npm depencies aktualisiert werden oder?
@mickym
das Skript funktioniert bei mir nicht, da er nie die Unterschiede auflösen kann. -
@diamand2k22 Versteh ich zwar nicht - dann ist die Installation komisch. Dann würde ich lieber neu installieren und ggf. das data Verzeichnis retten. Wenn das update Skript nicht klappt - führst Du es ggf. unter dem falschen User aus. Der User der richtig ist, siehst Du an den Rechten der Dateien.
-
das data Verzeichnis habe ich wegkopiert, inwiefern meinst du neu installieren?
-
@diamand2k22 Nun ich würde mich halt das Verzeichnis nochmal komplett löschen und neu installieren, nach Anleitung:
https://www.zigbee2mqtt.io/guide/installation/01_linux.html#installingNodejs brauchst ja nicht, das hast ja schon. Zum Schluss halt das data Verzeichnis wieder zurückkopieren (und auf die Rechte achten).
Oder halt das Update Skript nochmal mit dem richtigen User ausführen:
Bei mir ist es der user mwadmin - wie gesagt schauen, welcher User die Rechte hat.
-
hab gerade die update.sh mit dem entsprechenden User probiert, dann kommt das hier
pi4b@pi4b:/opt/zigbee2mqtt$ /opt/zigbee2mqtt/update.sh Checking Zigbee2MQTT status... Updating... Bereits aktuell. Installing dependencies... /opt/zigbee2mqtt/update.sh: Zeile 21: pnpm: Kommando nicht gefunden. pi4b@pi4b:/opt/zigbee2mqtt$
wahrscheinlich hat es das npm zerschossen...
-
@diamand2k22 Na dann schau mal, ob die Rechte bzw. alle Dateien dem User gehören unter dem der Service läuft. Ansonten lösch das Verzeichnis und installiere neu - das data Verzeichnis hast Du ja wegkopiert und da ist Deine Konfig drin.
Um sicher zu gehen, dass Du den richtigen User hast, schau Dir mit
systemctl status zigbee2mqtt
den Service an.
Du solltest so eine Ausgabe bekommen:
mwadmin@mwzigbee2mqtt:/lib/systemd/system$ systemctl status zigbee2mqtt ● zigbee2mqtt.service - zigbee2mqtt Loaded: loaded (/lib/systemd/system/zigbee2mqtt.service; enabled; preset: enabled) Active: active (running) since Wed 2024-12-04 14:07:38 CET; 1 day 7h ago Main PID: 121 (npm start) Tasks: 23 (limit: 9189) Memory: 190.1M CPU: 36min 17.701s CGroup: /system.slice/zigbee2mqtt.service ├─121 "npm start" ├─286 sh -c "node index.js" └─287 node index.js
Dort siehst Du auch den Pfad zur Konfig:
/lib/systemd/system/zigbee2mqtt.service
Dort siehst Du unter welchem User der Service läuft und NUR mit diesem darfst Du arbeiten:
cat zigbee2mqtt.service [Unit] Description=zigbee2mqtt After=network.target [Service] Environment=NODE_ENV=production Type=exec 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=mwadmin [Install] WantedBy=multi-user.target mwadmin@mwzigbee2mqtt:/lib/systemd/system$
Also:
-
@diamand2k22 sagte in Zigbee2MQTT Build Fehler:
wahrscheinlich hat es das npm zerschossen...
pnpm ist nicht npm. Setzt aber mindestens nodejs>=18.12 voraus.
-
pi4b@pi4b:~$ 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 Thu 2024-12-05 21:45:00 CET; 3s ago Process: 1058968 ExecStart=/usr/bin/npm start (code=exited, status=1/FAILURE) Main PID: 1058968 (code=exited, status=1/FAILURE)
das ist Ausgabe
-
@diamand2k22 Dann läuft Dein Service gar nicht. Entweder kommt unten noch ein Fehler oder Du schaust mit journalctl was der Fehler ist. - Wie gesagt ich würde neu installieren nach Anleitung.
Aussehen muss der Service wie bei mir. Aber im jetzigen Zustand läuft dein zigbee2mqtt gar nicht.
-
ok...jetzt bin ich schon mal weiter!
pi4b@pi4b:~$ node --version v20.18.1 pi4b@pi4b:~$ npm --version 10.8.2 pi4b@pi4b:~$ sudo mkdir /opt/zigbee2mqtt pi4b@pi4b:~$ sudo chown -R pi4b:pi4b /opt/zigbee2mqtt pi4b@pi4b:~$ sudo chmod -R 755 /opt/zigbee2mqtt pi4b@pi4b:~$ git clone --depth 1 https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt Klone nach '/opt/zigbee2mqtt'... remote: Enumerating objects: 143, done. remote: Counting objects: 100% (143/143), done. remote: Compressing objects: 100% (138/138), done. remote: Total 143 (delta 7), reused 62 (delta 1), pack-reused 0 (from 0) Empfange Objekte: 100% (143/143), 572.27 KiB | 1.50 MiB/s, fertig. Löse Unterschiede auf: 100% (7/7), fertig. pi4b@pi4b:~$ cd /opt/zigbee2mqtt pi4b@pi4b:/opt/zigbee2mqtt$ npm ci npm warn deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. npm warn deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported added 646 packages, and audited 647 packages in 22s 90 packages are looking for funding run `npm fund` for details found 0 vulnerabilities pi4b@pi4b:/opt/zigbee2mqtt$ npm run build > zigbee2mqtt@1.42.0 build > tsc && node index.js writehash pi4b@pi4b:/opt/zigbee2mqtt$
jetzt start ich mal den service....
-
@diamand2k22 Erst mal starten und wie Du den Service einrichtest, siehst Du ja hier: https://www.zigbee2mqtt.io/guide/installation/01_linux.html#optional-running-as-a-daemon-with-systemctl
Wenn Du es richtig gemacht hast, dann sollten Deine Dateien alle dem User pi gehören.
-
sieht wieder gut aus
pi4b@pi4b:/opt/zigbee2mqtt$ sudo chown -R pi4b:pi4b /opt/zigbee2mqtt pi4b@pi4b:/opt/zigbee2mqtt$ sudo chmod -R 755 /opt/zigbee2mqtt pi4b@pi4b:/opt/zigbee2mqtt$ sudo systemctl start zigbee2mqtt pi4b@pi4b:/opt/zigbee2mqtt$ systemctl status zigbee2mqtt.service ● zigbee2mqtt.service - zigbee2mqtt Loaded: loaded (/etc/systemd/system/zigbee2mqtt.service; enabled; preset: enabled) Active: active (running) since Thu 2024-12-05 21:53:34 CET; 6s ago Main PID: 1059382 (npm start) Tasks: 23 (limit: 8754) CPU: 8.916s CGroup: /system.slice/zigbee2mqtt.service ├─1059382 "npm start" ├─1059393 sh -c "node index.js" └─1059394 node index.js Dez 05 21:53:34 pi4b systemd[1]: Started zigbee2mqtt.service - zigbee2mqtt. Dez 05 21:53:35 pi4b npm[1059382]: > zigbee2mqtt@1.42.0 start Dez 05 21:53:35 pi4b npm[1059382]: > node index.js Dez 05 21:53:35 pi4b npm[1059394]: Starting Zigbee2MQTT without watchdog. pi4b@pi4b:/opt/zigbee2mqtt$
-
@diamand2k22 Ja das sieht gut aus und nun hast Du ja automatisch die aktuellste Version. Und in Zukunft nur das Skript ./update.sh im zigbee2mqtt unter dem User PI ausführen.
Wenn Du das data Verzeichnis zurückkopierst, schauen dass die Rechte alle dem User pi gehören.
-
passt, danke dir für deine Hilfe!
bist jetzt hab ich immer den DEV Branch genutzt, weil teilweise Geräte noch nicht im Stable Repository drin waren.
Das habe ich dann immer wie folgt installiert (bisher ohne Probleme). Grund für die Installationsweise ist, das er bei mir nie die Unterschiede auflösen kann, auch mit dem entsprechenden User.DEV Branch: sudo systemctl stop zigbee2mqtt sudo rm -r /opt/zigbee2mqtt sudo mkdir /opt/zigbee2mqtt sudo chown -R pi4b:pi4b /opt/zigbee2mqtt sudo chmod -R 755 /opt/zigbee2mqtt git clone --depth 1 https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt cd /opt/zigbee2mqtt git fetch origin dev git config --get remote.origin.fetch git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*" git fetch --all git checkout dev npm ci npm run build sudo systemctl start zigbee2mqtt