This guide describes a minimal example to get started with ESPHome & Thread.
Steps
1. Get a suitable ESP32 board
Currently, ESP32-C6 and ESP32-H2 boards can be used because they support Thread.
2. Find your Thread TLV
You can find your Thread TLV at Integrations > Thread > (gear icon) > Preferred Network > (info icon) > in the bottom Active Dataset TLVs. Copy this long string value, this is your TLV.
Note: If you are using the OpenThread Border Router app, there’s an issue with version 2.16.1 (latest version as of February 2026). If you have enabled the Beta toggle in the app configuration, currently you can’t see the TLV unless you disable it and restart.
3. Prepare the .yaml file
Set your board (h2 or c6).
Put in your TLV copied from earlier.
Set an API key and a password. Refer to ESPHome docs if you don’t know how.
This setup doesn’t involve Matter at all. ESPHome communicates with devices over Thread, which is just a transport technology like Wi-Fi, Bluetooth or Zigbee.
Huh, that’s weird. For me there’s two more lines under Extended Pan id, OTBR URL and Active dataset TLVs.
Are you using OpenThread Border Router add-on or a 3rd party border router (Apple TV, etc.)? Maybe check out the Thread docs again to see maybe what you missed: Thread - Home Assistant
Also, did you sync the credentials from the HA app to your Android/iPhone? That seems to be necessary for setup.
Just Passing along (to @jubie25 as well), I just checked my setup, and I am seeing the same thing. This may have to do with changing over to the OTBR 1.4 Beta version. The TLV is just not being displayed anymore.
I had the same problem and tried turning off the 1.4 beta option. Now I have two border routers!!! It did let me see the TLV string, but now I have a new problem.
Maybe I spoke too soon: after a reboot I’m back to one border router and the TLV is still there.
I’m using the HA Addon for the border router function.
I tried two border router devices: SLZB-6p7 Stick over LAN and the ZBT-1 SkyConnect. Both show the same dialogue.
For all of you: the TLV could be extracted by listing ~config/.storage/thread.dataset
Yep, I can confirm. if you enable the Beta toggle in the addon configuration the TLV disappears. Disable it to see TLV, then you can still enable it if you want I guess.
I tried the ESPhome option, since it is ‘bare’ thread and not matter, does is operate as part of the thread mesh, hence helps extending the range of the network?
I have a few TadoX thermostats but two are flaky when it comes to the connection, I suspect it to be a range issue. Instead of an expensive (and rare) smart plug I would like to use an ESPhome in Thread FTD mode instead
Yes, afaict, all your Thread devices connected to the same Thread network operate in a mesh.
You can see your Thread network topology map and other info if you enable the two ports in the Network section of OTBR add-on (app) configuration and then navigate to the Web UI port (by default 8181) like http://homeassistant.local:8181.
Be sure to not enable the Beta toggle in the configuration or the Web UI doesn’t work.