Describe the bug
Home Assistant is not discovering the Border Router. Settings -> Thread:
While it can communicate to the REST API. Settings -> Thread -> (i):
From my understanding Home Assistant is finding the Border Router with mDNS. The discovery process worked for me before around August 2025 when I first set it up. Maybe it is related to the switch to OTBR's own mDNS service.
An avahi-browse _meshcop._udp on the same host does not find it (I don't know if that is even possible or expected for mDNS). On a different machine avahi-browse _meshcop._udp does find the OTBR broadcast.
In Home Assistant OS: it seems to transfer the information by a custom protocol and not mDNS, because it says in the logs of the OTBR Addon (which is a modified version of OTBR): Successfully sent discovery information to Home Assistant. Home Assistant OS does find the Border Router. Zeroconf (Home Assistant's mDNS and general discovery service) shows it under _meshcop._udp.
To Reproduce
I couldn't get it to compile with the steps shown on Docker Install, so I can't do a git bisect.
- This is the
docker-compose.yaml which produces the bug:
services:
# OpenThread Border Router
otbr: # REST API at port 8081
# template: https://github.com/orgs/openthread/discussions/10311
# ref: https://openthread.io/guides/border-router/build-docker
image: openthread/border-router:sha-c7164ef
restart: unless-stopped
# Required for IPv6 routing and mDNS
network_mode: host
privileged: true
devices:
- /dev/net/tun
- /dev/serial/by-id/usb-SMLIGHT_SMLIGHT_SLZB-07Mg24_2c4265b523adef11afe8904ba8793231-if00-port0:/dev/ttyUSB0
environment:
# help: sudo docker compose exec otbr otbr-agent
- OT_RCP_DEVICE=spinel+hdlc+uart:///dev/ttyUSB0?uart-baudrate=921600&uart-flow-control
- OT_INFRA_IF=enp1s0
- OT_THREAD_IF=wpan0
- OT_LOG_LEVEL=7
cap_add:
- NET_ADMIN
volumes:
- ./otbr-data:/data
healthcheck:
test: "ot-ctl state | grep leader"
home-assistant: # Web at port 8123
image: ghcr.io/home-assistant/home-assistant:stable
restart: unless-stopped
network_mode: host
privileged: true
cap_add:
- NET_ADMIN
- NET_RAW
volumes:
- ./config:/config
- /run/dbus:/run/dbus
environment:
- TZ=Europe/Berlin
healthcheck:
test: "curl --fail http://localhost:8123/"
- The RCP device and network interface have to be adjusted.
sudo docker compose up -d
-
Open http://localhost:8123/ and complete the Home Assistant setup.
-
Add the OTBR Integration and enter http://localhost:8081/ as REST API URL.
-
Restart:
sudo docker compose down home-assistant
sudo docker compose up -d
- Go to
Settings -> Thread and no Border Router should show up.
Expected behavior Home Assistant should find the border router as it did a year ago.
Describe the bug
Home Assistant is not discovering the Border Router.
Settings -> Thread:While it can communicate to the REST API.
Settings -> Thread -> (i):From my understanding Home Assistant is finding the Border Router with mDNS. The discovery process worked for me before around August 2025 when I first set it up. Maybe it is related to the switch to OTBR's own mDNS service.
An
avahi-browse _meshcop._udpon the same host does not find it (I don't know if that is even possible or expected for mDNS). On a different machineavahi-browse _meshcop._udpdoes find the OTBR broadcast.In Home Assistant OS: it seems to transfer the information by a custom protocol and not mDNS, because it says in the logs of the OTBR Addon (which is a modified version of OTBR):
Successfully sent discovery information to Home Assistant. Home Assistant OS does find the Border Router. Zeroconf (Home Assistant's mDNS and general discovery service) shows it under_meshcop._udp.To Reproduce
I couldn't get it to compile with the steps shown on Docker Install, so I can't do a
git bisect.docker-compose.yamlwhich produces the bug:Open
http://localhost:8123/and complete the Home Assistant setup.Add the OTBR Integration and enter
http://localhost:8081/as REST API URL.Restart:
Settings -> Threadand no Border Router should show up.Expected behavior Home Assistant should find the border router as it did a year ago.