Z2M startet seit Serverneustart nicht mehr

Hi,

ich habe nach jedem Server-Neustart das Problem, dass Z2M nicht mehr starten will. Die Fehlermeldung lautet:

[20:03:08] INFO: Starting Zigbee2MQTT...
Starting Zigbee2MQTT without watchdog.
[2026-01-30 20:03:36] error: 	z2m: Error while starting zigbee-herdsman
[2026-01-30 20:03:36] error: 	z2m: Failed to start zigbee-herdsman
[2026-01-30 20:03:36] error: 	z2m: Check  for possible solutions
[2026-01-30 20:03:36] error: 	z2m: Exiting...
[2026-01-30 20:03:36] error: 	z2m: Error: Failed to start EZSP layer with status=HOST_FATAL_ERROR.
    at EmberAdapter.initEzsp (/app/node_modules/.pnpm/zigbee-herdsman@8.0.1/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:666:19)
    at EmberAdapter.start (/app/node_modules/.pnpm/zigbee-herdsman@8.0.1/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:1538:24)
    at Controller.start (/app/node_modules/.pnpm/zigbee-herdsman@8.0.1/node_modules/zigbee-herdsman/src/controller/controller.ts:143:29)
    at Zigbee.start (/app/lib/zigbee.ts:70:27)
    at Controller.start (/app/lib/controller.ts:101:13)
    at start (/app/index.js:149:5)

HA ist 2026.1.3

Z2M ist 2.7.2-1

Coordinater: Sonoff E, Firmware 8.0.2

Ich betreibe das System auf einem Raspberry 5, Der Coordinater ist mit einem Verlängerungskabel angeschlossen.

Ich hatte den Fehler im Herbst schon mal. Das System lief ohne Probleme. Ich musst damals den Server neu starten. Danach kam dieser Fehler. Nach vielem hin und her stecken, neustarten usw lief es auf einmal. Bis heute ohne Probleme. Heute musste ich den Server wegen eines Stromausfalls neu starten. Jetzt habe ich den selben Fehler wieder. Diesmal bekomme ich Z2M nicht mehr zum Laufen.

Was ich probiert habe:

  1. Coordinater für mehrere Minuten abgesteckt und neu angesteckt

  2. HA neu gestartet

  3. Server neu gestartet (Heruntergefahren, Coordinator abgesteckt, Server für einige Minuten vom Netz genommen, neu gestartet, Coordinator angesteckt)

  4. Coordinater neu geflasht (7.4.1, 7.4.3, 7.4.4, 8.0.2), jedesmal danach ab- und neu angesteckt (Flash-Vorgang angesteckt am HA-Server, HA erkennt den Stick also und kann mit ihm kommunizieren!)

Meine Konfig:

`version: 4`
`mqtt:`
`  base_topic: zigbee2mqtt`
`  server: mqtt://core-mosquitto:1883`
`  user: xxxx`
`  password: xxxx`
`serial:`
`  port: >-`
`    /dev/serial/by-id/usb-Itead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_V2_404fb23782c2ef119a23c6138148b910-if00-port0`
`  adapter: ember`
`  rtscts: false`

Wie gesagt: Vor dem Neustart lief alles problemlos.

Ich stehe einfach an…

Bitte um Eure Hilfe!

lg Michael

Deine Einrückungen von Port, Adapter und rtscts sind jeweils 2 Leerzeichen zu viel. Du kannst auch Mal die Baudrate mit baudrate: 115200 festlegen. Und prüfe Mal noch ob du ZHA deaktiviert hast, damit das auf dem Port nicht in die Quere kommt

danke für deine Rückmeldung! Die Leerzeichen waren nur ein Fehler bei Einfügen des Codes, in HA passt das.

Die Angabe der Baud-Rate ändert leider nichts. Weder 115200, noch 230400

Es existiert keine aktive ZHA-Integration

nur um es mal zu testen habe ich versucht ZHA zu nutzen. Das scheitert auch an einem Fehler:

Logger: homeassistant.components.zha.config_flowQuelle: components/zha/config_flow.py:682Integration: Zigbee Home Automation (Dokumentation, Probleme)
Erstmals aufgetreten: 23:42:16 (1 Vorkommnis)
Zuletzt protokolliert: 23:42:16 Failed to form new networkTraceback (most recent call last):
File “/usr/local/lib/python3.13/site-packages/bellows/zigbee/application.py”, line 219, in _ensure_network_runningawait stack_statusasyncio.exceptions.CancelledError 
The above exception was the direct cause of the following exception: 
Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/components/zha/config_flow.py”, line 682, in async_step_form_new_networkawait self._form_network_task
File “/usr/src/homeassistant/homeassistant/components/zha/config_flow.py”, line 660, in _async_form_new_networkawait self._radio_mgr.async_form_network()
File “/usr/src/homeassistant/homeassistant/components/zha/radio_manager.py”, line 335, in async_form_networkawait app.form_network()
File “/usr/local/lib/python3.13/site-packages/zigpy/application.py”, line 481, in form_networkawait self.start_network()
File “/usr/local/lib/python3.13/site-packages/bellows/zigbee/application.py”, line 226, in start_networkawait self._ensure_network_running()
File “/usr/local/lib/python3.13/site-packages/bellows/zigbee/application.py”, line 218, in _ensure_network_runningasync with asyncio_timeout(NETWORK_UP_TIMEOUT_S):~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.13/asyncio/timeouts.py”, line 116, in aexitraise TimeoutError from exc_valTimeoutError

Interessant, dass ZHA und Z2M scheitern, das Flashing-Tool aber funktioniert….

