Installation ZBT-2 an Home Assistant Yellow

Hallo Zusammen,

ich hänge schon seit einigen Tagen an der Installation der ZBT-2 ZigBee Antenne.

Zum Hintergrund: Ich will meinen Home Assistant Yellow mit einer reichweitenstärkeren Antenne ausrüsten. Daher die Wahl der ZBT-2 die ja von Nabu Casa vertrieben wird. Nach dem Verbinden mit USB erscheint der Stick auch in Home Assistant unter “Geräte & Dienste”. Sobald ich ihn aber hinzufügen möchte, erscheint die Fehlermeldung “Die Installation des Zigbee-Firmware ist fehlgeschlagen.” Das Protokoll habe ich unten eingefügt.

Dabei ist es egal, welche Variante ich wäre (ZHA oder anderes), die Fehlermeldung ist die gleiche. Ich habe bisher verschiedene USB Ports ausprobiert und das System mehrfach neu gestartet.

Per “Device Toolbox” ( Home Assistant Connect ZBT-2 – Device Toolbox ) kann ich über den PC auf den Stick zugreifen. Die aktuellste Zigbee-Version habe ich so bereits installiert.

Leider weiß ich aktuell echt nicht mehr weiter und hoffe, es gibt hier in der Runde noch Ideen.

Hier das Protokoll:

Logger: homeassistant.components.homeassistant_hardware.firmware_config_flow
Quelle: components/homeassistant_hardware/firmware_config_flow.py:200
Integration: Home Assistant Hardware (Dokumentation, Probleme)
Erstmals aufgetreten: 15:40:51 (1 Vorkommnis)
Zuletzt protokolliert: 15:40:51

Failed to flash firmware
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/homeassistant_hardware/util.py", line 500, in async_flash_silabs_firmware
    await flasher.enter_bootloader()
  File "/usr/local/lib/python3.14/site-packages/universal_silabs_flasher/flasher.py", line 371, in enter_bootloader
    bootloader_probe = await self.trigger_bootloader_reset(run_firmware=False)
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.14/site-packages/universal_silabs_flasher/flasher.py", line 632, in trigger_bootloader_reset
    await self._send_esp32_command("BZ")
  File "/usr/local/lib/python3.14/site-packages/universal_silabs_flasher/flasher.py", line 615, in _send_esp32_command
    await self._trigger_baudrate_reset(
    ...<6 lines>...
    )
  File "/usr/local/lib/python3.14/site-packages/universal_silabs_flasher/flasher.py", line 213, in _trigger_baudrate_reset
    assert uart._transport is not None
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/homeassistant_hardware/firmware_config_flow.py", line 200, in _install_firmware_step
    await self.firmware_install_task
  File "/usr/src/homeassistant/homeassistant/components/homeassistant_hardware/firmware_config_flow.py", line 307, in _install_firmware
    self._probed_firmware_info = await async_flash_silabs_firmware(
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<8 lines>...
    )
    ^
  File "/usr/src/homeassistant/homeassistant/components/homeassistant_hardware/util.py", line 509, in async_flash_silabs_firmware
    raise HomeAssistantError("Failed to flash firmware") from err
homeassistant.exceptions.HomeAssistantError: Failed to flash firmware

Möchtest du einen Stick migrieren?

Nein, ich möchte die aktuell auf dem ZHA-Modul des Yellow laufende Zigbee-Installation auf den ZHA-2 migrieren. Wobei auch eine reine Neu-Inbetriebnahme des ZHA-2 (ohne Migration) scheitert.

Nach dieser Anleitung?
https://support.nabucasa.com/hc/en-us/articles/29400665034397-Migrating-an-existing-Zigbee-Home-Automation-ZHA-network-to-Home-Assistant-Connect-ZBT-2

Gruß Osorkon

Ja, genau so. Beim Wechsel von Schritt 4 auf Schritt 5 erscheint die Fehlermeldung.

Und hier der Auszug aus den Protokollen:

Logger: homeassistant.components.homeassistant_hardware.firmware_config_flow
Quelle: components/homeassistant_hardware/firmware_config_flow.py:200
Integration: Home Assistant Hardware (Dokumentation, Probleme)
Erstmals aufgetreten: 12:53:00 (1 Vorkommnis)
Zuletzt protokolliert: 12:53:00

