Problem with delete old and change to new preferred Thread network

Hello, I am having trouble changing my preferred thread network. Currently, it is set to my Apple network, but I would like to access the HA thread network. Unfortunately, completely deleting it did not resolve the issue.

I’m not sure, but it seems that HA has discovered the OTBR (via mDNS), but it looks like the OTBR Integration has not been setup (either automatically or manually) to connect to the OTBR and consequently this Thread Integration is not giving you any way to join the OTBR to the Thread network.

I suggest taking a look at the OTBR Integration and see if there are any entries, and reload it. You may have to delete the OTBR Integration and re-add it.

I’ve already tried that. I deleted OTBR, including all data. I set it up again, but I can’t change the network. The Apple network always remains selected. There is a log in the spoiler.

Summary

[19:08:04] INFO: The otbr-web is disabled.

s6-rc: info: service mdns: starting

s6-rc: info: service s6rc-oneshot-runner: starting

s6-rc: info: service mdns successfully started

s6-rc: info: service s6rc-oneshot-runner successfully started

s6-rc: info: service fix-attrs: starting

s6-rc: info: service banner: starting

s6-rc: info: service fix-attrs successfully started

s6-rc: info: service legacy-cont-init: starting

s6-rc: info: service legacy-cont-init successfully started

[19:08:04] INFO: Starting mDNS Responder…

Default: mDNSResponder (Engineering Build) (Oct 28 2025 07:36:47) starting


Add-on: OpenThread Border Router

OpenThread Border Router add-on


Add-on version: 2.15.0

You are running the latest version of this add-on.

System: Home Assistant OS 16.2 (amd64 / qemux86-64)

Home Assistant Core: 2025.10.4

Home Assistant Supervisor: 2025.10.0


Please, share the above information when looking for help

or support in, e.g., GitHub, forums or the Discord chat.


s6-rc: info: service banner successfully started

s6-rc: info: service otbr-agent: starting

[19:08:05] INFO: Setup OTBR firewall…

[19:08:05] INFO: Migrating OTBR settings if needed…

2025-10-28 19:08:05 homeassistant asyncio[226] DEBUG Using selector: EpollSelector

2025-10-28 19:08:05 homeassistant zigpy.serial[226] DEBUG Opening a serial connection to ‘/dev/serial/by-id/usb-Nabu_Casa_Home_Assistant_Connect_ZBT-1_780478233912f011bf090714773d9da9-if00-port0’ (baudrate=460800, xonxoff=False, rtscts=False)

2025-10-28 19:08:05 homeassistant zigpy.serial[226] DEBUG Connection made: SerialTransport(<_UnixSelectorEventLoop running=True closed=False debug=False>, <universal_silabs_flasher.spinel.SpinelProtocol object at 0x7fbbbc168310>, Serial<id=0x7fbbbc194a90, open=True>(port=‘/dev/serial/by-id/usb-Nabu_Casa_Home_Assistant_Connect_ZBT-1_780478233912f011bf090714773d9da9-if00-port0’, baudrate=460800, bytesize=8, parity=‘N’, stopbits=1, timeout=0, xonxoff=False, rtscts=False, dsrdtr=False))

2025-10-28 19:08:05 homeassistant universal_silabs_flasher.spinel[226] DEBUG Sending frame SpinelFrame(header=SpinelHeader(transaction_id=3, network_link_id=0, flag=2), command_id=<CommandID.PROP_VALUE_GET: 2>, data=b’\x08’)

2025-10-28 19:08:05 homeassistant universal_silabs_flasher.spinel[226] DEBUG Sending data b’~\x83\x02\x08\xbc\x9a~’

2025-10-28 19:08:05 homeassistant universal_silabs_flasher.spinel[226] DEBUG Decoded HDLC frame: HDLCLiteFrame(data=b’\x83\x06\x08\x04\xe3\xe5\xff\xfek\xd3\xf1’)

2025-10-28 19:08:05 homeassistant universal_silabs_flasher.spinel[226] DEBUG Parsed frame SpinelFrame(header=SpinelHeader(transaction_id=3, network_link_id=0, flag=2), command_id=<CommandID.PROP_VALUE_IS: 6>, data=b’\x08\x04\xe3\xe5\xff\xfek\xd3\xf1’)

2025-10-28 19:08:05 homeassistant zigpy.serial[226] DEBUG Waiting for serial port to close

2025-10-28 19:08:05 homeassistant zigpy.serial[226] DEBUG Connection lost: None

Settings file /data/thread/0_4e3e5fffe6bd3f1.data is not a valid OTBR settings file, skipping

No existing settings files found, skipping

[19:08:05] INFO: Starting otbr-agent…

[NOTE]-AGENT—: Running 0.3.0-b067e5ac-dirty

[NOTE]-AGENT—: Thread version: 1.3.0

[NOTE]-AGENT—: Thread interface: wpan0

