Pure HA+Thread, "Border Router required"

Make sure all your devices in the process have IPv6 enabled.
Make sure HA, Matter server and border router only have one NIC.

I assume you are using the OTBR Add-On, and if you are, you may need to restart it or verify that it is running, as it appears the Thread Integration does not see it and thus not auto-discovering it as a TBR.

(Using the HA iOS Companion App) in addition, there should also be a pseudo-button on the same screen underneath the list of TBRs, that says “SEND CREDENTIALS TO PHONE”. If you don’t see this, then I’m not entirely sure, but in your list of TBR(s) on that same page, there should be one with small icon that looks like a rectangle with a key inside, as it is this TBR’s Credentials that are to be sent to your phone. If you don’t have that icon, then that may be the reason the pseudo-button is not showing up.

Ok, I’m also trying to add a Thread/Matter Device with Home Assistant as border router.

I have a Home Assistant Connect ZBT-1 and an aqara P2 Threa/Matter Motion Sensor.

I followed this guide to make HA my first Thread border router.

I added the Thread Integration & then I enabled thread on the ZBT-1 dongle. I now can see a Thread and an Open Thread Border Router integration in HA.

And then I followed this guid for the matter part

And I now see a Matter (beta) integration in HA

Next step is to add the device with the companion app on my iphone 13 pro
I can scan the QRcode and I can see that the companion app is connecting to the device and it goes into setup phase. But then I get a message that a Thread Border Router is Required.

Home Assistant has an IPv6 address
image
And so does my phone

Any ideas where I can start looking to troubleshoot this issue?

1 Like

Thank you wmwalker. Will give it a try.

Hi there, found this via Google. Thanks for this. I pressed the button in the Thread Configure page to send to phone, but when I go to the Companion App → Debugging → Thread, I just see a blank page. There is no “Sync Thread Credentials” button visible.

That page is only for displaying the Thread credentials that have been stored on your iOS device. There is no button on that page.

This worked for me! I tried numerous times to add an Eve motion detector to my Home Assistant Yellow set up as a thread border router. On Android, I synced the thread login credentials exactly as described by Wally and was able to get it added on my first try.

Thank you, this fixed my issue with adding Thread/Matter devices.

I’m running into this issue with IOS devices, was anybody able to get this working with Apple devices?

I’m running a VM with the SkyConnect USB stick. I have followed the guides to install all of the prerequisites but I keep receiving the error that a Thread Border Router is required when I try to add the device but if I look in my thread integration the OpenThread Border Router is listed in my preferred network.

Usually this means that the Thread dataset/credentials are not known or are the incorrect ones used by the iOS Companion App when it gave it to the device to join the Thread network.

Just to verify, in this guide, step 3 says for iOS Companion app to “Send to phone”. Did you do that part?

Otherwise, the other know problem is IPv6 is not setup and running properly.

I have followed the guide, asked for help in HA discord. Read many threads here in the forum and internet at large. I used to be able to add thread items to HA but haven’t been able to add a single thread device in about two months. I continue to get this error message when I “send credentials to phone”

Looking for help please.

I can’t quite tell from your picture, but does your preferred network have a symbol showing a “key in a box”?
If not, click the 3-dots and select “Used for Android + iOS credentials”. Then try to send to phone and see what happens.

Same Problem!
I swapped my USB cable for the SOnoff dongle and then had no connection to my devices.

I then set up a new virtual machine and reinstalled Home Assistant.

However, I have the problem that “Open Thread Border Router is required” is always displayed as soon as I want to add a device. No matter which app I use.

On the iPhone, under Companion App → Debugging → Thread, an old Apple Keychain is still active, which I cannot delete. I can delete all other newly created OTBR networks without any problem, but even if I send the credentials there, no Thread network starts because it cannot connect.

I am at a loss

I’ve been scratching my head about that. The Apple Tv has the key in a lock icon and HA has the key in a lock icon.

I’ve been trying to figure out the meaning/significance of that icon but I’m thinking that’s not good.

Hmmm… I haven’t seen that before. Seems that HA may have stored away two sets of Thread credentials/dataset?? which is not what I would expect.

Maybe take a look at your HA’s ./config/.storage/thread.datasets and see if it is showing two separate Thread datasets.

Also take a look at your iOS HA Companion App UI->Settings->Companion App->Debugging->Thread and see what dataset(s) are stored in the Apple keychain, and see if any match the one for homeassistant.local. If you have more than one, then that may be the problem, as its not clear which one Apple uses for commissioning a device.

The smartphone lock icon signifies the preferred border router of a particular network. Only networks where we have the credentials from you can specify a preferred border router. You can change that by pressing the three dot menu behind the BR and select “Use router for Android + iOS credentials”.

The preferred border router is used when we add the network to the Google and Apple Thread network data store. The Google and Apple API require us to specify one of the router when adding the network. I think this is about validating that the Thread Border Router is reachable from the phone, but unfortunately it is not quite clear from the documentation why Google/Apple need a BR specified when added to their ecosystems.

Now in your case, the Apple network is most likely already in the Apple Keystore, so this is not relevant. And for the Home Assistant network, the single BR would be used as BR attached to that Thread network if you import the credentials to the Apple store.

Btw, we are considering dropping this feature and just pick one at random. But since it is not quite clear what the implications are, we currently have it there for testing.

FWIW,
Over time, I started with a “test” HA instance with its own OTBR Thread network, and later on for my “production” HA instance I added its own OTBR with the same Thread dataset as the “test” HA instance thus I have two separate HA OTBRs on the same Thread network.
Some day in the future I may remove the “test” OTBR, so what I wanted to do was to make the “production” OTBR the “preferred border router”, so I used this feature to do so. After setting things this way, I then sent the “production” Thread dataset to my iOS HA Companion app, so now its Apple Keychain has the Thread dataset set using the “production” OTBR as the border agent id.

So kinda think it would be nice to keep this feature :slight_smile:

So you’re saying that the error I get is meaningless? as in the credentials are already in keychain?

I’d like to believe that except 100 percent of the time if I try to pair a matter over thread device to HA directly, it fails. I can then successfully add the same device to HomeKit.