Wechsel von Deconz II auf Sonoff Dongle Plus klappt nicht

Hallo,

nachdem ich immer wieder Probleme mit der Verbindung zu meinen Zigbee Geräten habe, hab ich mal beschlossen, vom Deconz ConBee II auf den Sonoff Dongle Plus (Version CC2652P) zu wechseln. Hab zwischenzeitlich nen täglichen Reboot des Systems eingestellt, weil sich Zigbee immer wieder aufgehängt hat, aber das macht ja auch keinen Sinn. Und irgendwie bin ich immer wieder bei der Recherche auf den Stick gekommen, weshalb ich durch den Wechsel das Thema mal ausschließen wollte.

Bei mir läuft Zigbee über Zigbee2MQTT auf nem Pi 4. Dabei hängt der Stick in ner USB-Verlängerung (ist so ein älteres Teil das mal bei ner Logitech-Maus mit dabei war, damit man den Stick von hinter dem PC nach vorne bekommt, nur als Info falls das relevant sein könnte).

Ganz naiv bin ich davon ausgegangen, dass ich in der Z2M-Konfig einfach den Part

port: >-
  /dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE1234567-if00
adapter: deconz

gegen

port: >-
  /dev/serial/by-id/usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_12345678901234567890-if00-port0
  adapter: zstack

austauschen muss. Dem war aber leider nicht so, danach startet Z2M nicht mehr hoch, im Log bekomme ich folgende Meldung:

[18:46:35] INFO: Preparing to start...
[18:46:35] INFO: Socat not enabled
[18:46:36] INFO: Starting Zigbee2MQTT...
Starting Zigbee2MQTT without watchdog.
[2025-03-12 18:47:44] error: 	z2m: Error while starting zigbee-herdsman
[2025-03-12 18:47:44] error: 	z2m: Failed to start zigbee-herdsman
[2025-03-12 18:47:44] error: 	z2m: Check https://www.zigbee2mqtt.io/guide/installation/20_zigbee2mqtt-fails-to-start_crashes-runtime.html for possible solutions
[2025-03-12 18:47:44] error: 	z2m: Exiting...
[2025-03-12 18:47:44] error: 	z2m: Error: network commissioning timed out - most likely network with the same panId or extendedPanId already exists nearby (Error: AREQ - ZDO - stateChangeInd after 60000ms
    at Object.start (/app/node_modules/.pnpm/zigbee-herdsman@3.2.7/node_modules/zigbee-herdsman/src/utils/waitress.ts:67:23)
    at ZnpAdapterManager.beginCommissioning (/app/node_modules/.pnpm/zigbee-herdsman@3.2.7/node_modules/zigbee-herdsman/src/adapter/z-stack/adapter/manager.ts:372:31)
    at ZnpAdapterManager.start (/app/node_modules/.pnpm/zigbee-herdsman@3.2.7/node_modules/zigbee-herdsman/src/adapter/z-stack/adapter/manager.ts:91:21)
    at ZStackAdapter.start (/app/node_modules/.pnpm/zigbee-herdsman@3.2.7/node_modules/zigbee-herdsman/src/adapter/z-stack/adapter/zStackAdapter.ts:158:16)
    at Controller.start (/app/node_modules/.pnpm/zigbee-herdsman@3.2.7/node_modules/zigbee-herdsman/src/controller/controller.ts:136:29)
    at Zigbee.start (/app/lib/zigbee.ts:69:27)
    at Controller.start (/app/lib/controller.ts:142:13)
    at start (/app/index.js:161:5))
    at ZnpAdapterManager.beginCommissioning (/app/node_modules/.pnpm/zigbee-herdsman@3.2.7/node_modules/zigbee-herdsman/src/adapter/z-stack/adapter/manager.ts:374:23)
    at ZnpAdapterManager.start (/app/node_modules/.pnpm/zigbee-herdsman@3.2.7/node_modules/zigbee-herdsman/src/adapter/z-stack/adapter/manager.ts:91:21)
    at ZStackAdapter.start (/app/node_modules/.pnpm/zigbee-herdsman@3.2.7/node_modules/zigbee-herdsman/src/adapter/z-stack/adapter/zStackAdapter.ts:158:16)
    at Controller.start (/app/node_modules/.pnpm/zigbee-herdsman@3.2.7/node_modules/zigbee-herdsman/src/controller/controller.ts:136:29)
    at Zigbee.start (/app/lib/zigbee.ts:69:27)
    at Controller.start (/app/lib/controller.ts:142:13)
    at start (/app/index.js:161:5)

