#Issue setting up new ZBT-2

1 messages · Page 1 of 1 (latest)

fickle haven
#

Just got my new ZBT-2 in to replace an aging ConBee II on my UNRAID server.

Installation method Home Assistant Container
Core 2025.12.5
Frontend 20251203.3

I followed along all the steps here: https://support.nabucasa.com/hc/en-us/articles/29400665034397-Migrating-an-existing-Zigbee-Home-Automation-ZHA-network-to-Home-Assistant-Connect-ZBT-2 including passing along both devices to the container

  --device='/dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2411473-if00:/dev/ttyACM0'
  --device='/dev/serial/by-id/usb-Nabu_Casa_ZBT-2_DCB4D90F9500-if00' 'homeassistant/home-assistant' 

In the adoption process, I told it to migrate my existing ZigBee network to the new coordinator and got the attached message.
The log shows this error:

Logger: homeassistant.components.homeassistant_hardware.firmware_config_flow
Source: components/homeassistant_hardware/firmware_config_flow.py:203
integration: Home Assistant Hardware (documentation, issues)
First occurred: 16:43:10 (1 occurrence)
Last logged: 16:43:10

Failed to flash firmware
Traceback (most recent call last):
  File "/usr/local/lib/python3.13/site-packages/zigpy/serial.py", line 132, in create_serial_connection
    raise exc.__context__ from None
  File "/usr/local/lib/python3.13/site-packages/serial/serialposix.py", line 385, in _reconfigure_port
    fcntl.flock(self.fd, fcntl.LOCK_EX | fcntl.LOCK_NB)
    ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
BlockingIOError: [Errno 11] Resource temporarily unavailable

A second attempt yields the same result.

Why would the resource be temporarily unavailable? I just plugged the ZBT-2 into my server for the first time then spent a minute finding where the server mapped it and updating my container config to point at it before restarting the container.

What are my next steps to figure out why this is unavailable?

(edited to remove multiple copies of the screen shot)

warm sedge
#

Hmm. Running Home Assistant OS is always recommended, but I don’t see anything wrong. Can you try this again on Home Assistant Core 2026.1.0, released today? It includes a new serial library that might not cause this issue.

#

Otherwise, make sure no custom integrations are running that somehow access the adapter.

remote iris
#

I found this might help

