Two Ha instances, two OTBR, and two Thread coordinators

I spent a couple days trying to figure it out, and I think I’ve got it working now…

I’ll document this here, in case I need to do it again someday, and to save other’s the hassle of trying to figure out how to do this.

I have a remote accessory building on my property that I wanted to extend my Z=wave, Zigbee and Thread networks to.

The primary HA instance has a ZWA-2 for Z-wave and an SLZB-MR4U for Thread and Zigbee.

I purchased an SLZB-Ultima3 for those networks at my remote building.

Both HA instances are on Proxmox and on the same network. The two buildings are connected via a reliable fiber network between them.

Setting up the second Z-Wave and and Zigbee networks was pretty straight forward…Just install the Apps and Integrations, connect them to the Ultima3 and away they went.

Matter/Thread— Not so easy. The hard part, is that today’s IOS and Android implementations apparently only allow for a single Matter/Thread credential store at a time.

This meant I would have to keep dumping and reloading credentials between the two HA instances which initially had seperate Thread networks. (note: This also means helping family with their Matter/Thread provisioning issues would be difficult as well…Hopefully this get’s cleaned up in the future…)

So how to make it work?

Get your TLV string from your first HA instance:
  Go to Thread integration
  Click on the Gear icon
  Click on the circle I of the network you want to extend
  Copy the TLV string

Go to your second HA instance:
  Setup your SLZB to connect to your OTBR on this instance.  Install Thread integration, etc.
  Open a terminal session (be sure your terminal session allows Protection mode)
  run:  docker exec -it app_core_openthread_border_router ot-ctl dataset set active "TLV string"
        docker exec -it app_core_openthread_border_router ot-ctl ifconfig up
        docker exec -it app_core_openthread_border_router ot-ctl thread start

Then I went to my Thread integration and!

Both OTBR on the same network!

I have both SLZB devices sitting next to me on the table, and when I added a device on the secondary HA instance, it seemed to add it to the SLZB coordinator on the primary HA instance.

When I powered off the primary SLZB coordinator, all my thread devices seemed to fail over to the secondary SLZB coordinator.

I’ve only been playing with this for a couple hours, but it all seems to work great. I assume when I seperate my SLZB devices, that provisioning a new device will just go to the coordinator it can reach.

Open to suggestions on if there’s a better way to do this.

The way I did this sometime ago is to go say to your “source” HA instance’s Thread Integration (the Thread network you want to keep) as you have stated to copy the dataset TLV, then go to the “destination” HA Instance’s Thread Integration, and instead of clicking on the (i), click on the 3-dots way up in the upper right corner and click on the “Add dataset from TLV”, and paste it, and this should now allow the “destination” instance a way to select the “source” instance’s OTBR as preferred. Then at the destination instance, select the source OTBR as preferred and then the destination instance will auto migrate its OTBR to the source’s Thread network.