Home Assistant Yellow: All Matter/Thread devices went "Unavailable" after working for several days

Hello,

I am seeking help with a persistent issue regarding my Matter/Thread network on a Home Assistant Yellow (2023 model / rev 1.3).

My System:

  • System: Home Assistant OS 16.2 (aarch64 / yellow)
  • Home Assistant Core: 2025.9.3
  • Supervisor: 2025.09.0
  • Devices: 1x Tado X Smart Thermostat (Wired), 7x Tado X Smart Radiator Thermostats

Problem Description: I successfully installed and commissioned my entire Tado X system (8 devices in total) with Home Assistant via Matter/Thread. The system worked perfectly for several days.

On September 17th, I noticed that all 8 Matter devices were simultaneously “Unavailable” in Home Assistant. This could have started earlier, as I wasn’t actively using the climate devices due to the good weather. My ZHA network and all Zigbee devices have continued to work perfectly without any issues.

The root of the problem is the OpenThread Border Router (OTBR) add-on, which now fails to start. The log consistently shows a timeout error when trying to initialize the radio: [W] P-SpinelDrive-: Wait for response timeout [C] Platform------: Init() at spinel_driver.cpp:83: Failure

Troubleshooting Steps Taken: My Zigbee (ZHA) integration is working and managing the radio. To fix the OTBR, I attempted to re-flash the radio firmware to resolve any potential corruption or incompatibility.

  1. I disabled all radio-related software (ZHA, Matter Server, OTBR).
  2. I used the official Silicon Labs Flasher add-on.
  3. The Flasher add-on is unable to detect the hardware on my Yellow. The log shows: WARNING: No firmware found for the selected device, assuming firmware is installed.
  4. This failure persists even after adding the reinstall_latest_firmware: true flag to the add-on’s configuration.

Summary: My Matter/Thread network was fully functional. Now, it is completely down because the OTBR add-on cannot access the radio. The official tool to fix the radio firmware (Silicon Labs Flasher) is also unable to identify the hardware. I seem to be at a dead end and suspect a deeper issue with the Supervisor, OS, or the radio hardware/firmware state.

I am attaching the full logs from both the OTBR add-on and the Flasher add-on below. Any help would be greatly appreciated.

log files OpenThread Border Router & Silicon Labs Flasher

