Hello would love some help figuring out the best way to establish by Thread network and fix my range / drop out problems. Please let me know if any other information is needed to help diagnose the problem.
Setup:
- Installation method Home Assistant OS on Raspberry Pi 5
- Core 2026.2.0
- Supervisor 2026.01.1
- Operating System 17.0
- Frontend 20260128.6
Apps:
- OpenThread Border Router 2.16.1
- Matter Server Matter Server
Thread Routers:
- Google TV Streamer
- Google Hub 7" ( on the way )
- SLZB-MR1 - Connected to HA via usb for now
- Sonoff MG24 ( currently not in use )
Current Thread Setup:
I had an existing Google Streamer that was serving a thread network. I added my ikea MYGGBETTDoor/window sensor and BILRESARemote control, white smart/dual button to it but was having frequent disconnects and range problems so I wanted to add a SLZB-MR1 to help expand the network. I tried to add the SLZB to HA initially over the network so I could have them at different locations but that didn’t work so I plugged the SLZB in via USB.
Screenshots:
Had to create an album since I am new and can’t embed the images here. Sorry for the inconvenience.
Config Screenshots
This is what my thread page looks like:
See screenshot link above
My OTBR config in HA looks like this:
See screenshot link above
The SLZB config looks like this. I have both antennas set to matter but I don’t know if I can configure HA to use both.
See screenshot link above
My pixel 10 shows this under thread networks:
See screenshot link above
What I tried:
- Initially configured SLZB-MR1 via network socket - got Spinel timeout errors (device not responding)
- Switched to direct USB serial connection - device responded successfully
- Recreated HA Thread network and imported credentials from Google Thread network
- SLZB-MR1 successfully joined network as router (RLOC16: d400, Partition ID: 0x5fea4c1c)
Current problem: Network joined successfully, but experiencing severe radio interference when pairing new devices:
- Constant
ChannelAccessFailureerrors during device commissioning ReassemblyTimeouterrors for fragmented packets- Occasional
NoAddressradio errors - Range doesn’t seem any better so I am not sure the SLZB is actually working and if devices are able to route through it. Seems like everything is still connecting to the google streamer.
Questions:
- Is my current setup the ideal way to handle a matter network with HA.
- Should the HA be the primary, I am not sure how to make this properly work since I can’t find settings in google home to join another matter network.
- Should I only have the HA? Will that cover my whole home 3000+ square feet on 3 levels.
- If the best setup is to change the primary router how do I get my phone to use the right device?
- How can I verify the network topology and see what devices are connected to what thread router?
- Why does my range seem so small. When the matter devices are kept close to the google streamer I don’t have connection problems.
- I also have a sonoff MG24 is there a way to use the SLZB and Sonoff maybe in different machines to improve the coverage even more.
- Is there a way to use both antennas on the SLZB-MR1 for matter? I don’t have any zigbee devices at the moment so I don’t need one antenna for that.
Here is some log output from OTBR:
----------------------------------------------------------
Add-on: OpenThread Border Router
OpenThread Border Router add-on
-----------------------------------------------------------
Add-on version: 2.16.1
You are running the latest version of this add-on.
System: Home Assistant OS 17.0 (aarch64 / raspberrypi5-64)
Home Assistant Core: 2026.2.0
Home Assistant Supervisor: 2026.01.1
-----------------------------------------------------------
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 otbr-agent: starting
[17:34:40] INFO: Setup OTBR firewall...
[17:34:40] INFO: Migrating OTBR settings if needed...
2026-02-06 17:34:40 homeassistant asyncio[237] DEBUG Using selector: EpollSelector
2026-02-06 17:34:40 homeassistant zigpy.serial[237] DEBUG Opening a serial connection to '/dev/serial/by-id/usb-SMLIGHT_SMLIGHT_SLZB-MR1_96a2e1371916f011a6e9e274b887153e-if00-port0' (baudrate=460800, xonxoff=False, rtscts=False)
2026-02-06 17:34:40 homeassistant serialx.platforms.serial_posix[237] DEBUG Configuring serial port '/dev/serial/by-id/usb-SMLIGHT_SMLIGHT_SLZB-MR1_96a2e1371916f011a6e9e274b887153e-if00-port0'
2026-02-06 17:34:40 homeassistant serialx.platforms.serial_posix[237] DEBUG Configuring serial port: [0, 0, 3248, 0, 4100, 4100, [b'\x03', b'\x1c', b'\x7f', b'\x15', b'\x04', 0, 0, b'\x00', b'\x11', b'\x13', b'\x1a', b'\x00', b'\x12', b'\x0f', b'\x17', b'\x16', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00', b'\x00']]
2026-02-06 17:34:40 homeassistant serialx.platforms.serial_posix[237] DEBUG Setting low latency mode: True
2026-02-06 17:34:40 homeassistant serialx.platforms.serial_posix[237] DEBUG Setting modem pins: ModemPins[!dtr !rts]
2026-02-06 17:34:40 homeassistant serialx.platforms.serial_posix[237] DEBUG TIOCMBIC: 0x00000006
2026-02-06 17:34:40 homeassistant zigpy.serial[237] DEBUG Connection made: <serialx.platforms.serial_posix.PosixSerialTransport object at 0x7fa70c4490>
2026-02-06 17:34:40 homeassistant universal_silabs_flasher.spinel[237] DEBUG Sending frame SpinelFrame(header=SpinelHeader(transaction_id=0, network_link_id=0, flag=2), command_id=<CommandID.RESET: 1>, data=b'\x02')
2026-02-06 17:34:40 homeassistant universal_silabs_flasher.spinel[237] DEBUG Sending data b'~\x80\x01\x02\xea\xf0~'
2026-02-06 17:34:40 homeassistant serialx.descriptor_transport[237] DEBUG Immediately writing b'~\x80\x01\x02\xea\xf0~'
2026-02-06 17:34:40 homeassistant serialx.descriptor_transport[237] DEBUG Sent 7 of 7 bytes
2026-02-06 17:34:40 homeassistant serialx.descriptor_transport[237] DEBUG Event loop woke up reader
2026-02-06 17:34:40 homeassistant serialx.descriptor_transport[237] DEBUG Received b'~\x80\x06\x00p\xeet~'
2026-02-06 17:34:40 homeassistant universal_silabs_flasher.spinel[237] DEBUG Decoded HDLC frame: HDLCLiteFrame(data=b'\x80\x06\x00p')
2026-02-06 17:34:40 homeassistant universal_silabs_flasher.spinel[237] DEBUG Parsed frame SpinelFrame(header=SpinelHeader(transaction_id=0, network_link_id=0, flag=2), command_id=<CommandID.PROP_VALUE_IS: 6>, data=b'\x00p')
2026-02-06 17:34:40 homeassistant universal_silabs_flasher.spinel[237] DEBUG Sending frame SpinelFrame(header=SpinelHeader(transaction_id=3, network_link_id=0, flag=2), command_id=<CommandID.PROP_VALUE_GET: 2>, data=b'\x08')
2026-02-06 17:34:40 homeassistant universal_silabs_flasher.spinel[237] DEBUG Sending data b'~\x83\x02\x08\xbc\x9a~'
2026-02-06 17:34:40 homeassistant serialx.descriptor_transport[237] DEBUG Immediately writing b'~\x83\x02\x08\xbc\x9a~'
2026-02-06 17:34:40 homeassistant serialx.descriptor_transport[237] DEBUG Sent 7 of 7 bytes
2026-02-06 17:34:40 homeassistant serialx.descriptor_transport[237] DEBUG Event loop woke up reader
2026-02-06 17:34:40 homeassistant serialx.descriptor_transport[237] DEBUG Received b'~\x83\x06\x08\xf0\xfdE\xff\xfe\xf7\x177\x10\xa9~'
2026-02-06 17:34:40 homeassistant universal_silabs_flasher.spinel[237] DEBUG Decoded HDLC frame: HDLCLiteFrame(data=b'\x83\x06\x08\xf0\xfdE\xff\xfe\xf7\x177')
2026-02-06 17:34:40 homeassistant universal_silabs_flasher.spinel[237] DEBUG Parsed frame SpinelFrame(header=SpinelHeader(transaction_id=3, network_link_id=0, flag=2), command_id=<CommandID.PROP_VALUE_IS: 6>, data=b'\x08\xf0\xfdE\xff\xfe\xf7\x177')
2026-02-06 17:34:40 homeassistant serialx.descriptor_transport[237] DEBUG Closing at the request of the application
2026-02-06 17:34:40 homeassistant zigpy.serial[237] DEBUG Waiting for serial port to close
2026-02-06 17:34:40 homeassistant serialx.descriptor_transport[237] DEBUG Closing connection: None
2026-02-06 17:34:40 homeassistant serialx.descriptor_transport[237] DEBUG Closing file descriptor 7
2026-02-06 17:34:41 homeassistant serialx.descriptor_transport[237] DEBUG Calling protocol `connection_lost` with exc=None
2026-02-06 17:34:41 homeassistant zigpy.serial[237] DEBUG Connection lost: None
Adapter settings file /data/thread/0_f0fd45fffef71737.data is the most recently used, skipping
[17:34:41] 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/serial/by-id/usb-SMLIGHT_SMLIGHT_SLZB-MR1_96a2e1371916f011a6e9e274b887153e-if00-port0?uart-baudrate=460800&uart-init-deassert
[NOTE]-AGENT---: Radio URL: trel://wlan0
[NOTE]-ILS-----: Infra link selected: wlan0
49d.17:31:13.040 [C] P-SpinelDrive-: Software reset co-processor successfully
00:00:00.072 [N] RoutingManager: BR ULA prefix: fd17:18e3:57e7::/48 (loaded)
00:00:00.072 [N] RoutingManager: Local on-link prefix: fd35:4d83:55b3:8909::/64
00:00:00.097 [N] Mle-----------: Role disabled -> detached
00:00:00.109 [N] P-Netif-------: Changing interface state to up.
00:00:00.119 [W] P-Netif-------: Failed to process request#2: No such process
00:00:00.120 [W] P-Netif-------: Failed to process request#6: No such process
Connection to 172.30.32.1 8081 port [tcp/tproxy] succeeded!
s6-rc: info: service otbr-agent successfully started
s6-rc: info: service otbr-agent-configure: starting
Done
s6-rc: info: service otbr-agent-configure successfully started
s6-rc: info: service otbr-agent-rest-discovery: starting
[17:34:41] INFO: Successfully sent discovery information to Home Assistant.
s6-rc: info: service otbr-agent-rest-discovery successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
00:00:00.678 [N] Mle-----------: Role detached -> router
00:00:00.678 [N] Mle-----------: Partition ID 0x5fea4c1c
00:00:00.787 [W] P-Netif-------: Successfully added an external route fc00::/7 in kernel
00:00:02.803 [W] P-RadioSpinel-: Error processing result: NoAddress
00:00:02.803 [W] P-RadioSpinel-: Error waiting response: NoAddress
00:00:02.839 [N] MeshForwarder-: Dropping IPv6 UDP msg, len:196, chksum:9d8b, ecn:no, sec:yes, error:Drop, prio:net, radio:all
00:00:02.839 [N] MeshForwarder-: src:[fe80:0:0:0:a827:18e9:ea1:16ce]:19788
00:00:02.839 [N] MeshForwarder-: dst:[ff02:0:0:0:0:0:0:1]:19788
00:00:03.646 [N] MeshForwarder-: Dropping (reassembly queue) IPv6 UDP msg, len:171, chksum:fc8e, ecn:no, sec:yes, error:ReassemblyTimeout, prio:net, rss:-73.0, radio:15.4
00:00:03.646 [N] MeshForwarder-: src:[fe80:0:0:0:880c:a90a:9fa9:d555]:19788
00:00:03.646 [N] MeshForwarder-: dst:[ff02:0:0:0:0:0:0:1]:19788
00:00:04.654 [W] DuaManager----: Failed to perform next registration: NotFound
00:00:10.371 [W] P-RadioSpinel-: Handle transmit done failed: ChannelAccessFailure
00:00:10.556 [W] P-RadioSpinel-: Handle transmit done failed: ChannelAccessFailure
00:00:10.817 [W] P-RadioSpinel-: Handle transmit done failed: ChannelAccessFailure
00:00:10.817 [N] MeshForwarder-: Failed to send IPv6 UDP msg, len:99, chksum:d67e, ecn:no, to:0x8800, sec:yes, error:ChannelAccessFailure, prio:net, radio:15.4
00:00:10.817 [N] MeshForwarder-: src:[fda4:1ac2:cdbf:2736:0:ff:fe00:6800]:61631
00:00:10.817 [N] MeshForwarder-: dst:[fda4:1ac2:cdbf:2736:0:ff:fe00:fc00]:61631
00:00:11.417 [W] P-RadioSpinel-: Handle transmit done failed: ChannelAccessFailure
00:00:13.685 [W] P-RadioSpinel-: Handle transmit done failed: ChannelAccessFailure
00:00:13.685 [N] MeshForwarder-: Failed to send IPv6 UDP msg, len:99, chksum:d67e, ecn:no, to:0x8800, sec:yes, error:ChannelAccessFailure, prio:net, radio:15.4
00:00:13.685 [N] MeshForwarder-: src:[fda4:1ac2:cdbf:2736:0:ff:fe00:6800]:61631
00:00:13.685 [N] MeshForwarder-: dst:[fda4:1ac2:cdbf:2736:0:ff:fe00:fc00]:61631
00:00:13.685 [N] MeshForwarder-: dst:[fda4:1ac2:cdbf:2736:0:ff:fe00:fc00]:61631
00:00:20.311 [W] P-RadioSpinel-: Error processing result: NoAddress
00:00:20.311 [W] P-RadioSpinel-: Error waiting response: NoAddress
Thank You,
Nathan




