Zigbee2MQTT Installation fehlgeschlagen

Begonnen von Fabiango, 24 Februar 2025, 21:45:41

Vorheriges Thema - Nächstes Thema

Fabiango

Liebe FHEM Freunde,

ich wollte heute das Zigbee2MQTT auf Version 2.1.1 updaten.
Das Update des Sonoff Connectos hatte davor geklappt damit dieser aktuell ist.

Nach dem Update mittels "./update.sh" habe ich Z2M nicht mehr zum laufen gebracht.
Daher wollte ich nun Z2M komplett löschen und habe den Hauptordner "/opt/zigbee2mqtt" komplett gelöscht.

Nach einem Neustart wollte ich dann Z2M nach der originalen Anleitung installieren.
Jedoch bekomme ich beim starten von Zigbee2MQTT folgende Fehlermeldung:
root@Raspberry-PI:/opt/zigbee2mqtt# pnpm start

> zigbee2mqtt@2.1.1 start /opt/zigbee2mqtt
> node index.js

node:internal/modules/cjs/loader:1228
  throw err;
  ^

Error: Cannot find module 'semver'
Require stack:
- /opt/zigbee2mqtt/index.js
    at Module._resolveFilename (node:internal/modules/cjs/loader:1225:15)
    at Module._load (node:internal/modules/cjs/loader:1051:27)
    at Module.require (node:internal/modules/cjs/loader:1311:19)
    at require (node:internal/modules/helpers:179:18)
    at Object.<anonymous> (/opt/zigbee2mqtt/index.js:1:16)
    at Module._compile (node:internal/modules/cjs/loader:1469:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1548:10)
    at Module.load (node:internal/modules/cjs/loader:1288:32)
    at Module._load (node:internal/modules/cjs/loader:1104:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:173:12) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [ '/opt/zigbee2mqtt/index.js' ]
}

Node.js v20.18.3
 ELIFECYCLE  Command failed with exit code 1.


Folgende Befehle habe ich dafür ausgeführt
1.  sudo curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
2.  sudo apt-get install -y nodejs git make g++ gcc libsystemd-dev
3.  npm install -g pnpm
4. sudo mkdir /opt/zigbee2mqtt
5. git clone --depth 1 https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt
6. cd /opt/zigbee2mqtt
7. pnpm i --frozen-lockfile
8. pnpm run build
9. Die Konfig bearbeitet: nano /opt/zigbee2mqtt/data/configuration.yaml
10. cd /opt/zigbee2mqtt
11. pnpm start

Kann mir jermand bei der Fehlersuche helfen damit ich das Z2M wieder zum laufen bekomme?

Danke für eure Hilfe.


Gruss, Fabian

Fabiango

Mittlerweile bin ich einen Schritt weiter und bekomme folgenden Fehler.
Jemand eine Idee ?? (bin leider mit meinem latein am Ende)

Versucher aktuell nur mal mit der Standard Config Datei zu starten.


pi@Raspberry-PI:/opt/zigbee2mqtt $ pnpm start

> zigbee2mqtt@2.1.1 start /opt/zigbee2mqtt
> node index.js