[NOTE]-AGENT—: Radio URL: spinel+hdlc+uart:///dev/serial/by-id/usb-Nabu_Casa_Home_Assistant_Connect_ZBT-1_780478233912f011bf090714773d9da9-if00-port0?uart-baudrate=460800&uart-flow-control

[NOTE]-AGENT—: Radio URL: trel://enp6s18

[NOTE]-ILS-----: Infra link selected: enp6s18

52d.02:24:55.921 [C] P-SpinelDrive-: Software reset co-processor successfully

00:00:00.034 [N] RoutingManager: BR ULA prefix: fd5b:4139:abce::/48 (loaded)

00:00:00.034 [N] RoutingManager: Local on-link prefix: fdde:ad00:beef:cafe::/64

00:00:00.042 [W] P-Netif-------: Failed to process request#2: No such process

s6-rc: info: service otbr-agent successfully started

s6-rc: info: service otbr-agent-configure: starting

Done

s6-rc: info: service otbr-agent-configure successfully started

s6-rc: info: service otbr-agent-rest-discovery: starting

00:00:00.456 [W] P-Daemon------: Failed to write CLI output: Broken pipe

[19:08:06] INFO: Successfully sent discovery information to Home Assistant.

s6-rc: info: service otbr-agent-rest-discovery successfully started

s6-rc: info: service legacy-services: starting

s6-rc: info: service legacy-services successfully started

Sounds like you’re referring to the Add-on, which appears to be working, but what you seem to be missing is the Integration, which lets HA control the add-on. Do you have one of these in your list of integrations?

If that’s missing or failed, you might need to add it again. When the Integration and Add-on are working together, your OTBR network should have the circled (i) icon meaning the credentials are known, and the TBR’s three-dot menu gets added functionality like “add to preferred network”.

When I want to add the integration, I am asked to specify a URL for the REST API. What should I enter there?

This was what I was referring to earlier about the OTBR Integration…what installation are you using? HAOS?

I use HAOS via VM in Proxmox.

If you are using HAOS, this should be auto-discovered otherwise should be something like http://core-openthread-border-router:8081/

Okay, I did that, and now it looks like this
Now my HA Border router is also listed as a preferred network.

Shouldn’t I still be able to remove the HomePods as preferred networks?

No, you have a single network with three routers — they are all sharing a common set of credentials and forming a strong mesh that provides redundant routes to your wifi subnet, which is usually preferable. You also have the option of commissioning to both Apple Home and HA apps/fabrics (sometimes Apple’s works better for commissioning), since Matter supports multi-fabric control.

If you really want to use OTBR only and not Apple, you can click the three-dot menu and “reset” that router which will form a new network, then you can make that your preferred network, but the new network will lack redundancy, will never have the HomePods because Apple can’t join existing networks, and you won’t be able to use Apple Home for commissioning. Personally I would not recommend this option.

2 Likes

Realize that now that are all one Thread network. There are pros and cons about having multiple TBRs, but before you remove them/unplug them, click on the 3-dots for the HA OTBR and select it for the iOS/Android credentials where you should then see a “key in a phone” icon. Credentials are tied to an TBR when pairing a device. This may actually be a problem because I suspect you have the Thread creds already stored on your iOS device and you gave it to HA so your Creds may already be on your phone stored against an existing Apple TBR. You should be able to delete existing Thread creds in your iOS device using the HA Companion App. and then you can “Send credentials to phone”.

BTW from what Peter said, unless you start experiencing problems later on, it doesn’t hurt to keep you Apple TBRs connected.

1 Like

I have already sent my Thread credentials to HA and my iPhone. And the HA Border has already been selected for Android and iOS access data. However, I don’t see any option to delete Thread credits in the companion app.

Edit: Found the option and deleted all unnecessary login details.

@wmaker
@peterxian

I’ve been experimenting a bit more.

I tried adding an EVE Motion Sensor and a QingPing Thermometer via Thread (without Matter). First, I connect them to Apple Home, then I delete them from Home. HA then finds them, I try to add them to HA, but I get a message saying that the device is already in use. After that, it can no longer be found and I have to reset it. I can’t find it in HA either. Do you have any advice?

You may have to provide more details about this …

  • where in HA to you see that HA finds them?
  • How did you try to add them to HA?

When I go to HomeKit Device integration and then Add Entry, I find the QingPing thermometer or my EVE Motion. I am then prompted to enter an 8-digit HomeKit code. I do so, and HA attempts to connect the device. However, I then receive a message stating that the device is already connected and cannot be connected multiple times.

Can’t anyone help me with this?

I don’t know too much about Apple Homekit, but from what I have read, this may be because the QingPing thinks its is still connected to a Homekit controller.
Since this topic/thread was more about Thread credentials which I think has been resolved, I suggest you open up a new Thread regarding your Homekit pairing problem as it may get Homekit users to take a look at it.

1 Like