Meine configuration.yaml für Z2M sieht wie folgt aus:

homeassistant:
  enabled: true
advanced:
  network_key:
    - 235
    - 50
    - 1
    - 183
    - 191
    - 46
    - 202
    - 29
    - 217
    - 177
    - 98
    - 183
    - 49
    - 156
    - 44
    - 193
  pan_id: 29976
  ext_pan_id:
    - 20
    - 23
    - 53
    - 67
    - 70
    - 29
    - 86
    - 134
  log_level: warning
mqtt:
  server: mqtt://core-mosquitto:1883
  user: addons
  password: abc
serial:
  port: >-
    /dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE1234567-if00
  adapter: deconz
frontend:
  enabled: true
  port: 8099
devices:
  "0x5c0272fffe646626":
    friendly_name: Deckenlampe A
    icon: device_icons/251c4677c21f9752c73c69e5d5df9e7e.jpeg
  "0x00158d000a98ac8e":

Hat jemand ne Idee was ich da falsch mache? Ich muss gestehen ich habe gerade keinen Plan wie ich das gelöst bekommen.

Grüße,
Flo

Ja: schreib in die configuration.yaml von Z2M die korrekten Eintragungen. Leider kommt es vor, dass die Einträge in der GUI nicht in die yaml-Datei übernommen werden (bekanntes und bisher nicht gelöstes Problem). In deiner jetzigen stehen noch Angaben deines alten Sticks:

serial:
  port: >-
    /dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE1234567-if00
  adapter: deconz

Ob die nicht erfolgte Übernahme in die yaml-Datei daran liegt, dass die Einrückung in deiner GUI nicht korrekt ist, weiß ich nicht, denn auch da ist ein Fehler. Bei dir steht:

port: >-
  /dev/serial/by-id/usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_12345678901234567890-if00-port0
  adapter: zstack

Richtig wäre:

port: >-
  /dev/serial/by-id/usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_12345678901234567890-if00-port0
adapter: zstack

Also ich hab das mal korrigiert, sowohl die config.yaml als auch die Einrückung in der GUI, aber hat leider nichts gebracht, Z2M wollte nicht starten (trotz Neustart aller YAML, des Pi, etc.). Hab dann folgenden Hinweis gefunden, und diesen mal in die config.yaml anstelle der bisherigen Einträge gesetzt:

advanced:
  pan_id: GENERATE
  ext_pan_id: [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08]
  network_key: GENERATE

Die config.yaml sieht jetzt im geänderten Teil wie folgt aus (den Channel hab ich noch selbst geändert, nicht wundern):

advanced:
  pan_id: 62877
  ext_pan_id:
    - 1
    - 2
    - 3
    - 4
    - 5
    - 6
    - 7
    - 8
  network_key:
    - 4
    - 193
    - 101
    - 120
    - 240
    - 57
    - 102
    - 60
    - 50
    - 54
    - 156
    - 100
    - 117
    - 203
    - 233
    - 118
  log_level: warning
  channel: 25

Daraufhin wurde der Part neu generiert, und ich kann mein Z2M jetzt wieder öffnen.