:crayon:by HarryP: Zusammenführung Doppelpost (bei Änderungen oder hinzufügen von Inhalten bitte die „Bearbeitungsfunktion“ anstatt „Antworten“ zu nutzen)

Meine AddOn Konfig sieht so aus:

data_path: /config/zigbee2mqtt
socat:
  enabled: false
  master: pty,raw,echo=0,link=/tmp/ttyZ2M,mode=777
  slave: tcp-listen:XXXX,keepalive,nodelay,reuseaddr,keepidle=1,keepintvl=1,keepcnt=5
  options: "-d -d"
  log: false
mqtt: {}
serial:
  port: /dev/ttyUSB0
  adapter: ember

Die Konfig aus dem Pfad der 1. Zeile von oben sieht so aus:

version: 4
homeassistant:
  enabled: true
  experimental_event_entities: true
  legacy_action_sensor: true
advanced:
  network_key:
    - X
    - X
    - usw.
  pan_id: XXXXX
  ext_pan_id:
    - XXX
    - XXX
    - usw.
  timestamp_format: DD.MM.YYYY HH:mm:ss
mqtt:
  server: mqtt://core-mosquitto:1883
  user: xxxx
  password: xxxx
frontend:
  enabled: true
  package: zigbee2mqtt-windfront
  port: XXXX
serial:
  port: /dev/ttyUSB0
  adapter: ember

Die darunter stehenden Devices habe ich hier weggelassen.

Ich habe also bei mir unter “port:” den Pfad nicht per ID “…./by-id/….” konfiguriert, sondern direkt über den USB Port Pfad “/dev/ttyUSB0”.

Vielleicht ändert sich Deine ID jedes Mal beim Booten, ich weiß es nicht.
Jedenfalls habe ich seit Ersteinrichtung und nachfolgenden Updates keinerlei Probleme mit dem Autostart.

Genau diesen kurzen Pfad sollte man nicht nehmen

@mgo1975 hast du für das flashen das Silikon labs Addon genommen? Solche Addons blockieren auch oft den Port. Diese unbedingt deaktivieren und dann die komplette Hardware neu starten.

danke für deine Rückmeldung! Bis auf diese beiden Optionen (und dem Port) ist die Konfig ident. Ich habe die beiden bei mir eingefügt, es ändert nur leider nichts :frowning:

@metallmanu ich nutze den Sonoff Dogle Flasher. Der ist aber natürlich gestoppt

OK und Silikon Labs Multiprotokoll ist auch nicht drauf oder? ZHA komplett deinstalliert?

In der Config Mal noch folgendes probieren:

serial:
  port: /dev/serial/by-id/usb-Itead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_V2_404fb23782c2ef119a23c6138148b910-if00-port0
  adapter: ember
  baudrate: 115200
  rtscts: false
adapter_delay: 5000

Falls das auch nicht funktioniert dann Mal über das Terminal schauen was den Port belegt. Direkt beim Starten Mal schauen mit:

fuser /dev/serial/by-id/usb-Itead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_V2_404fb23782c2ef119a23c6138148b910-if00-port0

Keine Ausgabe: Der Port ist frei. Das Problem liegt an der Firmware/Konfiguration.
Eine Zahl erscheint (z.B. 1234): Das ist die Prozess-ID (PID) des Programms, das den Stick blockiert.

Falls eine Zahl angezeigt wird kannst du hiermit schauen welches Programm es ist:

ps -p <PID_NUMMER>

Der Konfig-Vorschlag hat leider nichts geändert.

Ich bekomme eine leere Antwort auf die Abfrage. Allerdings ist die Antwort auch dann leer, wenn der Flasher aktiv ist und mit dem Stick kommuniziert. Falls das hilft…

Dann flashe vielleicht noch Mal eine 7.4.4.
Die leere Antwort kommt wahrscheinlich weil du das Terminal Addon genutzt hast, welches in einem eigenen Docker ist und daher den Port nicht sieht. Nutze Mal einen Bildschirm am Pi mit Tastatur

die 7.4.4 hat leider nichts gebracht. Das hatte ich schon im Vorfeld probiert, aber auch der wiederholte versuch hat leider nicht geholfen.

Und ich habe leider kein HDMI-Adapter-Kabel bei der Hand…

Okay sorry, mehr fällt mir dann leider auch nicht ein… Für mich scheint es aber, dass irgendwas den Port blockiert…Mal HA starten ohne Stick und Z2M aus. Nach Start dann den Stick einstecken, warten und dann erst Z2M starten

Du nutzt aber schon das advanced Terminal Addon und hast vorher login eingegeben um auf oberster Ebene zu sein oder?

ich nutze das “Advanced SSH & Web Terminal”, anmelden muss ich mich allerdings nicht.

Wenn du login eingegeben hast, bist du eine Ebene höher. Dann verschwindet das ha vorne. Vorher auch beim Addon unter Info den gesicherten Modus ausschalten

der gesicherte Modus ist ausgeschaltet und er zeigt “➜ ~” an

Perfekt, dann nochmal die Befehle versuchen

fuser /dev/serial/by-id/usb-Itead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_V2_404fb23782c2ef119a23c6138148b910-if00-port0

leider nach wie vor eine leere Antwort :frowning:

Krass… Und Z2M startet immer noch nicht? Immer noch gleiche Fehlermeldung? Nutzt du zufällig noch Homematic?

Teste es doch bitte einfach mal mit dem Port.
Kannst es danach ja wieder zurückstellen.
Nur um zu testen, ob der Stick überhaupt angenommen wird.
Und es spricht auch nix gegen den Port, es sei denn, Du steckst das Dongle dauernd um.

auch das Port ändert nichts. Ich habe (vermutlich) jede Kombination an Port, Baudrate usw durchprobiert.