Starting Zigbee2MQTT without watchdog.
[2025-02-24 23:22:22] info:     z2m: Logging to console, file (filename: log.log)
[2025-02-24 23:22:22] info:     z2m: Starting Zigbee2MQTT version 2.1.1 (commit #1accb8b)
[2025-02-24 23:22:22] info:     z2m: Starting zigbee-herdsman (3.2.5)
[2025-02-24 23:22:22] info:     zh:adapter:discovery: Matched adapter: {"path":"/dev/ttyUSB0","manufacturer":"ITead","serialNumber":"a88d2547ba45ed11adb3ca8f0a86e0b4","pnpId":"usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_a88d2547ba45ed11adb3ca8f0a86e0b4-if00-port0","vendorId":"10c4","productId":"ea60"} => zstack: path=/dev/ttyUSB0, score=4
[2025-02-24 23:22:22] info:     zh:zstack:znp: Opening SerialPort with {"path":"/dev/ttyUSB0","baudRate":115200,"rtscts":false,"autoOpen":false}
[2025-02-24 23:22:22] error:    z2m: Error while starting zigbee-herdsman
[2025-02-24 23:22:22] error:    z2m: Failed to start zigbee-herdsman
[2025-02-24 23:22:22] error:    z2m: Check https://www.zigbee2mqtt.io/guide/installation/20_zigbee2mqtt-fails-to-start_crashes-runtime.html for possible solutions
[2025-02-24 23:22:22] error:    z2m: Exiting...
[2025-02-24 23:22:22] error:    z2m: Error: Error Resource temporarily unavailable Cannot lock port
 ELIFECYCLE  Command failed with exit code 1.
pi@Raspberry-PI:/opt/zigbee2mqtt $

MadMax-FHEM

Naja herdsman startet nicht, vermutlich hast du eindn anderen "Funk-Stick" als den in der Standard-Config angegebenen...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

betateilchen

Hilfreich für die Fehlersuche wäre es, wenn Du mal den Teil der configuration.yaml posten würdest, in dem Du den seriellen Adapter angegeben hast.

Meine Vermutung: da fehlt die Angabe des Adaptertyps "adapter: zstack" und ein gefundener Stick wird nicht identifiziert. Gerade bei z2m in der verwendeten Version 2.1.1 ist der Eintrag wichtig.

Bei mir sieht der Abschnitt so aus und funktioniert:

version: 4
serial:
  port: >-
    /dev/serial/by-id/usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_987dce184bbeed11b7ab642e38a92db5-if00-port0
  adapter: zstack
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Fabiango

Hallo zusammen,
danke für eure Hinweise zum Stick.
In der Config hatte ich jeweils den Stick in verschiedenen Varianten eingegeben, und auch die Modifikationen ab V2.0 eingetragen. > Keine Verbesserung.

Habe nun nochmals alles deinstalliert und neu installiert und auch die Firmware vom Stick nochmals neu aufgespielt.
Jetzt läuft das System wieder. auch wenn ich am Ende leider nicht weiss an was es gelegen hat.

Viele Grüsse,
Fabian

betateilchen

Gut, dass es jetzt läuft. Aber erkläre jetzt Du mir mal bitte was.


Zitat von: Fabiango am 25 Februar 2025, 17:39:37und auch die Firmware vom Stick nochmals neu aufgespielt.

Du benutzt den gleichen Stick (Typ) wie ich:

Deiner: usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_a88..-if00-port0
Meiner: usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_987..-if00-port0

aber ich habe auf meinen Stick noch nie irgendeine Firmware aufgespielt. Auspacken, anstecken, läuft. Und das in mehreren Installationen.

Was versprichst Du Dir von irgendeiner Firmware-Änderung?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Fabiango

#6
Hallo betateilchen,
In einem Forum habe ich gelesen das man bevor man auf Zigbee2Mqtt Version 2 upgraded die Firmware vom Stick aktualisieren sollte. Un meine Firmware war von 2021 und die neuste Version ist von 2024. Daher das Firmware Upgrade.

WEITERER FEHLER > Kann ich auf eurer Schwarmwissen zugreifen?

Nach dem die Installation die Woche sehr gut gelaufen ist startet das Zigbee2Mqtt seit heute nicht mehr.
Im Log von Z2M via SSH bekomme ich folgende Meldung.
Mär 02 09:25:25 Raspberry-PI systemd[1]: zigbee2mqtt.service: Scheduled restart job, restart counter is at 29.
Mär 02 09:25:25 Raspberry-PI systemd[1]: Stopped zigbee2mqtt.
Mär 02 09:25:25 Raspberry-PI systemd[1]: zigbee2mqtt.service: Consumed 6.359s CPU time.
Mär 02 09:25:25 Raspberry-PI systemd[1]: Starting zigbee2mqtt...
Mär 02 09:25:26 Raspberry-PI node[2099]: Starting Zigbee2MQTT without watchdog.
Mär 02 09:25:30 Raspberry-PI node[2099]: Error: EACCES: permission denied, unlink '/opt/zigbee2mqtt/data/log/2025-02-24.23-51-07/log.log'
Mär 02 09:25:30 Raspberry-PI node[2099]:     at unlinkSync (node:fs:1886:11)
Mär 02 09:25:30 Raspberry-PI node[2099]:     at _unlinkSync (node:internal/fs/rimraf:216:14)
Mär 02 09:25:30 Raspberry-PI node[2099]:     at rimrafSync (node:internal/fs/rimraf:197:7)
Mär 02 09:25:30 Raspberry-PI node[2099]:     at node:internal/fs/rimraf:255:9
Mär 02 09:25:30 Raspberry-PI node[2099]:     at Array.forEach (<anonymous>)
Mär 02 09:25:30 Raspberry-PI node[2099]:     at _rmdirSync (node:internal/fs/rimraf:252:7)
Mär 02 09:25:30 Raspberry-PI node[2099]:     at rimrafSync (node:internal/fs/rimraf:195:7)
Mär 02 09:25:30 Raspberry-PI node[2099]:     at rmSync (node:fs:1264:10)
Mär 02 09:25:30 Raspberry-PI node[2099]:     at rimrafNativeSync (/opt/zigbee2mqtt/node_modules/.pnpm/rimraf@6.0.1/node_modules/rimraf/src/rimraf-native.ts:21:9)
Mär 02 09:25:30 Raspberry-PI node[2099]:     at /opt/zigbee2mqtt/node_modules/.pnpm/rimraf@6.0.1/node_modules/rimraf/src/index.ts:78:21
Mär 02 09:25:30 Raspberry-PI systemd[1]: zigbee2mqtt.service: Main process exited, code=exited, status=1/FAILURE
Mär 02 09:25:30 Raspberry-PI systemd[1]: zigbee2mqtt.service: Failed with result 'exit-code'.
Mär 02 09:25:30 Raspberry-PI systemd[1]: Failed to start zigbee2mqtt.
Mär 02 09:25:30 Raspberry-PI systemd[1]: zigbee2mqtt.service: Consumed 6.438s CPU time.
Mär 02 09:25:40 Raspberry-PI systemd[1]: zigbee2mqtt.service: Scheduled restart job, restart counter is at 30.


Ein Update von Z2M habe ich schon durchgeführt ohne Fehler, aber startet trotzdem nicht.
Auch der Sonoff Dongle wird erkannt
root@Raspberry-PI:~# ls -la /dev/serial/by-id/
insgesamt 0
drwxr-xr-x 2 root root 80  2. Mär 09:17 .
drwxr-xr-x 4 root root 80  2. Mär 09:17 ..
lrwxrwxrwx 1 root root 13  2. Mär 09:17 usb-busware.de_CUL868-if00 -> ../../ttyACM0
lrwxrwxrwx 1 root root 13  2. Mär 09:17 usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_a88d2547ba45ed11adb3ca8f0a86e0b4-if00-port0 -> ../../ttyUSB0

Scheint mir ein Berechtigungsproblem zu sein. Hier kenne ich mich noch nicht gut aus.
Kann mir hier jemand helfen?

Vielleicht kann mir einer sagen wie ich pnpm, npm, z2m alles richtig deinstalliere?

Danke für eure Hilfe.

Fabiango

Habe nun mein Raspberry per Restore wieder komplett hergestellt und alles getestet.
Zigbee2Mqtt läuft nun wieder Stabil mit der Version 1.33.0

Da ich jedoch neue Geräte habe müsste ich auf die Version 2.1 bzw. aktuelle Z2M Version aktualisieren.

Kann mir jemand Step by Step erklären wie ich Vorgehen muss und wo ich was ergänzen muss bzw. auch was neu zu installieren ist?

Viele Grüsse,
Fabian

Jamo

Um auf die aktuelle Z2M Version zu aktualisieren, muss man in
/opt/zigbee2mqtt das update script anstossen, als der user mit dem man zigbee2mqtt installiert hat.
also:
cd ./opt/zigbee2mqtt
./update.sh

Falls irgendwas gebraucht wird, sagt einem das script Bescheid.
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/Conbee III, FB7690, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack, Sonos, ESPresence

Fabiango

Hallo Jamo,

das Vorgehen wie du es beschreibst ist ja das normale Update.
Auf die Version 2 muss man doch einige Sachen ändern in der Konfig?

Jamo

Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/Conbee III, FB7690, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack, Sonos, ESPresence

Fabiango

Nach der Anleitung bin ich vorgegangen und hab dann nichts mehr zum laufen gebracht.
Könntest du mir sagen wie du Schritt für Schritt vorgegangen bist?

Jamo

#12
Ich habe zuerst alle Änderungen gemacht, wie in dem link beschrieben. https://github.com/Koenkk/zigbee2mqtt/discussions/24198

Dann ./update unter /opt/zigbee2mqtt

Dann lief es erst auch nicht, wenn ich mich richtig erinnere, musste ich im /opt/zigbee2mqtt/data/configuration.yaml unter serial noch zusaetzlich den adapter mit angeben, der bei mir anscheinend noch gefehlt hatte.

serial:
   adapter: zstack

Danach lief es dann.
Ansonsten die Fehlermeldungen analysieren, die kommen, wenn man 'sudo service zigbee2mqtt status' eingibt.
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/Conbee III, FB7690, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack, Sonos, ESPresence

Fabiango

#13
hast in deiner Configuration Datei den Adapter wie eingegeben?

so (Version 1)
serial:
    adapter: zstack
    port: /dev/serial/by-id/usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_16937884d19ded11887ecfa5a7669f5d-if00-port0

oder so (Version 2)
serial:
  adapter: zstack
  port: /dev/ttyUSB0

Hast du auch die folgenden Anweisungen befolgt?
(Bare-metal installations (no Docker/Home Assistant add-on)) > Wichtig bei Installation auf Raspberry ??
To fix this, update by executing:

git checkout data/configuration.example.yaml
mv data/configuration.yaml data/configuration.yaml.bak
./update.sh # (update as you usually do)
mv data/configuration.yaml.bak data/configuration.yaml

pnpm is now used instead of npm, the installation instructions and update.sh script has been updated accordingly.
For existing installations you need to execute
npm install -g pnpm   before updating.
Before using the    ./update.sh    script, make sure you pull changes from git with
git pull --no-rebase      (after stopping Zigbee2MQTT).
If Zigbee2MQTT fails to start because of missing files after the update, run
pnpm run clean     , then start Zigbee2MQTT again.

Das sind noch so meine offenen Fragen die mir im Kopf rum gehen.


Hab mal nun ein Versuch gestartet das Update wieder durchzuführen.
Endete leider wieder bei Fehlern und bin langsam am verzweifeln.
Hier der Verlauf von SSH inkl. den Fehlern.
login as: pi
pi@192.168.177.36's password:
Linux Raspberry-PI 6.1.21-v7+ #1642 SMP Mon Apr  3 17:20:52 BST 2023 armv7l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Mon Mar  3 16:48:40 2025

Wi-Fi is currently blocked by rfkill.
Use raspi-config to set the country before use.

pi@Raspberry-PI:~ $ cd /opt/zigbee2mqtt
pi@Raspberry-PI:/opt/zigbee2mqtt $ git pull --no-rebase
remote: Enumerating objects: 6010, done.
remote: Counting objects: 100% (2018/2018), done.
remote: Compressing objects: 100% (95/95), done.
remote: Total 6010 (delta 1969), reused 1930 (delta 1922), pack-reused 3992 (from 3)
Empfange Objekte: 100% (6010/6010), 3.79 MiB | 3.76 MiB/s, fertig.
Löse Unterschiede auf: 100% (4523/4523), abgeschlossen mit 116 lokalen Objekten.
Von https://github.com/Koenkk/zigbee2mqtt
   4d53ac4c..ba337bd3  master          -> origin/master
   a7bb3fc9..11fb858f  dev             -> origin/dev
 * [neuer Branch]      feat/ota-update-check-all -> origin/feat/ota-update-check-all
 * [neuer Branch]      fix/alpine.3.21 -> origin/fix/alpine.3.21
 * [neuer Branch]      release-please--branches--dev--components--zigbee2mqtt -> origin/release-please--branches--dev--components--zigbee2mqtt
 * [neuer Branch]      release-please--branches--dev--components--zigbee2mqtt--release-notes -> origin/release-please--branches--dev--components--zigbee2mqtt--release-notes
 * [neues Tag]         2.1.3           -> 2.1.3
 * [neues Tag]         1.33.1          -> 1.33.1
 * [neues Tag]         1.33.2          -> 1.33.2
 * [neues Tag]         1.34.0          -> 1.34.0
 * [neues Tag]         1.35.0          -> 1.35.0
 * [neues Tag]         1.35.1          -> 1.35.1
 * [neues Tag]         1.35.2          -> 1.35.2
 * [neues Tag]         1.35.3          -> 1.35.3
 * [neues Tag]         1.36.0          -> 1.36.0
 * [neues Tag]         1.36.1          -> 1.36.1
 * [neues Tag]         1.37.0          -> 1.37.0
 * [neues Tag]         1.37.1          -> 1.37.1
 * [neues Tag]         1.38.0          -> 1.38.0
 * [neues Tag]         1.39.0          -> 1.39.0
 * [neues Tag]         1.39.1          -> 1.39.1
 * [neues Tag]         1.40.0          -> 1.40.0
 * [neues Tag]         1.40.1          -> 1.40.1
 * [neues Tag]         1.40.2          -> 1.40.2
 * [neues Tag]         1.41.0          -> 1.41.0
 * [neues Tag]         1.42.0          -> 1.42.0
 * [neues Tag]         2.0.0           -> 2.0.0
 * [neues Tag]         2.1.0           -> 2.1.0
 * [neues Tag]         2.1.1           -> 2.1.1
 * [neues Tag]         2.1.2           -> 2.1.2
Aktualisiere 4d53ac4c..ba337bd3
error: Ihre lokalen Änderungen in den folgenden Dateien würden durch den Merge
überschrieben werden:
        data/configuration.yaml
Bitte committen oder stashen Sie Ihre Änderungen, bevor Sie mergen.
Abbruch
pi@Raspberry-PI:/opt/zigbee2mqtt $ git checkout data/configuration.example.yaml
1 Pfad vom Index aktualisiert
pi@Raspberry-PI:/opt/zigbee2mqtt $ mv data/configuration.yaml data/configuration.yaml.bak
pi@Raspberry-PI:/opt/zigbee2mqtt $ git pull --no-rebase
Aktualisiere 4d53ac4c..ba337bd3
Fast-forward
 .eslintignore                                      |     2 -
 .eslintrc.js                                       |    46 -
 .github/FUNDING.yml                                |     4 +-
 .github/ISSUE_TEMPLATE/config.yml                  |    36 +-
 .github/ISSUE_TEMPLATE/feature_request.yaml        |    68 +-
 .github/ISSUE_TEMPLATE/new_device_support.yaml     |   104 +-
 .github/ISSUE_TEMPLATE/problem_report.yaml         |   135 +-
 .github/ISSUE_TEMPLATE/wrong_device.yaml           |   120 +-
 .github/dependabot.yml                             |    20 +-
 .github/workflows/ci.yml                           |   286 +-
 .github/workflows/codeql.yaml                      |   107 +-
 .github/workflows/deps_review.yaml                 |    16 +-
 .github/workflows/fail_pr_to_master.yaml           |    19 +
 .github/workflows/ghcr_cleanup.yml                 |    54 +-
 .github/workflows/merge_master_to_dev.yml          |    28 +-
 .github/workflows/release_please.yml               |   168 +-
 .github/workflows/stale.yml                        |    30 +-
 .github/workflows/update_dep.yml                   |    63 +-
 .github/workflows/update_deps.yml                  |    55 +-
 .gitignore                                         |    21 +-
 .npmignore                                         |     1 +
 .prettierignore                                    |     2 +
 .prettierrc                                        |    28 +
 .release-please-manifest.json                      |     5 +-
 CHANGELOG.md                                       |  1237 +-
 CODE_OF_CONDUCT.md                                 |    23 +-
 CONTRIBUTING.md                                    |     6 +-
 README.md                                          |    31 +-
 babel.config.js                                    |    11 -
 data/configuration.example.yaml                    |    55 +-
 data/configuration.yaml                            |    20 -
 docker/Dockerfile                                  |    53 +-
 docker/docker-compose.yml                          |    26 +-
 eslint.config.mjs                                  |    32 +
 images/logo_vector.svg                             |   121 +-
 index.js                                           |    99 +-
 lib/controller.ts                                  |   268 +-
 lib/eventBus.ts                                    |    98 +-
 lib/extension/availability.ts                      |   207 +-
 lib/extension/bind.ts                              |   660 +-
 lib/extension/bridge.ts                            |   802 +-
 lib/extension/configure.ts                         |   104 +-
 lib/extension/extension.ts                         |    18 +-
 lib/extension/externalConverters.ts                |    77 +-
 lib/extension/externalExtension.ts                 |   109 -
 lib/extension/externalExtensions.ts                |    59 +
 lib/extension/externalJS.ts                        |   191 +
 lib/extension/frontend.ts                          |   203 +-
 lib/extension/groups.ts                            |   488 +-
 lib/extension/homeassistant.ts                     |  2619 +--
 lib/extension/legacy/bridgeLegacy.ts               |   456 -
 lib/extension/legacy/deviceGroupMembership.ts      |    56 -
 lib/extension/legacy/report.ts                     |   194 -
 lib/extension/legacy/softReset.ts                  |    62 -
 lib/extension/networkMap.ts                        |   310 +-
 lib/extension/onEvent.ts                           |    49 +-
 lib/extension/otaUpdate.ts                         |   359 +-
 lib/extension/publish.ts                           |   265 +-
 lib/extension/receive.ts                           |   128 +-
 lib/model/device.ts                                |   134 +-
 lib/model/group.ts                                 |    42 +-
 lib/mqtt.ts                                        |   164 +-
 lib/state.ts                                       |    49 +-
 lib/types/api.ts                                   |   687 +
 lib/types/mkdir-recursive.ts                       |     3 -
 lib/types/types.d.ts                               |   434 +-
 lib/types/zigbee-herdsman-converters.d.ts          |     9 -
 lib/types/zigbee2mqtt-frontend.d.ts                |    15 +-
 lib/util/data.ts                                   |    22 +-
 lib/util/logger.ts                                 |   428 +-
 lib/util/settings.schema.json                      |  1742 +-
 lib/util/settings.ts                               |   530 +-
 lib/util/settingsMigration.ts                      |   586 +
 lib/util/utils.ts                                  |   417 +-
 lib/util/yaml.ts                                   |    33 +-
 lib/zigbee.ts                                      |   227 +-
 package-lock.json                                  | 16913 -------------------
 package.json                                       |   210 +-
 pnpm-lock.yaml                                     |  3529 ++++
 release-please-config.json                         |    25 +-
 scripts/generateChangelog.js                       |   113 +-
 scripts/generateNewSupportedDevices.js             |    12 -
 scripts/install.sh                                 |    73 -
 scripts/testExternalConverter.js                   |     4 +-
 scripts/zStackEraseAllNvMem.js                     |    35 +-
 .../mock-external-converter-multiple.js            |    24 +
 .../mock-external-converter.js                     |     2 +-
 .../external_extensions/example2Extension.js       |    16 +
 .../{ => external_extensions}/exampleExtension.js  |     8 +-
 test/assets/mock-external-converter-multiple.js    |    33 -
 test/availability.test.js                          |   347 -
 test/bind.test.js                                  |   624 -
 test/bridge.test.js                                |  1289 --
 test/configure.test.js                             |   257 -
 test/controller.test.js                            |   733 -
 test/controller.test.ts                            |  1093 ++
 test/{data.test.js => data.test.ts}                |    14 +-
 test/extensions/availability.test.ts               |   394 +
 test/extensions/bind.test.ts                       |   774 +
 test/extensions/bridge.test.ts                     |  4005 +++++
 test/extensions/configure.test.ts                  |   262 +
 test/extensions/externalConverters.test.ts         |   357 +
 test/extensions/externalExtensions.test.ts         |   207 +
 test/extensions/frontend.test.ts                   |   437 +
 test/extensions/groups.test.ts                     |   799 +
 test/extensions/homeassistant.test.ts              |  2695 +++
 test/extensions/networkMap.test.ts                 |   775 +
 test/extensions/onEvent.test.ts                    |   101 +
 test/extensions/otaUpdate.test.ts                  |   465 +
 test/extensions/publish.test.ts                    |  1695 ++
 test/extensions/receive.test.ts                    |   730 +
 test/externalConverters.test.js                    |   139 -
 test/externalExtension.test.js                     |   119 -
 test/frontend.test.js                              |   312 -
 test/group.test.js                                 |   911 -
 test/homeassistant.test.js                         |  2111 ---
 test/legacy/bridgeLegacy.test.js                   |   483 -
 test/legacy/report.test.js                         |   289 -
 test/lib/flushPromises.js                          |     2 -
 test/logger.test.js                                |   187 -
 test/logger.test.ts                                |   439 +
 test/mocks/data.ts                                 |   309 +
 test/mocks/debounce.ts                             |     5 +
 test/mocks/jszip.ts                                |    11 +
 test/mocks/logger.ts                               |    55 +
 test/mocks/mqtt.ts                                 |    35 +
 test/mocks/sleep.ts                                |    11 +
 test/mocks/types.d.ts                              |    15 +
 test/mocks/utils.ts                                |    14 +
 test/mocks/zigbeeHerdsman.ts                       |  1220 ++
 test/networkMap.test.js                            |   310 -
 test/onEvent.test.js                               |    81 -
 test/otaUpdate.test.js                             |   485 -
 test/publish.test.js                               |  1502 --
 test/receive.test.js                               |   479 -
 test/{settings.test.js => settings.test.ts}        |   506 +-
 test/settingsMigration.test.ts                     |   920 +
 test/stub/data.js                                  |   293 -
 test/stub/logger.js                                |    32 -
 test/stub/mqtt.js                                  |    32 -
 test/stub/zigbeeHerdsman.js                        |   264 -
 test/tsconfig.json                                 |    10 +
 test/utils.test.js                                 |    38 -
 test/utils.test.ts                                 |   124 +
 test/vitest.config.mts                             |    26 +
 tsconfig.json                                      |    20 +-
 update.sh                                          |    67 +-
 147 files changed, 31785 insertions(+), 35557 deletions(-)
 delete mode 100644 .eslintignore
 delete mode 100644 .eslintrc.js
 create mode 100644 .github/workflows/fail_pr_to_master.yaml
 create mode 100644 .prettierignore
 create mode 100644 .prettierrc
 delete mode 100644 babel.config.js
 delete mode 100644 data/configuration.yaml
 create mode 100644 eslint.config.mjs
 mode change 100755 => 100644 images/logo_vector.svg
 delete mode 100644 lib/extension/externalExtension.ts
 create mode 100644 lib/extension/externalExtensions.ts
 create mode 100644 lib/extension/externalJS.ts
 delete mode 100644 lib/extension/legacy/bridgeLegacy.ts
 delete mode 100644 lib/extension/legacy/deviceGroupMembership.ts
 delete mode 100644 lib/extension/legacy/report.ts
 delete mode 100644 lib/extension/legacy/softReset.ts
 create mode 100644 lib/types/api.ts
 delete mode 100644 lib/types/mkdir-recursive.ts
 delete mode 100644 lib/types/zigbee-herdsman-converters.d.ts
 create mode 100644 lib/util/settingsMigration.ts
 delete mode 100644 package-lock.json
 create mode 100644 pnpm-lock.yaml
 delete mode 100644 scripts/generateNewSupportedDevices.js
 delete mode 100644 scripts/install.sh
 create mode 100644 test/assets/external_converters/mock-external-converter-multiple.js
 rename test/assets/{ => external_converters}/mock-external-converter.js (89%)
 create mode 100644 test/assets/external_extensions/example2Extension.js
 rename test/assets/{ => external_extensions}/exampleExtension.js (58%)
 delete mode 100644 test/assets/mock-external-converter-multiple.js
 delete mode 100644 test/availability.test.js
 delete mode 100644 test/bind.test.js
 delete mode 100644 test/bridge.test.js
 delete mode 100644 test/configure.test.js
 delete mode 100644 test/controller.test.js
 create mode 100644 test/controller.test.ts
 rename test/{data.test.js => data.test.ts} (76%)
 create mode 100644 test/extensions/availability.test.ts
 create mode 100644 test/extensions/bind.test.ts
 create mode 100644 test/extensions/bridge.test.ts
 create mode 100644 test/extensions/configure.test.ts
 create mode 100644 test/extensions/externalConverters.test.ts
 create mode 100644 test/extensions/externalExtensions.test.ts
 create mode 100644 test/extensions/frontend.test.ts
 create mode 100644 test/extensions/groups.test.ts
 create mode 100644 test/extensions/homeassistant.test.ts
 create mode 100644 test/extensions/networkMap.test.ts
 create mode 100644 test/extensions/onEvent.test.ts
 create mode 100644 test/extensions/otaUpdate.test.ts
 create mode 100644 test/extensions/publish.test.ts
 create mode 100644 test/extensions/receive.test.ts
 delete mode 100644 test/externalConverters.test.js
 delete mode 100644 test/externalExtension.test.js
 delete mode 100644 test/frontend.test.js
 delete mode 100644 test/group.test.js
 delete mode 100644 test/homeassistant.test.js
 delete mode 100644 test/legacy/bridgeLegacy.test.js
 delete mode 100644 test/legacy/report.test.js
 delete mode 100644 test/lib/flushPromises.js
 delete mode 100644 test/logger.test.js
 create mode 100644 test/logger.test.ts
 create mode 100644 test/mocks/data.ts
 create mode 100644 test/mocks/debounce.ts
 create mode 100644 test/mocks/jszip.ts
 create mode 100644 test/mocks/logger.ts
 create mode 100644 test/mocks/mqtt.ts
 create mode 100644 test/mocks/sleep.ts
 create mode 100644 test/mocks/types.d.ts
 create mode 100644 test/mocks/utils.ts
 create mode 100644 test/mocks/zigbeeHerdsman.ts
 delete mode 100644 test/networkMap.test.js
 delete mode 100644 test/onEvent.test.js
 delete mode 100644 test/otaUpdate.test.js
 delete mode 100644 test/publish.test.js
 delete mode 100755 test/receive.test.js
 rename test/{settings.test.js => settings.test.ts} (74%)
 create mode 100644 test/settingsMigration.test.ts
 delete mode 100644 test/stub/data.js
 delete mode 100644 test/stub/logger.js
 delete mode 100644 test/stub/mqtt.js
 delete mode 100644 test/stub/zigbeeHerdsman.js
 create mode 100644 test/tsconfig.json
 delete mode 100644 test/utils.test.js
 create mode 100644 test/utils.test.ts
 create mode 100644 test/vitest.config.mts
pi@Raspberry-PI:/opt/zigbee2mqtt $ ./update.sh
Checking Zigbee2MQTT status...
Updating...
Bereits aktuell.
Installing dependencies...
 ERROR  Cannot proceed with the frozen installation. The current "overrides" configuration doesn't match the value found in the lockfile
Update your lockfile using "pnpm install --no-frozen-lockfile"
clear
^C
pi@Raspberry-PI:/opt/zigbee2mqtt $ pnpm install --no-frozen-lockfile
 ERROR  Failed to switch pnpm to v10.4.1. Looks like pnpm CLI is missing at "/home/pi/.local/share/pnpm/.tools/pnpm/10.4.1/bin" or is incorrect
spawnSync /home/pi/.local/share/pnpm/.tools/pnpm/10.4.1/bin/pnpm ENOENT
pi@Raspberry-PI:/opt/zigbee2mqtt $ sudo pnpm install --no-frozen-lockfile
Lockfile is up to date, resolution step is skipped
Packages: +363
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

   ╭──────────────────────────────────────────────────────────────────╮
   │                                                                  │
   │                Update available! 10.4.1 → 10.5.2.                │
   │   Changelog: https://github.com/pnpm/pnpm/releases/tag/v10.5.2   │
   │                Run "pnpm add -g pnpm" to update.                 │
   │                                                                  │
   ╰──────────────────────────────────────────────────────────────────╯

Progress: resolved 363, reused 0, downloaded 363, added 363, done
node_modules/.pnpm/sd-notify@2.8.0/node_modules/sd-notify: Running install script...
node_modules/.pnpm/unix-dgram@2.0.6/node_modules/unix-dgram: Running install script...
node_modules/.pnpm/@serialport+bindings-cpp@13.0.1/node_modules/@serialport/bindnode_modules/.pnpm/sd-notify@2.8.0/node_modules/sd-notify: Running install scripnode_modules/.pnpm/unix-dgram@2.0.6/node_modules/unix-dgram: Running install script, done in 18.1s/@serialport+bindings-cpp@13.0.1/node_modules/@serialport/bindings-cpp: Running install script, done in 2.3s

dependencies:
+ ajv 8.17.1
+ bind-decorator 1.0.11
+ debounce 2.2.0
+ express-static-gzip 2.2.0
+ fast-deep-equal 3.1.3
+ finalhandler 1.3.1
+ git-last-commit 1.0.1
+ humanize-duration 3.32.1
+ js-yaml 4.1.0
+ json-stable-stringify-without-jsonify 1.0.1
+ jszip 3.10.1
+ moment 2.30.1
+ mqtt 5.10.3
+ object-assign-deep 0.4.0
+ rimraf 6.0.1
+ semver 7.7.1
+ source-map-support 0.5.21
+ throttleit 2.1.0
+ winston 3.17.0
+ winston-syslog 2.7.1
+ winston-transport 4.9.0
+ ws 8.18.1
+ zigbee-herdsman 3.2.7
+ zigbee-herdsman-converters 23.2.0
+ zigbee2mqtt-frontend 0.9.4

optionalDependencies:
+ sd-notify 2.8.0

devDependencies:
+ @eslint/core 0.12.0
+ @eslint/js 9.21.0
+ @ianvs/prettier-plugin-sort-imports 4.4.1
+ @types/finalhandler 1.2.3
+ @types/humanize-duration 3.27.4
+ @types/js-yaml 4.0.9
+ @types/node 22.13.5
+ @types/object-assign-deep 0.4.3
+ @types/readable-stream 4.0.18
+ @types/sd-notify 2.8.2
+ @types/serve-static 1.15.7
+ @types/ws 8.5.14
+ @vitest/coverage-v8 3.0.7
+ eslint 9.21.0
+ eslint-config-prettier 10.0.1
+ prettier 3.5.2
+ tmp 0.2.3
+ typescript 5.7.3
+ typescript-eslint 8.25.0
+ vitest 3.0.7

Done in 52.7s using pnpm v10.4.1
pi@Raspberry-PI:/opt/zigbee2mqtt $ ./update.sh
Checking Zigbee2MQTT status...
Updating...
Bereits aktuell.
Installing dependencies...
 ERROR  Failed to switch pnpm to v10.4.1. Looks like pnpm CLI is missing at "/home/pi/.local/share/pnpm/.tools/pnpm/10.4.1/bin" or is incorrect
spawnSync /home/pi/.local/share/pnpm/.tools/pnpm/10.4.1/bin/pnpm ENOENT
Building...
 ERROR  Failed to switch pnpm to v10.4.1. Looks like pnpm CLI is missing at "/home/pi/.local/share/pnpm/.tools/pnpm/10.4.1/bin" or is incorrect
spawnSync /home/pi/.local/share/pnpm/.tools/pnpm/10.4.1/bin/pnpm ENOENT
Done!
pi@Raspberry-PI:/opt/zigbee2mqtt $ mv data/configuration.yaml.bak data/configuration.yaml
pi@Raspberry-PI:/opt/zigbee2mqtt $ sudo systemctl start zigbee2mqtt
pi@Raspberry-PI:/opt/zigbee2mqtt $ cd
pi@Raspberry-PI:~ $ sudo systemctl start zigbee2mqtt
pi@Raspberry-PI:~ $

Bin wie folgt vorgegangen und sollte der Anleitung entsprechen.
1. configuration.yaml vorbereitet inkl. Adapter und ohne Update getestet > noch ok
2. ssh geöffnet und pnpm installiert mit  npm install -g pnpm
3. Z2M gestoppt mit  sudo systemctl stop zigbee2mqtt
4. laut Anweisung  git checkout data/configuration.example.yaml
5. laut Anweisung  mv data/configuration.yaml data/configuration.yaml.bak
6. laut Anweisung  git pull --no-rebase
7. laut Anweisung  ./update.sh
>>> Fehlermeldung
Mär 03 17:59:51 Raspberry-PI systemd[1]: Started zigbee2mqtt.
Mär 03 17:59:54 Raspberry-PI npm[2413]: > zigbee2mqtt@2.1.3 start
Mär 03 17:59:54 Raspberry-PI npm[2413]: > node index.js
Mär 03 17:59:55 Raspberry-PI npm[2429]: Starting Zigbee2MQTT without watchdog.
Mär 03 17:59:58 Raspberry-PI npm[2429]: Building Zigbee2MQTT... (initial build), failed
Mär 03 17:59:58 Raspberry-PI npm[2429]: Error: Command failed: pnpm run build
Mär 03 17:59:58 Raspberry-PI npm[2429]:  ERROR  Failed to switch pnpm to v10.4.1. Looks like pnpm CLI is missing at "/home/pi/.local/share/pnpm/.tools/pnpm/10.4.1/bin" or is incorrect
Mär 03 17:59:58 Raspberry-PI npm[2429]: spawnSync /home/pi/.local/share/pnpm/.tools/pnpm/10.4.1/bin/pnpm ENOENT
Mär 03 17:59:58 Raspberry-PI npm[2429]:     at ChildProcess.exithandler (node:child_process:421:12)
Mär 03 17:59:58 Raspberry-PI npm[2429]:     at ChildProcess.emit (node:events:514:28)
Mär 03 17:59:58 Raspberry-PI npm[2429]:     at maybeClose (node:internal/child_process:1105:16)
Mär 03 17:59:58 Raspberry-PI npm[2429]:     at Process.ChildProcess._handle.onexit (node:internal/child_process:305:5)
Mär 03 17:59:58 Raspberry-PI systemd[1]: zigbee2mqtt.service: Main process exited, code=exited, status=1/FAILURE
Mär 03 17:59:58 Raspberry-PI systemd[1]: zigbee2mqtt.service: Failed with result 'exit-code'.
Mär 03 17:59:58 Raspberry-PI systemd[1]: zigbee2mqtt.service: Consumed 7.741s CPU time.
Mär 03 17:59:59 Raspberry-PI systemd[1]: zigbee2mqtt.service: Scheduled restart job, restart counter is at 14.
Mär 03 17:59:59 Raspberry-PI systemd[1]: Stopped zigbee2mqtt.
Mär 03 17:59:59 Raspberry-PI systemd[1]: zigbee2mqtt.service: Consumed 7.741s CPU time.

Scheint wohl ein Problem mit pnpm zu sein.
Laut Log wird Version 10.4.1 verlangt?
ssh pnpm -v bringt bei mir die Version 10.5.2 (aktuelle Version)

Fabiango

So kommte nun erfolgreich Updaten.
Von pnpm muss genau die Version 10.4.1 installiert sein.

Mit einer neueren aktuelleren Version läuft nichts.
Leider steht diese Info nirgends.

Hoffe das kann noch jemanden helfen.

Danke für eure Hilfe.
Gruss, Fabian