ABER: es sind natürlich alle Devices weg. Hab ich irgendwie ne Chance die Devices wieder reinzubekommen? Ich hab noch ein Z2M-Backup, das hab ich mir mal heruntergeladen, allerdings finde ich nichts wie ich das wieder einspielen kann. Oder geht das eh nicht, weil ich ja pan-id, ext_pan_id und network_key neu generiert habe? Heißt das, die einzigste Möglichkeit ist, alles wieder neu anzulernen?

Grüße,
Flo

Ja. Siehe z.B. auch:

ff.

VG Jim

1 „Gefällt mir“

Danke Dir, dann heißt es wohl in den sauren Apfel beißen und neu einrichten. Zumindest läuft der Stick jetzt unter Z2M.

Ich kenne mich mit den Conbee Dongle nicht wirklich aus und Du kannst ja auch noch einmal per Google danach suchen ob ein Dongle-Wechsel von Conbee zu Sonoff ohne ein Neuanlernen möglich ist, aber aufgrund der von mir verlinkten Z2M Info

Migration from one adapter to another requires backup and restore support which is so far only implemented for the zstack (Texas Instrument) and ember adapters. Backup and restore is not supported for any other adapters (conbee, ezsp, zboss and zigate).

und der Z2M Infos unter What does and does not require re-pairing of all devices?

glaube ich nicht das es da irgendeine Möglichkeit gibt. Wenn der network_key oder die panID geändert wurde dann wohl eh nicht mehr.

Aber wie schon geschrieben: Ich hatte noch nie einen Conbee Dongle im Einsatz.

VG Jim

Nachdem ich gerade die Umstellung von einem ConbeeII auf einen Sonoff ZBDongle-P erfolgreich abgeschlossen habe, darf ich erfreulicherweise widersprechen. Die Migration ist ohne neues Pairing möglich, dafür muss ich allerdings die Bereitschaft mitbringen, viel neues zu lernen.

Mein Ziel war es, mit dem Sonoff aus Netzwerksicht einen Klon des ConbeeII zu erstellen. Dieser Klon sollte dann auf einen zweiten Sonoff dupliziert werden.

Ich habe nun 2 funktionierende Sonoff-Sticks, die zwar niemals zeitgleich genutzt werden können, aber bei einem Hardwaredefekt problemlos ausgewechselt werden können. Der Conbee liegt jetzt herum und könnte notfalls mit minimaler Änderung auch wieder verwendet werden.

Dafür sind folgende Dinge zu tun:

  • Wichtig: Backups von HA und z2m sind entscheidend!
  • Über ein geeignetes Tool muss der Conbee ausgelesen werden (PAN ID, Extended PAN ID, Channel, Device IEEE, Network Key)
  • Der Sonoff muss mit einer geeigneten Coordinator-Firmware geflasht werden, falls noch nicht geschehen
  • Die aus dem Conbee ausgelesenen Daten müssen auf den Sonoff übertragen werden. Je nach Tool geschieht dies entweder beim Flashen der Firmware oder danach
  • Da z2m bei Nutzung mit dem Conbee keine coordinator_backup.json erstellt, muss diese Datei selbst erstellt werden
    • Ohne Datei ist es für den Sonoff der erste Einsatz und der Coordinator möchte ein neues Netzwerk erstellen. Das kann nicht funktionieren, da es ja ein bestehendes Netzwerk gibt. Daher ist die Datei entscheidend.

Für die einzelnen Schritte gibt es diverse Tools und Ansätze, ich habe die Sticks unter Windows 11 mit Python und VSCode bearbeitet.

Wer gerne mit Python arbeitet und sich grob mit Zigbee auskennt, ist hier meiner Meinung nach richtig aufgehoben. Wer da bisher keine Ahnung hat, ist eventuell mit einem neu Anlernen besser bedient.

Ich habe absichtlich nicht jedes Detail geschrieben, da ich nicht den Eindruck erwecken möchte, dass hier in wenigen Schritten eine erfolgreiche Migration erledigt ist. Bei konkreten Fragen kann ich gerne aushelfen.