--device='/dev/serial/by-id/usb-Nabu_Casa_ZBT-2_DCB4D90F9500-if00:/dev/ttyACM1' \
'homeassistant/home-assistant'```
#

Peeked the thread from Uinifi server and followed over

remote iris
#

Oop, popped up now haha

#

@fickle haven Did that work?

fickle haven
#

First of all: Woah!!!

#

Second:

Home Assistant Core 2026.1.0, released today? It includes a new serial library that might not cause this issue.
might not, but unfortunately, still did. It made it much further into the process before it failed, though, so that's an improvement, right? 😄

fickle haven
#

@warm sedge, you're a scholar, savior, and saint!
Whatever they're paying you, it should be more!!!

#

Although... HA is still trying to update firmware...

#

and it failed 😢

warm sedge
#

Uh, that’s not good. There must be something wrong with the passthrough then. It’ll only try to install if it can’t detect anything or if it’s on outdated firmware.

fickle haven
#
Logger: homeassistant.components.homeassistant_hardware.firmware_config_flow
Source: components/homeassistant_hardware/firmware_config_flow.py:203
integration: Home Assistant Hardware (documentation, issues)
First occurred: 19:54:04 (1 occurrence)
Last logged: 19:54:04

Failed to flash firmware
warm sedge
#

There is one more alternative you can try: Migrate the adapter through the Zigbee dashboard

#

That skips the firmware update entirely

fickle haven
#

here, I presume. Of course, backup first

warm sedge
#

Also, did you try adding the Docker device path like cmdshft mentioned?

fickle haven
#

ah, no. I'll give that a shot first

#

updated, still wants to install firmware.
Though this time, I noticed that ZHA is failing to setup (changing in the background).

#

don't recall seeing that in previous attempts, but I have had the ConBee fail to set up, hence the ZBT-2

#

Nope. still no dice on the ZBT-2 setup

#

Will try the manual migrate

#

and yes, the ConBee is failing to setup again.

warm sedge
#

With what error message is Conbee setup failing?

#

I recall Conbee often haven issues on UNRAID

fickle haven
#

Mine's run without issue for ~2 years, then right after Christmas... 🙁

warm sedge
#

The container device paths are different for Conbee and ZBT-2, right?

fickle haven
#
--device='/dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2411473-if00:/dev/ttyACM0'
  --device='/dev/serial/by-id/usb-Nabu_Casa_ZBT-2_DCB4D90F9500-if00:/dev/ttyACM1' 'homeassistant/home-assistant' 
#

after 3-4 retries, it got connected to the CB

#

not seeing an error report for it in the logs. 🤷‍♂️
Will try the manual migration

#

Did a manual backup, then it automatically does one. 😄
This, however, is concerning:

warm sedge
#

Do you have a Z-Wave stick?

#

That also doesn’t match the paths you set in the Docker config? 🤔

fickle haven
#

do I enter manually with /dev/serial/by-id/usb-Nabu_Casa_ZBT-2_DCB4D90F9500-if00:/dev/ttyACM1
oh, /dev/ttyACM0 which is the address of the CB

#

Yes, I do have a z-wave stick

warm sedge
#

But it’s not passed to your HA container?

fickle haven
#

Yeah, oddly, it's not. I plugged the thing into my UNRAID server, went to the Devices & Services page, and there it was!

#

Ah!!!!!

#

HA thinks the zwave stick is on ACM1, which it is, and the CB is on ttyACM2

#

now I've bumfoozled myself. gimme a sec...

#

OK, the physical server has that ^^. but, logically, I've passed the two ZB sticks into the HA container as
CB on ttyACM0
ZBT on ttyACM1
ZW on... nada, yet somehow detected.
Going to modify the docker config to intentionally pass the ZW stick in and hope it doesn't break everything!

#

but first: BACKUPS!

#

meh... last backup was at 03:00 today. That's going to be good enough. Haven't made any changes other than trying to get this ZBT-2 working

#

hrm...

#

and yet...

#

dinner

fickle haven
#

Manual migration:

#

🎉

warm sedge
#

Nice!

fickle haven
#

Thank you again for saving my bacon!!! Truly appreciated!

#

One side question, though. In my docker config, I have:

--device='/dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2411473-if00:/dev/ttyACM0'
--device='/dev/serial/by-id/usb-Nabu_Casa_ZBT-2_DCB4D90F9500-if00:/dev/ttyACM1'
--device='/dev/serial/by-id/usb-Zooz_800_Z-Wave_Stick_533D004242-if00:/dev/ttyACM2'

Yet, the ttyACMx numbers shown in the list of adapters when I went to manually update actually match what UNRAID reports:

#

why is that? Am I wrong in presuming that the --device /dev/....:/dev/ttyACMx is assigning the tty device ID within the container?

#

Also, why does the ZHA integration still show that I'm running on the CB?

#

Though the serial port listed is /dev/ttyACM0 which matches the migration dialog & UNRAID, but not my --device mapping which has the CB on /ttyACM0.

#

I'm mighty confused.

warm sedge
#

Not familiar enough with the Docker passthrough. But the config entry for ZHA just isn’t renamed at the moment. You can do that manually.

#

Reason being is that it could contain user data we shouldn’t just override, but it might make more sense..

fickle haven
#

Rename here?

fickle haven
#

Zigbee group names, that is.

warm sedge
#

That’s the coordinator name, different from the ZHA config entry name.

#

In the future, we might attach ZHA groups to a virtual device instead of the coordinator. But that’s why they currently include the coordinator name

fickle haven
#

Oddly, some of the groups have that prefixed and some don't