Failed to flash firmware
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/homeassistant_hardware/util.py", line 500, in async_flash_silabs_firmware
    await flasher.enter_bootloader()
  File "/usr/local/lib/python3.14/site-packages/universal_silabs_flasher/flasher.py", line 371, in enter_bootloader
    bootloader_probe = await self.trigger_bootloader_reset(run_firmware=False)
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.14/site-packages/universal_silabs_flasher/flasher.py", line 634, in trigger_bootloader_reset
    bootloader_probe = await self._detect_gecko_bootloader(
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        run_firmware=run_firmware
        ^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/local/lib/python3.14/site-packages/universal_silabs_flasher/flasher.py", line 259, in _detect_gecko_bootloader
    probe_result = await self.probe_gecko_bootloader(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        run_firmware=run_firmware, baudrate=baudrate
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/local/lib/python3.14/site-packages/universal_silabs_flasher/flasher.py", line 124, in probe_gecko_bootloader
    bootloader_version = await gecko.probe()
                         ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.14/site-packages/universal_silabs_flasher/gecko_bootloader.py", line 141, in probe
    return await self.ebl_info()
           ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.14/site-packages/universal_silabs_flasher/gecko_bootloader.py", line 151, in ebl_info
    await self._state_machine.wait_for_state(State.IN_MENU)
  File "/usr/local/lib/python3.14/site-packages/universal_silabs_flasher/common.py", line 118, in wait_for_state
    return await future
           ^^^^^^^^^^^^
OSError: [Errno 5] device disconnected or in use by another process

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/homeassistant_hardware/firmware_config_flow.py", line 200, in _install_firmware_step
    await self.firmware_install_task
  File "/usr/src/homeassistant/homeassistant/components/homeassistant_hardware/firmware_config_flow.py", line 307, in _install_firmware
    self._probed_firmware_info = await async_flash_silabs_firmware(
                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...<8 lines>...
    )
    ^
  File "/usr/src/homeassistant/homeassistant/components/homeassistant_hardware/util.py", line 509, in async_flash_silabs_firmware
    raise HomeAssistantError("Failed to flash firmware") from err
homeassistant.exceptions.HomeAssistantError: Failed to flash firmware

Die aktuelle Firmware, hast Du bereits aufgespielt?

Edit:
Aktuell wäre:
Firmware: EmberZNet Zigbee 7.5.1.0

Gruß Osorkon

Am Wochenende habe ich die über die Toolbox aktualisiert, ich glaube, das war die 7.5.0.0. Das checke ich mal heute Abend

So, neueste Version war bereits drauf.

Leider immer noch das gleiche Fehlerbild

Habe mir mal die Fehlermeldung genauer angeschaut. Es scheint so, dass immer wieder die Verbindung zum ZBT-2 abreist.

Du hast nicht zufällig ZigBee2MQTT parallel am Start? Oder der OTBR, der auf den ZBT- zugreift?

Hast Du auch schon mal versucht ZHA mit dem bestehenden Adapter zu deaktivieren, bevor Du den ZBT-2 als ZigBee Koordinator einrichtest?

Gruß Osorkon

Ich hatte Zigbee2MQTT einmal testweise installiert, danach aber wieder entfernt. OTBR läuft nciht.
Für Zigbee und Threat benutze ich die Build-In Varianten des Yellow. Habe bei deaktiviert, leider weiterhin das gleiche Fehlerbild.
Ein Update auf die neuste HA Version heute hat ebenfalls ncihts gebracht.

Ich bin grade echt überfragt… :frowning:

Hier noch mal ein Update. Ich habe mir testweise den Sonoff MG24 ZigBee Stick besorgt. Wir korrekt erkannt, aber auch hier scheint mir ein Verbindung-Problem vorzulegen. Anbei des Protokoll auf dem Sonoff Flasher:

2026-07-30T18:08:00.111Z [INFO] [HA] controlZHA: success - operationType: disable; data: true
2026-07-30T18:08:00.112Z [INFO] [HA utils] closeZhaAndZ2m results: [{"status":"fulfilled","value":true},{"status":"fulfilled","value":true}]
[2026-07-30 08:08:00.113] debug: 	gecko: Knocking bootloader...
[2026-07-30 08:08:00.114] info: 	gecko: Determine whether the current serial port is in bootloader mode.
[2026-07-30 08:08:00.114] debug: 	transport: Opening serial port with {"autoOpen":false,"baudRate":115200,"dataBits":8,"parity":"none","path":"/dev/ttyUSB0","rtscts":false,"stopBits":1}
[2026-07-30 08:08:00.119] info: 	transport: Serial port opened
[2026-07-30 08:08:00.122] debug: 	transport: Sending transport data: 0a.
2026-07-30T18:08:00.133Z [INFO] [HA] controlZHA: ws close
[2026-07-30 08:08:01.624] debug: 	gecko: Timed out waiting for IDLE after 1500ms.
[2026-07-30 08:08:01.625] debug: 	transport: Sending transport data: 0a.
[2026-07-30 08:08:03.127] debug: 	gecko: Timed out waiting for IDLE after 1500ms.
[2026-07-30 08:08:03.128] info: 	transport: Closing serial connection...
[2026-07-30 08:08:03.130] info: 	transport: Transport closed.
[2026-07-30 08:08:03.131] info: 	gecko: Not in bootloader.
[2026-07-30 08:08:03.134] debug: 	gecko: Knock finished state: 0
2026-07-30T18:08:03.134Z [INFO] [7cbff4d9-f5e2-42ec-a941-eb8960c1ea24] (app.mid.log) isBootloader: false
2026-07-30T18:08:03.153Z [INFO] [f9cb6466-87aa-4288-b6fc-72187fdb1d57] (app.mid.log) request: 172.30.32.2 --> POST /api/v1/hardware
2026-07-30T18:08:03.154Z [INFO] [f9cb6466-87aa-4288-b6fc-72187fdb1d57] (app.mid.log) body: {"type":"scan","data":{"deviceType":"usb-SONOFF_SONOFF_Dongle_Plus_MG24_88cc4b3a798cf011bdcc30b9d9065118-if00-port0","serialPortPath":"/dev/ttyUSB0","vendorId":"10c4","productId":"ea60"},"ts":1785434882982,"appid":"ut1sdivm8v62calo"}
2026-07-30T18:08:03.155Z [INFO] [f9cb6466-87aa-4288-b6fc-72187fdb1d57] (app.mid.log) type: scan; serialPortPath: /dev/ttyUSB0; baudRate: null; dbItem: [object Object]
[2026-07-30 08:08:03.156] info: 	gecko: Ezsp Connecting ...
[2026-07-30 08:08:03.157] debug: 	zh:ezsp:uart: RTS/CTS config is off, enabling software flow control.
[2026-07-30 08:08:03.158] debug: 	zh:ezsp:uart: Opening SerialPort with {"path":"/dev/ttyUSB0","baudRate":115200,"rtscts":false,"autoOpen":false,"parity":"none","stopBits":1,"xon":true,"xoff":true}
[2026-07-30 08:08:03.161] debug: 	zh:ezsp:uart: Serialport opened
[2026-07-30 08:08:03.162] debug: 	zh:ezsp:uart: Uart reseting
[2026-07-30 08:08:03.163] debug: 	zh:ezsp:uart: --> Write reset
[2026-07-30 08:08:03.164] debug: 	zh:ezsp:uart: --> [1ac038bc7e]
[2026-07-30 08:08:03.164] debug: 	zh:ezsp:uart: -?- waiting reset
[2026-07-30 08:08:13.167] error: 	zh:ezsp:uart: --> Error: Error: {"sequence":-1} after 10000ms
[2026-07-30 08:08:13.169] error: 	zh:ezsp:ezsp: Connection attempt 1 error: Error: Failure to connect
[2026-07-30 08:08:13.171] debug: 	zh:ezsp:uart: Port closed. Error? null
[2026-07-30 08:08:13.172] debug: 	zh:ezsp:ezsp: onSerialClose()
[2026-07-30 08:08:18.172] debug: 	zh:ezsp:ezsp: Next attempt 2
[2026-07-30 08:08:18.173] debug: 	zh:ezsp:uart: RTS/CTS config is off, enabling software flow control.
[2026-07-30 08:08:18.174] debug: 	zh:ezsp:uart: Opening SerialPort with {"path":"/dev/ttyUSB0","baudRate":115200,"rtscts":false,"autoOpen":false,"parity":"none","stopBits":1,"xon":true,"xoff":true}
[2026-07-30 08:08:18.177] debug: 	zh:ezsp:uart: Serialport opened
[2026-07-30 08:08:18.178] debug: 	zh:ezsp:uart: Uart reseting
[2026-07-30 08:08:18.179] debug: 	zh:ezsp:uart: --> Write reset
[2026-07-30 08:08:18.179] debug: 	zh:ezsp:uart: --> [1ac038bc7e]
[2026-07-30 08:08:18.180] debug: 	zh:ezsp:uart: -?- waiting reset
[2026-07-30 08:08:28.184] error: 	zh:ezsp:uart: --> Error: Error: {"sequence":-1} after 10000ms
[2026-07-30 08:08:28.186] error: 	zh:ezsp:ezsp: Connection attempt 2 error: Error: Failure to connect
[2026-07-30 08:08:28.187] debug: 	zh:ezsp:uart: Port closed. Error? null
[2026-07-30 08:08:28.188] debug: 	zh:ezsp:ezsp: onSerialClose()
[2026-07-30 08:08:38.196] debug: 	zh:ezsp:ezsp: Next attempt 3
[2026-07-30 08:08:38.197] debug: 	zh:ezsp:uart: RTS/CTS config is off, enabling software flow control.
[2026-07-30 08:08:38.198] debug: 	zh:ezsp:uart: Opening SerialPort with {"path":"/dev/ttyUSB0","baudRate":115200,"rtscts":false,"autoOpen":false,"parity":"none","stopBits":1,"xon":true,"xoff":true}
[2026-07-30 08:08:38.205] debug: 	zh:ezsp:uart: Serialport opened
[2026-07-30 08:08:38.205] debug: 	zh:ezsp:uart: Uart reseting
[2026-07-30 08:08:38.206] debug: 	zh:ezsp:uart: --> Write reset
[2026-07-30 08:08:38.207] debug: 	zh:ezsp:uart: --> [1ac038bc7e]
[2026-07-30 08:08:38.208] debug: 	zh:ezsp:uart: -?- waiting reset
[2026-07-30 08:08:48.216] error: 	zh:ezsp:uart: --> Error: Error: {"sequence":-1} after 10000ms
[2026-07-30 08:08:48.218] error: 	zh:ezsp:ezsp: Connection attempt 3 error: Error: Failure to connect
[2026-07-30 08:08:48.219] debug: 	zh:ezsp:uart: Port closed. Error? null
[2026-07-30 08:08:48.220] debug: 	zh:ezsp:ezsp: onSerialClose()
[2026-07-30 08:09:03.224] debug: 	zh:ezsp:ezsp: Next attempt 4
[2026-07-30 08:09:03.225] debug: 	zh:ezsp:uart: RTS/CTS config is off, enabling software flow control.
[2026-07-30 08:09:03.226] debug: 	zh:ezsp:uart: Opening SerialPort with {"path":"/dev/ttyUSB0","baudRate":115200,"rtscts":false,"autoOpen":false,"parity":"none","stopBits":1,"xon":true,"xoff":true}
[2026-07-30 08:09:03.229] debug: 	zh:ezsp:uart: Serialport opened
[2026-07-30 08:09:03.229] debug: 	zh:ezsp:uart: Uart reseting
[2026-07-30 08:09:03.230] debug: 	zh:ezsp:uart: --> Write reset
[2026-07-30 08:09:03.231] debug: 	zh:ezsp:uart: --> [1ac038bc7e]
[2026-07-30 08:09:03.231] debug: 	zh:ezsp:uart: -?- waiting reset
[2026-07-30 08:09:13.234] error: 	zh:ezsp:uart: --> Error: Error: {"sequence":-1} after 10000ms
[2026-07-30 08:09:13.236] error: 	zh:ezsp:ezsp: Connection attempt 4 error: Error: Failure to connect
[2026-07-30 08:09:13.236] error: 	gecko: Ezsp connect error: Error: Failure to connect
[2026-07-30 08:09:13.237] debug: 	zh:ezsp:ezsp: Closing Ezsp
[2026-07-30 08:09:13.237] debug: 	zh:ezsp:uart: Closing UART
[2026-07-30 08:09:13.238] debug: 	zh:ezsp:ezsp: onSerialClose()
2026-07-30T18:09:13.239Z [ERROR] Get NCP Version throw error: Failure to connect
2026-07-30T18:09:13.239Z [DEBUG] getDongleEMG21FirmwareVersion ~ firmwareVersion: undefined.
2026-07-30T18:09:13.239Z [INFO] Try to connect at a baud rate of 115200 ...
[2026-07-30 08:09:13.240] debug: 	transport: Opening serial port with {"autoOpen":false,"baudRate":115200,"dataBits":8,"parity":"none","path":"/dev/ttyUSB0","rtscts":false,"stopBits":1}
[2026-07-30 08:09:13.242] debug: 	zh:ezsp:uart: Port closed. Error? null
[2026-07-30 08:09:13.242] debug: 	zh:ezsp:ezsp: onSerialClose()
[2026-07-30 08:09:13.244] info: 	transport: Serial port opened
2026-07-30T18:09:13.245Z [DEBUG] Reset by RTS ...
2026-07-30T18:09:13.264Z [DEBUG] Reset finished by RTS.
[2026-07-30 08:09:14.265] debug: 	gecko: Timed out waiting for FIRMWARE_TAG after 1000ms.
[2026-07-30 08:09:14.267] info: 	transport: Closing serial connection...
[2026-07-30 08:09:14.269] info: 	transport: Transport closed.
2026-07-30T18:09:14.270Z [INFO] Try to connect at a baud rate of 460800 ...
[2026-07-30 08:09:14.271] debug: 	transport: Opening serial port with {"autoOpen":false,"baudRate":460800,"dataBits":8,"parity":"none","path":"/dev/ttyUSB0","rtscts":false,"stopBits":1}
[2026-07-30 08:09:14.275] info: 	transport: Serial port opened
2026-07-30T18:09:14.276Z [DEBUG] Reset by RTS ...
2026-07-30T18:09:14.296Z [DEBUG] Reset finished by RTS.
[2026-07-30 08:09:15.298] debug: 	gecko: Timed out waiting for FIRMWARE_TAG after 1000ms.
[2026-07-30 08:09:15.299] info: 	transport: Closing serial connection...
[2026-07-30 08:09:15.301] info: 	transport: Transport closed.
2026-07-30T18:09:15.302Z [INFO] Try to connect at a baud rate of 230400 ...
[2026-07-30 08:09:15.304] debug: 	transport: Opening serial port with {"autoOpen":false,"baudRate":230400,"dataBits":8,"parity":"none","path":"/dev/ttyUSB0","rtscts":false,"stopBits":1}
[2026-07-30 08:09:15.307] info: 	transport: Serial port opened
2026-07-30T18:09:15.308Z [DEBUG] Reset by RTS ...
2026-07-30T18:09:15.327Z [DEBUG] Reset finished by RTS.
[2026-07-30 08:09:16.328] debug: 	gecko: Timed out waiting for FIRMWARE_TAG after 1000ms.
[2026-07-30 08:09:16.330] info: 	transport: Closing serial connection...
[2026-07-30 08:09:16.332] info: 	transport: Transport closed.
2026-07-30T18:09:16.334Z [INFO] [f9cb6466-87aa-4288-b6fc-72187fdb1d57] (app.mid.log) hardware data: {"model":"","firmwareVersion":"","firmwareType":"","deviceType":"Dongle-PMG24"}
2026-07-30T18:09:20.414Z [INFO] [WSS] client disconnect id: fc70a9ce-31ff-4c2a-a04c-48114b2f6b76

Frage: Kann ich irgendwie debuggen, was auf den Serial-Port zugreift?