`-----------------------------------------------------------
Add-on: OpenThread Border Router
OpenThread Border Router add-on

Add-on version: 2.13.0
You are running the latest version of this add-on.
System: Home Assistant OS 16.2 (aarch64 / yellow)
Home Assistant Core: 2025.9.3
Home Assistant Supervisor: 2025.09.0

Please, share the above information when looking for help
or support in, e.g., GitHub, forums or the Discord chat.

s6-rc: info: service banner successfully started
s6-rc: info: service universal-silabs-flasher: starting
[11:07:58] INFO: The selected serial port is not a USB device.
[11:07:58] WARNING: No firmware found for the selected device, assuming firmware is installed.
s6-rc: info: service universal-silabs-flasher successfully started
s6-rc: info: service otbr-agent: starting
[11:08:00] INFO: Setup OTBR firewall…
[11:08:00] INFO: Starting otbr-agent…
[NOTE]-AGENT—: Running 0.3.0-b067e5ac-dirty
[NOTE]-AGENT—: Thread version: 1.3.0
[NOTE]-AGENT—: Thread interface: wpan0
[NOTE]-AGENT—: Radio URL: spinel+hdlc+uart:///dev/ttyAMA0?uart-baudrate=460800&uart-flow-control
[NOTE]-AGENT—: Radio URL: trel://end0
[NOTE]-ILS-----: Infra link selected: end0
[INFO]-RCP_HOS-: OpenThread log level changed to 5
51d.15:10:23.939 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:0, cmd:RESET
51d.15:10:23.939 [D] P-SpinelDrive-: Waiting response: key=0
51d.15:10:25.941 [W] P-SpinelDrive-: Wait for response timeout
51d.15:10:25.942 [I] P-SpinelDrive-: co-processor self reset successfully
51d.15:10:25.942 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:1, cmd:PROP_VALUE_GET, key:PROTOCOL_VERSION
51d.15:10:25.942 [D] P-SpinelDrive-: Waiting response: key=1
51d.15:10:27.944 [W] P-SpinelDrive-: Wait for response timeout
51d.15:10:27.944 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:1, cmd:PROP_VALUE_GET, key:PROTOCOL_VERSION
51d.15:10:27.944 [D] P-SpinelDrive-: Waiting response: key=1
51d.15:10:29.945 [W] P-SpinelDrive-: Wait for response timeout
51d.15:10:29.945 [C] Platform------: Init() at spinel_driver.cpp:83: Failure
51d.15:10:29.945 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:1, cmd:PROP_VALUE_GET, key:PROTOCOL_VERSION
51d.15:10:29.945 [D] P-SpinelDrive-: Waiting response: key=1
51d.15:10:31.947 [W] P-SpinelDrive-: Wait for response timeout
[11:08:08] WARNING: otbr-agent exited with code 1 (by signal 0).
Chain OTBR_FORWARD_INGRESS (0 references)
target prot opt source destination
DROP all – anywhere anywhere PKTTYPE = unicast
DROP all – anywhere anywhere match-set otbr-ingress-deny-src src
ACCEPT all – anywhere anywhere match-set otbr-ingress-allow-dst dst
DROP all – anywhere anywhere PKTTYPE = unicast
ACCEPT all – anywhere anywhere
otbr-ingress-deny-src
otbr-ingress-deny-src-swap
otbr-ingress-allow-dst
otbr-ingress-allow-dst-swap
Chain OTBR_FORWARD_EGRESS (0 references)
target prot opt source destination
ACCEPT all – anywhere anywhere
[11:08:08] INFO: OTBR firewall teardown completed.
s6-svlisten1: fatal: /run/s6-rc/servicedirs/otbr-agent failed permanently or its supervisor died
s6-rc: warning: unable to start service otbr-agent: command exited 1
s6-rc: info: service legacy-cont-init: stopping
s6-rc: info: service universal-silabs-flasher: stopping
s6-rc: info: service mdns: stopping
Default: mDNSResponder (Engineering Build) (Jan 14 2025 21:08:25) stopping
/run/s6/basedir/scripts/rc.init: warning: s6-rc failed to properly bring all the services up! Check your logs (in /run/uncaught-logs/current if you have in-container logging) for more information.
/run/s6/basedir/scripts/rc.init: fatal: stopping the container.
s6-rc: info: service universal-silabs-flasher successfully stopped
s6-rc: info: service banner: stopping
s6-rc: info: service banner successfully stopped
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped
[11:08:09] INFO: mDNS ended with exit code 4 (signal 0)…
s6-rc: info: service mdns successfully stopped
[11:08:09] INFO: mDNS ended with exit code 4 (signal 0)…
s6-rc: info: service mdns successfully stopped`


Add-on: Silicon Labs Flasher
Silicon Labs firmware flasher add-on

Add-on version: 0.3.4
You are running the latest version of this add-on.
System: Home Assistant OS 16.2 (aarch64 / yellow)
Home Assistant Core: 2025.9.3
Home Assistant Supervisor: 2025.09.0

Please, share the above information when looking for help
or support in, e.g., GitHub, forums or the Discord chat.

s6-rc: info: service banner successfully started
s6-rc: info: service universal-silabs-flasher: starting
[10:58:52] INFO: The selected serial port is not a USB device.
[10:58:52] WARNING: No firmware found for the selected device, assuming firmware is installed.
[10:58:52] INFO: universal-silabs-flasher-up script exited with code 0
s6-rc: info: service universal-silabs-flasher successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
s6-rc: info: service legacy-services: stopping
s6-rc: info: service legacy-services successfully stopped
s6-rc: info: service universal-silabs-flasher: stopping
s6-rc: info: service universal-silabs-flasher successfully stopped
s6-rc: info: service banner: stopping
s6-rc: info: service banner successfully stopped
s6-rc: info: service legacy-cont-init: stopping
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped

The yellow only has one radio. So if you don’t have another dongle for Thread, you must be using multi-protocol, in which case flashing won’t work if either ZHA or OTBR is running.

And having a separate radio for ZHA and Thread is strongly advised.

1 Like

I am new to Home Assistant and was happy I got both Zigbee and Matter to work. Perhaps it was beginners luck.

I followed your advice and just ordered Home Assistant Connect ZBT-1. So I can leave the working the Zigbee device as is and use it for Thread and save myself the troubleshooting.

Check your configuration in the OTBR addon that your path to the radio contains a by-id part.
If not then you have setup a specific port number on the bus and they can be rearranged on a host restart.

Thanks Wally, dont know how to do that exactly. Using a seperate radio/dongle solved the issue, which is good enough for me. If this is the stable and recommended option I rather go with this instead. Rather not have Climate issues with winter on the way

Thread can be closed, I am unable to mark either one of you as a solution. Perhaps my account is too new?

Even though you are using two sticks a by-id part should be used.

Goto Settings → Addons → OTBR → configuration tab.