I am trying to pair 6 new Matter over Thead devices to a Home Assistant Yellow using the built in Silicon Labs radio. Its been quite a journey and unfortunately I don’t have a solution yet. I am going to detail some steps and learning here and ask for some help!
First, everyone with a HA Yellow or Sky Connect / ZBT-1 dongle needs to start here.
I found this works very well. I actually have a two HA instances, a HA Yellow and a generic Raspberry Pi with the ZBT-1 dongle.
I am trying to pair Leviosa shades. I don’t have another matter over thread device to try. I am open to purchasing something else others have had good reliability from.BUT I do not think the shades are the problem.
I started out by ordering a single motor to test the Matter/Thread experience. It was incredibly easy! It paired on the first attempt and I kind of thought “wow this Matter Beta is better than I was expecting”. Brilliant, order 6 shades…
But now, I cannot pair any of the new shades, and after removing the test motor I cannot re-pair it again. What worked once no longer works! Very frustrating. I’ve had any number of different errors along the way.
Learnings & Debug
-
Check that the Integrations page has three items
a) Matter (Beta)
b) OT Open Thread Border Router
c) Thread -
Check Addons page has
a) Matter Server (I am running 7.0.0)
b) OpenThread Boarder Router (I am running 2.12.2)
(and I am running HA Core 2025.1.0, and Supervisor 2024.12.3). -
Check both addons are running and enable debug logging levels
a) Matter Server => Configuration tab, select Matter Server Log Level to debug.
b) OpenThread Border Router => Configuration tab, select OpenThread Boarder Router agent log level to debug
Help - Not sure what the configuration option NAT64 IPv6 to IPv4 address translation should be set to. I read some things about Matter needing IPV6, but I don’t think that applies to Thread which is already IPv6. I think this only matters for Matter over a network. Changing the setting has not seemed to help me.
- Check the logs for both servers
a) Open Thread should be spewing up messages every 10 seconds or so. I am not totally sure what I am looking at here but it looks functional!
18:13:44.271 [I] Mle-----------: Send Advertisement (ff02:0:0:0:0:0:0:1)
18:13:44.272 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:14, cmd:PROP_VALUE_SET, key:STREAM_RAW, len:69, channel:15, maxbackoffs:4, maxretries:15 ...
18:13:44.272 [D] P-SpinelDrive-: ... csmaCaEnabled:1, isHeaderUpdated:0, isARetx:0, skipAes:0, txDelay:0, txDelayBase:0
18:13:44.272 [D] P-Trel--------: SendPacket() -- sendto() failed errno 101
18:13:44.272 [D] P-Trel--------: SendPacket([fdde:7b3d:1a0:69c0:8018:3451:90d1:3f6]:55228) err:Abort pkt:[(len:83) 00 0f 65 6a 00 00 1b 6b 9e ef af 12 9e 74 85 b1 ... ]
18:13:44.280 [D] P-SpinelDrive-: Received spinel frame, flg:0x2, iid:0, tid:14, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
18:13:44.280 [I] MeshForwarder-: Sent IPv6 UDP msg, len:90, chksum:bcfb, ecn:no, to:0xffff, sec:no, prio:net, radio:all
18:13:44.280 [I] MeshForwarder-: src:[fe80:0:0:0:9cef:af12:9e74:85b1]:19788
18:13:44.280 [I] MeshForwarder-: dst:[ff02:0:0:0:0:0:0:1]:19788
b) Matter
Check the matter server has also started successfully. I see this set of log messages repeating over and over.
Help - I don’t know if these 2 failures are critical and what to do about them. I don’t think they matter, they refer to wlan0. I don’t have wlan0 set up, the HA Yellow connects via ethernet.
2025-01-04 10:24:17.907 (Dummy-2) CHIP_DETAIL [chip.native.DIS] SRV record already actively processed.
2025-01-04 10:24:17.908 (Dummy-2) CHIP_DETAIL [chip.native.DIS] SRV record already actively processed.
2025-01-04 10:24:17.910 (Dummy-2) CHIP_DETAIL [chip.native.DIS] SRV record already actively processed.
2025-01-04 10:24:17.912 (Dummy-2) CHIP_DETAIL [chip.native.DIS] SRV record already actively processed.
2025-01-04 10:24:17.913 (Dummy-2) CHIP_DETAIL [chip.native.DIS] SRV record already actively processed.
2025-01-04 10:24:17.914 (Dummy-2) CHIP_DETAIL [chip.native.DIS] SRV record already actively processed.
2025-01-04 10:24:17.915 (Dummy-2) CHIP_DETAIL [chip.native.DIS] SRV record already actively processed.
2025-01-04 10:24:17.916 (Dummy-2) CHIP_DETAIL [chip.native.DIS] SRV record already actively processed.
2025-01-04 10:24:17.917 (Dummy-2) CHIP_DETAIL [chip.native.DIS] SRV record already actively processed.
2025-01-04 10:24:17.918 (Dummy-2) CHIP_DETAIL [chip.native.DIS] SRV record already actively processed.
2025-01-04 10:24:17.919 (Dummy-2) CHIP_DETAIL [chip.native.DIS] SRV record already actively processed.
2025-01-04 10:24:17.920 (Dummy-2) CHIP_DETAIL [chip.native.DIS] SRV record already actively processed.
2025-01-04 10:24:17.921 (Dummy-2) CHIP_DETAIL [chip.native.DIS] SRV record already actively processed.
2025-01-04 10:24:17.921 (Dummy-2) CHIP_DETAIL [chip.native.DIS] SRV record already actively processed.
2025-01-04 10:24:17.922 (Dummy-2) CHIP_DETAIL [chip.native.DIS] SRV record already actively processed.
2025-01-04 10:24:17.924 (Dummy-2) CHIP_DETAIL [chip.native.DIS] Warning: Attempt to mDNS broadcast failed on wlan0: src/inet/UDPEndPointImplSockets.cpp:421: OS Error 0x02000065: Network is unreachable
2025-01-04 10:24:17.928 (Dummy-2) CHIP_DETAIL [chip.native.DIS] Warning: Attempt to mDNS broadcast failed on ???: src/inet/UDPEndPointImplSockets.cpp:421: OS Error 0x02000013: No such device
2025-01-04 10:24:17.928 (Dummy-2) CHIP_DETAIL [chip.native.DIS] mDNS broadcast had only partial success: 14 successes and 2 failures.
2025-01-04 10:24:17.929 (Dummy-2) CHIP_DETAIL [chip.native.DIS] SRV record already actively processed.
2025-01-04 10:24:17.930 (Dummy-2) CHIP_DETAIL [chip.native.DIS] SRV record already actively processed.
2025-01-04 10:24:17.931 (Dummy-2) CHIP_DETAIL [chip.native.DIS] SRV record already actively processed.
2025-01-04 10:24:17.933 (Dummy-2) CHIP_DETAIL [chip.native.DIS] Warning: Attempt to mDNS broadcast failed on wlan0: src/inet/UDPEndPointImplSockets.cpp:421: OS Error 0x02000065: Network is unreachable
2025-01-04 10:24:17.936 (Dummy-2) CHIP_DETAIL [chip.native.DIS] Warning: Attempt to mDNS broadcast failed on ???: src/inet/UDPEndPointImplSockets.cpp:421: OS Error 0x02000013: No such device
2025-01-04 10:24:17.937 (Dummy-2) CHIP_DETAIL [chip.native.DIS] mDNS broadcast had only partial success: 14 successes and 2 failures.
2025-01-04 10:24:20.845 (Dummy-2) CHIP_DETAIL [chip.native.DIS] SRV record already actively processed.
2025-01-04 10:24:20.848 (Dummy-2) CHIP_DETAIL [chip.native.DIS] SRV record already actively processed.
2025-01-04 10:24:20.851 (Dummy-2) CHIP_DETAIL [chip.native.DIS] SRV record already actively processed.
2025-01-04 10:24:20.852 (Dummy-2) CHIP_DETAIL [chip.native.DIS] SRV record already actively processed.
2025-01-04 10:24:20.853 (Dummy-2) CHIP_DETAIL [chip.native.DIS] SRV record already actively processed.
2025-01-04 10:24:20.854 (Dummy-2) CHIP_DETAIL [chip.native.DIS] SRV record already actively processed.
2025-01-04 10:24:20.855 (Dummy-2) CHIP_DETAIL [chip.native.DIS] SRV record already actively processed.
2025-01-04 10:24:20.856 (Dummy-2) CHIP_DETAIL [chip.native.DIS] SRV record already actively processed.
2025-01-04 10:24:20.857 (Dummy-2) CHIP_DETAIL [chip.native.DIS] SRV record already actively processed.
2025-01-04 10:24:20.859 (Dummy-2) CHIP_DETAIL [chip.native.DIS] SRV record already actively processed.
2025-01-04 10:24:20.860 (Dummy-2) CHIP_DETAIL [chip.native.DIS] SRV record already actively processed.
2025-01-04 10:24:20.861 (Dummy-2) CHIP_DETAIL [chip.native.DIS] SRV record already actively processed.
2025-01-04 10:24:20.862 (Dummy-2) CHIP_DETAIL [chip.native.DIS] SRV record already actively processed.
2025-01-04 10:24:20.862 (Dummy-2) CHIP_DETAIL [chip.native.DIS] SRV record already actively processed.
2025-01-04 10:24:20.864 (Dummy-2) CHIP_DETAIL [chip.native.DIS] Warning: Attempt to mDNS broadcast failed on wlan0: src/inet/UDPEndPointImplSockets.cpp:421: OS Error 0x02000065: Network is unreachable
2025-01-04 10:24:20.867 (Dummy-2) CHIP_DETAIL [chip.native.DIS] Warning: Attempt to mDNS broadcast failed on ???: src/inet/UDPEndPointImplSockets.cpp:421: OS Error 0x02000013: No such device
2025-01-04 10:24:20.868 (Dummy-2) CHIP_DETAIL [chip.native.DIS] mDNS broadcast had only partial success: 14 successes and 2 failures.
2025-01-04 10:24:20.869 (Dummy-2) CHIP_DETAIL [chip.native.DIS] SRV record already actively processed.
2025-01-04 10:24:20.870 (Dummy-2) CHIP_DETAIL [chip.native.DIS] SRV record already actively processed.
2025-01-04 10:24:20.871 (Dummy-2) CHIP_DETAIL [chip.native.DIS] SRV record already actively processed.
2025-01-04 10:24:20.871 (Dummy-2) CHIP_DETAIL [chip.native.DIS] SRV record already actively processed.
2025-01-04 10:24:20.873 (Dummy-2) CHIP_DETAIL [chip.native.DIS] Warning: Attempt to mDNS broadcast failed on wlan0: src/inet/UDPEndPointImplSockets.cpp:421: OS Error 0x02000065: Network is unreachable
2025-01-04 10:24:20.877 (Dummy-2) CHIP_DETAIL [chip.native.DIS] Warning: Attempt to mDNS broadcast failed on ???: src/inet/UDPEndPointImplSockets.cpp:421: OS Error 0x02000013: No such device
2025-01-04 10:24:20.878 (Dummy-2) CHIP_DETAIL [chip.native.DIS] mDNS broadcast had only partial success: 14 successes and 2 failures.
(On my first magical test which worked I didn’t look at any of these logs and it just worked. But after that, during debug I found the servers failing to start and looping on watchdog restarts. One thing that fixed this was re-configuring the hardware per the original HA Yellow instructions. Running that again seemed to fix some things).
- Check Thread Integration’s preferred network. Go to Integrations, Thread, and select Configure. You should see something like this, noting that I have two HA instances and two thread networks each managed by a different HA instance.
Now (this tricked me for a while), do that same step on a mobile device though the companion app. On the companion app you get an option for the Preferred network to SEND CREDENTIALS TO PHONE.
Then in the companion app you can check this worked by going to Settings=>Compainion App => Debugging => Thread and making sure you have a key chain for the Preferred network. When this was not correct, when pairing a device I got errors about not having a Thread Boarder Router for my network.
Note that Google searches about this return some out dated advice applying to older versions of the companion app. The location of the thread debugging information has changed!
( I also note that in my initial test all this happened automatically and it worked “magically”. All these steps are part of the debug when it hasn’t worked and I’ve reset and created new networks while trying to get things going. This needs the credentials to be shared with the phone ).
- Pair a device using a mobile device running Companion App.
Now place the device into pairing mode, go to Integrations => devices tab and Add Device. Choose Matter and use the camera on device to scan the pairing QR code.
I see messages in the companion app that say connecting, then Setting up. Then it fails and says failed to pair.
Help - This is where I am stuck. I cant see much from the logs to help me with the failure!
Matter log has this, showing me it found the device but there are no more messages that indicate pairing progress or why the pairing failed.
2025-01-04 09:37:47.728 (MainThread) DEBUG [matter_server.server.device_controller.mdns] Discovered commissionable Matter node: AsyncServiceInfo(type='_matterc._udp.local.', name='92B6D14DBC12E908._matterc._udp.local.', addresses=[], port=5540, weight=0, priority=0, server='D28AC72829E9219C.local.', properties={b'VP': b'5402+4660', b'SII': b'2800', b'SAI': b'1000', b'T': b'0', b'D': b'2903', b'CM': b'0', b'PH': b'36', b'PI': None}, interface_index=None)
and much later I see this message, probably indicating the matter device stopped advertising itself.
2025-01-04 10:45:04.864 (MainThread) DEBUG [matter_server.server.device_controller.mdns] Commissionable Matter node disappeared: AsyncServiceInfo(type='_matterc._udp.local.', name='9131BA987B572EDE._matterc._udp.local.', addresses=[], port=None, weight=0, priority=0, server=None, properties={}, interface_index=None)
Final thoughts.
I have HA Yellow connected to a Ubiquity network over ethernet.
HA network settings for IPv4 and IPV6 are both set to Automatic. Ubiquity provides a reserved address over DHCP.
I don’t think any IPv6 network issue should matter, because all traffic should be device => Thread Dongle => into Home Assistant. But I do have those wlan errors in the matter logs so I mention it here.