Best thread border router

I’d like to get a thread border router. I thought that home assistant green + the sky connect dongle might work but it seems like that’s not quite ready yet, at least for a relatively simple setup.

I could get a smart display like the nest hub, but I’ve already got a 1st gen one and I don’t want another. I don’t really like having youtube etc accessible on it, too distracting.

The other option seems to be mesh networks like google nest wifi pro or eero. I want a mesh network anyway, so this could be a good choice. Both of those options have mixed reviews though and it might be better to get a well reviewed TP Link Deco system and have a separate border router, but I haven’t found anything else that supports it yet. Perhaps the nano leaf shape, but I’m not really keen on that.

The skyconnect in non multipan mode works if you want to go that route, it’s just that there are issues to be resolved with multipan at this time so its reccomended to have 2, one for zigbee one for thread modes in exclusive mode.

I currently have one in pure zigbee mode and just a few days ago setup a GL-S200 that does both thread and has the option to act as a BT relay via MQTT and I had no need of the other options out there for my setup to keep it all local control.

Using the skyconnect would be my preference if it works. I’ll just get two then for thread and zigbee.

For most users that is the best option for setup and use until they start dev work into multipan again and manage to fix its issues when you don’t need more for your setup at the time.

I use a Skyconnect with a Thread-only firmware and it has been working perfectly for a long time.

I have recently added a ESP32-H2 Open Thread Border Router by following the guide here:
https://openthread.io/guides/border-router/espressif-esp32

The ESP32-H2 is just for redundancy when HA server is being restarted or worked with, so the Matter network still work and the Matter integration/addon is faster to link up again after a restart.

My skyconnect running thread only is a bit finnicky, but I don’t have any devices yet. Nothing major, just have to get a plug and start playing. When I reboot it finds the skyconnect every time. If I restart the OTBR addon, it goes back to normal,

I use HomePod minis, because I already had them, but if not I might consider a low-cost standalone option like the OTBR/esp32-based GL-S20 with PoE from GL-iNet; I use their security appliance and am very happy with it.

It certainly makes a lot of sense to get Thread for “free” as part of a WiFi 6 upgrade, which if you haven’t done yet, is a big improvement in WiFi performance. At least a few seem to have managed to import Eero credentials to make it their preferred Thread network, so that might be a viable option.

Did you manage to successfully merge the Thread networks of Apple and OTBR or are you currently running a Apple network only? When I merged the two networks about a year ago, everything was incredibly unstable, so I created a new OTBR based network instead. I should have moved everything to Apple, as currently I cannot access the devices from their iOS apps.

No, I’m still Apple-only. I do have an ESP32-H2 lying around and might setup an OTBR just for fun, or possibly for management visibility since Apple hides everything handles everything for you. Performance-wise there’s not much point — one or two TBRs is all you really need — they’re just basic routers in the classic IP sense, moving packets between differently-addressed subnets with different PHYs/datalinks.

I’m surprised by your comment that iOS apps can’t access OTBR-provisioned devices. Thread devices are just IP devices on their own subnet. Once they are setup, apps shouldn’t care what mesh or credentials were used for the layer-2 connection. My linux machines can ping Thread devices on my Apple mesh as long as I do the address lookups correctly (though that is the tricky part). Maybe iOS apps are using some sort of keychain or Apple Home shortcut for address lookup, which would be unfortunate.

iOS does not allow you to choose the Thread network it should join. My iPhone simply joins the thread network created by my Homepod Mini, which is completely empty. There’s no way to enter the credentials of the OTBR thread network in iOS, no way to default to this network, no way to ignore the Homepod Mini. That’s why the apps cannot access the devices on the OTBR network.

Eero (which uses OTBR) and Nanoleaf Thread border routers work with HomeKit, so there are definitely ways to sync their Thread credentials with your iCloud Keychain — maybe that’s what the “send credentials to phone” feature in the iOS companion app does for HA. I’m curious, have you tried it?

Apple developer docs indicate you can have a preferred Thread network, implying there’s functionality for more than one in the keychain. Still unclear whether there is a UI anywhere to let the user select the preferred network when >1 are available during commissioning.

However, once a device is on any connected Thread network, regardless of setup method, it’s just an IP device, and apps should be able to connect to it using basic routing functionality. I suspect what you’re finding is that apps are using Apple Home APIs, perhaps for name resolution(?), and since the device isn’t added to Apple Home, the app’s functionality is limited.

As mentioned above about a year ago I managed to join the OTBR to my Apple thread network. It wasn’t easy, but it worked – and that’s probably what Eero does too, join an existing Non-Eero network.

When I joined OTBR and Homepod Mini to a single network, this was an attempt to create more stability. Unfortunately this backfired, so a few weeks later I set up an entirely new thread network in OTBR with a different channel and moved all my thread devices to this network (with the effect that HA treated them all as new devices if I remember correctly, needing to update many automations, template sensors etc).

Only then I realised that my iPhone will only access the (empty) Apple thread network. I’ve given up since, started purchasing Zigbee devices and decided I would move back everything to the Apple thread network when I have a few spare hours, so I can configure/edit/update the devices (e.g. Eve Thermo doesn’t expose the calibration offset to HA, this can only be adjusted from the Eve iOS app).

While the developer docs you linked (thanks!) imply that more than one Thread network can be accessed from iOS, I’ve not seen this functionality. I remember last year the Nanoleaf iOS app was able to display all the technical details about the network, but it seems this functionality has been removed since. I doubt any iOS app offers to choose the thread network to use.

I guess the issue is that you need credentials to join a thread network.

In the HA companion app there’s: Settings > Companion app > Debugging > Thread which will prompt “HA would like to access your home network”. When choosing “allow”, it will display the details for the (empty) Apple Thread network (Border Agent ID, Network Key, PAN ID) with a button “Transfer to Home Assistant”. I’m scared to press that button as I have no idea what it would attempt to do. Would HA then ignore its own OTBR and instead search the (empty) Apple Thread network for devices? Would it merge the two thread networks (and how would I define which of the two different channels it should use?). I will not push that button unless I understand what it will do and if this will help or force me to spend 6+ hours to setup all devices as new. Or if it will create a totally instable joined network.

Btw, Thread - Home Assistant seems to reference an old version of the app, as it e.g. states “To share the credentials with your iPhone, open the Home Assistant Companion app. Go to Settings > Devices & services, select the Thread integration.” but there is no “Devices & services” under the Settings menu.

This screenshot shows that HA knows the credentials of both my Thread networks (from the docs: “The [i] icon indicates that Home Assistant has the credentials for that network.”)


But iOS doesn’t seem to know the credentials. Or doesn’t care. Or the Eve/Nanoleaf/… apps just have no UI to choose the thread network the devices are on.