It works fine with the DNS line in my experience. Without mapping /var/lib/thread as a volume your otbr will not survive reboots. Thread/Matter devices will lose connection and have to be recommissioned.
Do I understand correctly that this issue still hasn’t been resolved? I’m facing the same challenge with SkyConnect. I’m considering buying a Nuki Bridge to achieve Nuki integration in Home Assistant. However, I’d prefer to accomplish this using SkyConnect to save space in my wall power sockets. I don’t like having extra devices plugged in all the time… and I do not want to migrate all hard work confs to HAOS from the standalone HA docker…
It’s possible to get it working, but it’s not straightforward. The way commissioning new devices works in HA is by first commissioning using google/apple and then sharing with HA. A decision I don’t necessarily agree with, but that’s the way it is.
This may work with your phone or it may not. There doesn’t seem to be any effort to troubleshoot why it doesn’t work in some cases, but there is an alternate method to commission devices directly to HA if you have Bluetooth available.
This thread was of good help trying to setup OTBR in a container. Got stuck on the wifi connection issue as well during commissioning but eventually got though it.
Got it working using the hass addon container with some modifications. Documented my success in a github repo to maybe help others and for my own future reference:
I was able to change my otbr container to use this image and still use my existing thread data without having to recreate the network. I haven’t tried to pair any new devices yet, but that is next on the list.
Thanks to your discussion, I was able to get my Thread & Matter setup going. As it wasn’t that easy, I wanted to share my findings as well.
First of all, after you changed your docker compose file, restart your OS/Hardware. Don’t know why this helps, but it did for me. With the following configuration and a restart of my Mini-PC/Homeserver, I was able to pair 3 different smart plugs using the HA-companion App on my iPhone.
# ===============
# Home Assistant
# smart home automation service
# ===============
homeassistant:
container_name: homeassistant
image: ghcr.io/home-assistant/home-assistant:stable
volumes:
- ${PWD}/hass-config:/config
- /etc/localtime:/etc/localtime:ro # read-only
- /run/dbus:/run/dbus:ro # for bluetooth; read-only
- /media/external/Home_Assistant_external_data:/media
- ${PWD}/scripts/:/config/scripts
restart: unless-stopped
privileged: true
devices:
- /dev/serial/by-id/usb-Nabu_Casa_Home_Assistant_Connect_ZBT-1_7a02b1286b39ef119de25bf454516304-if00-port0:/dev/ttyUSB1 # Home Assistant ZBT-1 USB Dongle
network_mode: host
# ===============
# Matter controller/server
# for Home Assistant
# ===============
matter-server:
container_name: matter-server
image: ghcr.io/home-assistant-libs/python-matter-server:stable
network_mode: host
privileged: true
restart: unless-stopped
security_opt:
- apparmor=unconfined # necessary for Bluetooth via dbus
volumes:
- ${PWD}/volumes/matter-server:/data
- /run/dbus:/run/dbus:ro
- /etc/localtime:/etc/localtime:ro
- /dev/ttyUSB1
command: >
--storage-path /data
--paa-root-cert-dir /data/credentials
--bluetooth-adapter 0
# "bluetooth-adapter 0" refers to hci0, this is very important when bluetooth is needed for paring
# ===============
# OTBR - Open Thread Border Router
# for Home Assistant
# necessary for Matter support!
# ===============
otbr:
image: openthread/otbr
container_name: otbr
network_mode: host
tty: true
restart: unless-stopped
privileged: true
volumes:
# - ${PWD}/OTBR/otbr-web:/etc/default/otbr-web:ro # custom frontend config
- ${PWD}/OTBR/thread:/var/lib/thread
- /etc/localtime:/etc/localtime:ro
- /dev/serial/by-id/usb-Nabu_Casa_Home_Assistant_Connect_ZBT-1_7a02b1286b39ef119de25bf454516304-if00-port0:/dev/ttyUSB1 # HA ZBT-1 USB Dongle
environment:
- BACKBONE_INTERFACE=enp1s0 # check OTBR logs for interface
- DEVICE=/dev/ttyUSB1
- NAT64=1
- BAUDRATE=460800
- FIREWALL=0
- FLOW_CONTROL=0
- AUTOFLASH_FIRMWARE=0 # disable auto update of ZBT-1 USB Dongle firmware
- OTBR_ENABLE=1
- OTBR_LOG_LEVEL=info
- OTBR_REST_PORT=8081
- OTBR_REST_LISTEN_PORT=8081
- OTBR_WEB_PORT=8080
- RADIO_URL=spinel+hdlc+uart:///dev/ttyUSB1?uart-baudrate=460800
devices:
- /dev/serial/by-id/usb-Nabu_Casa_Home_Assistant_Connect_ZBT-1_7a02b1286b39ef119de25bf454516304-if00-port0:/dev/ttyUSB1 # HA ZBT-1 USB Dongle
command: >
sysctl net.ipv6.conf.all.disable_ipv6 = 0 net.ipv4.conf.all.forwarding = 1 net.ipv6.conf.all.forwarding = 1 net.ipv6.conf.all.accept_ra_rt_info_max_plen = 64 net.ipv6.conf.all.accept_ra = 2
Can’t connect to the OTBR frontend, but everything else works fine.
I use a FRITZ!Box and did NOT change any settings for Matter to function properly.
Hope this helps!
I can now pair new devices using the companion app as intended. I got a new router a subsequently needed to set up my ipv6 network again, and I’m using hass-otbr-docker image instead of the vanilla otbr image. I couldn’t say which one solved the issue for me, but regardless it’s all working great as of now. I updated my post with my current docker compose config.
Unfortunately python-matter-server requires a 64 bit Linux kernel! ![]()
Try adding HTTP_PORT=8080 to the environment.
Thank you everyone for sharing what you’ve done - it’s saved me a lot of time.
Hi guys,
I’m struggling with getting the otbr (and matter-server) up-and-running on my rpi4. I’m running an up-to-date raspbian and I’ve configured my docker-compose as described above and made adjustments to match my setup (e.g. change interface to wan0 and updated the usb serial). It seems otbr is throwing some errors that I don’t really understand:
otbr | Feb 13 21:52:16 rpi4 mDNSResponder: Default: mDNSCoreReceiveResponse: Unexpected conflict discarding 12 F.C.8.3.6.6.E.F.F.F.D.D.A.3.A.D.0.0.0.0.B.3.A.F.E.4.4.A.2.0.A.2.ip6.arpa. PTR rpi4.local.
otbr | Feb 13 21:52:16 rpi4 mDNSResponder: Default: mDNSCoreReceiveResponse: Received from 172.17.0.1:5353 14 1.0.17.172.in-addr.arpa. PTR rpi4-6.local.
The result is that homeassistant does detect thread as a device but, once added, I cannot configure a preferred network as shown below in the picture below.
I’m pretty sure it has to do with the errors shown above but the not sure how to fix this. I’ve attached the full OTBR log below in case that helps. Ah… and I’m using a unify cloud gateway ultra a router (in case that matters).
The docker-compose is as follows (where I wonder why the USB device is added as both ‘volume’ and ‘device’):
otbr:
image: openthread/otbr
container_name: otbr
network_mode: host
tty: true
restart: unless-stopped
privileged: true
volumes:
# - /opt/homeassistant/openthread/otbr-web:/etc/default/otbr-web:ro # custom frontend config
- /opt/homeassistant/openthread/thread:/var/lib/thread
- /etc/localtime:/etc/localtime:ro
- /dev/serial/by-id/usb-Nabu_Casa_Home_Assistant_Connect_ZBT-1_7ae360eff6caed118486cc71cda106c3-if00-port0:/dev/ttyUSB0 # HA ZBT-1 USB Dongle
environment:
- BACKBONE_INTERFACE=wlan0 # check OTBR logs for interface
- DEVICE=/dev/ttyUSB0
- NAT64=1
- BAUDRATE=460800
- FIREWALL=0
- FLOW_CONTROL=0
- AUTOFLASH_FIRMWARE=0 # disable auto update of ZBT-1 USB Dongle firmware
- OTBR_ENABLE=1
- OTBR_LOG_LEVEL=info
- OTBR_REST_PORT=8081
- OTBR_REST_LISTEN_PORT=8081
- OTBR_WEB_PORT=8080
- RADIO_URL=spinel+hdlc+uart:///dev/ttyUSB0?uart-baudrate=460800
devices:
- /dev/serial/by-id/usb-Nabu_Casa_Home_Assistant_Connect_ZBT-1_7ae360eff6caed118486cc71cda106c3-if00-port0:/dev/ttyUSB0 # HA ZBT-1 USB Dongle
command: >
sysctl net.ipv6.conf.all.disable_ipv6 = 0 net.ipv4.conf.all.forwarding = 1 net.ipv6.conf.all.forwarding = 1 net.ipv6.conf.all.accept_ra_rt_info_max_plen = 64 net.ipv6.conf.all.accept_ra = 2
Since I exceeded the maximum amount of characters, here the full otbr logging:
Starting otbr ... done
Attaching to otbr
otbr | RADIO_URL: spinel+hdlc+uart:///dev/ttyUSB0?uart-baudrate=460800
otbr | TREL_URL:
otbr | TUN_INTERFACE_NAME: wpan0
otbr | BACKBONE_INTERFACE: wlan0
otbr | NAT64_PREFIX: 64:ff9b::/96
otbr | DEBUG_LEVEL: 7
otbr | +++ dirname /app/script/server
otbr | ++ cd /app/script/..
otbr | ++ HAVE_SYSTEMCTL=0
otbr | ++ have systemctl
otbr | ++ command -v systemctl
otbr | ++ HAVE_SERVICE=0
otbr | ++ have service
otbr | ++ command -v service
otbr | ++ HAVE_SERVICE=1
otbr | ++ [[ ! -n x ]]
otbr | ++ echo 'Current platform is ubuntu'
otbr | Current platform is ubuntu
otbr | ++ with BORDER_ROUTING
otbr | ++ local value
otbr | +++ printenv BORDER_ROUTING
otbr | ++ value=1
otbr | ++ [[ -z 1 ]]
otbr | ++ [[ 1 == 1 ]]
otbr | ++ with DHCPV6_PD
otbr | ++ local value
otbr | +++ printenv DHCPV6_PD
otbr | ++ value=
otbr | ++ [[ -z '' ]]
otbr | ++ [[ -f examples/platforms/ubuntu/default ]]
otbr | ++ [[ '' == 1 ]]
otbr | ++ with BORDER_ROUTING
otbr | ++ local value
otbr | +++ printenv BORDER_ROUTING
otbr | ++ value=1
otbr | ++ [[ -z 1 ]]
otbr | ++ [[ 1 == 1 ]]
otbr | ++ with NETWORK_MANAGER
otbr | ++ local value
otbr | +++ printenv NETWORK_MANAGER
otbr | ++ value=
otbr | ++ [[ -z '' ]]
otbr | ++ [[ -f examples/platforms/ubuntu/default ]]
otbr | ++ [[ '' == 1 ]]
otbr | ++ STAGE_DIR=/app/stage
otbr | ++ BUILD_DIR=/app/build
otbr | ++ [[ -d /app/stage ]]
otbr | ++ [[ -d /app/build ]]
otbr | ++ export PATH=/app/stage/usr/bin:/app/stage/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
otbr | ++ PATH=/app/stage/usr/bin:/app/stage/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
otbr | +++ basename /app/script/server
otbr | ++ TASKNAME=server
otbr | ++ BEFORE_HOOK=examples/platforms/ubuntu/before_server
otbr | ++ AFTER_HOOK=examples/platforms/ubuntu/after_server
otbr | ++ [[ ! -f examples/platforms/ubuntu/before_server ]]
otbr | ++ BEFORE_HOOK=/dev/null
otbr | ++ [[ ! -f examples/platforms/ubuntu/after_server ]]
otbr | ++ AFTER_HOOK=/dev/null
otbr | + . script/_nat64
otbr | ++ NAT64_SERVICE=openthread
otbr | ++ TAYGA_DEFAULT=/etc/default/tayga
otbr | ++ TAYGA_CONF=/etc/tayga.conf
otbr | ++ TAYGA_IPV4_ADDR=192.168.255.1
otbr | ++ TAYGA_IPV6_ADDR=fdaa:bb:1::1
otbr | ++ TAYGA_TUN_V6_ADDR=fdaa:bb:1::2
otbr | ++ NAT64_PREFIX=64:ff9b::/96
otbr | ++ DYNAMIC_POOL=192.168.255.0/24
otbr | ++ NAT44_SERVICE=/etc/init.d/otbr-nat44
otbr | ++ WLAN_IFNAMES=eth0
otbr | ++ THREAD_IF=wpan0
otbr | + . script/_dns64
otbr | ++ BIND_CONF_OPTIONS=/etc/bind/named.conf.options
otbr | ++ NAT64_PREFIX=64:ff9b::/96
otbr | ++ DNS64_NAMESERVER_ADDR=127.0.0.1
otbr | +++ tr '"/"' '"/"'
otbr | +++ echo 64:ff9b::/96
otbr | ++ DNS64_CONF='dns64 64:ff9b::/96 { clients { thread; }; recursive-only yes; };'
otbr | ++ without NAT64
otbr | ++ with NAT64
otbr | ++ local value
otbr | +++ printenv NAT64
otbr | ++ value=1
otbr | ++ [[ -z 1 ]]
otbr | ++ [[ 1 == 1 ]]
otbr | ++ without DNS64
otbr | ++ with DNS64
otbr | ++ local value
otbr | +++ printenv DNS64
otbr | ++ value=0
otbr | ++ [[ -z 0 ]]
otbr | ++ [[ 0 == 1 ]]
otbr | ++ '[' ubuntu = raspbian ']'
otbr | ++ '[' ubuntu = beagleboneblack ']'
otbr | ++ '[' ubuntu = ubuntu ']'
otbr | ++ RESOLV_CONF_HEAD=/etc/resolvconf/resolv.conf.d/head
otbr | + . script/_firewall
otbr | ++ FIREWALL_SERVICE=/etc/init.d/otbr-firewall
otbr | ++ sudo modprobe ip6table_filter
otbr | sudo: modprobe: command not found
otbr | ++ true
otbr | ++ FIREWALL=0
otbr | + OTBR_MDNS=mDNSResponder
otbr | + OT_BACKBONE_CI=0
otbr | + REFERENCE_DEVICE=0
otbr | + main
otbr | + [[ '' == \s\h\u\t\d\o\w\n ]]
otbr | + startup
otbr | + . /dev/null
otbr | + sudo sysctl --system
otbr | * Applying /etc/sysctl.d/10-console-messages.conf ...
otbr | kernel.printk = 4 4 1 7
otbr | * Applying /etc/sysctl.d/10-ipv6-privacy.conf ...
otbr | net.ipv6.conf.all.use_tempaddr = 2
otbr | net.ipv6.conf.default.use_tempaddr = 2
otbr | * Applying /etc/sysctl.d/10-kernel-hardening.conf ...
otbr | kernel.kptr_restrict = 1
otbr | * Applying /etc/sysctl.d/10-link-restrictions.conf ...
otbr | fs.protected_hardlinks = 1
otbr | fs.protected_symlinks = 1
otbr | * Applying /etc/sysctl.d/10-magic-sysrq.conf ...
otbr | kernel.sysrq = 176
otbr | * Applying /etc/sysctl.d/10-network-security.conf ...
otbr | net.ipv4.conf.default.rp_filter = 1
otbr | net.ipv4.conf.all.rp_filter = 1
otbr | net.ipv4.tcp_syncookies = 1
otbr | * Applying /etc/sysctl.d/10-ptrace.conf ...
otbr | * Applying /etc/sysctl.d/10-zeropage.conf ...
otbr | vm.mmap_min_addr = 32768
otbr | * Applying /etc/sysctl.d/60-otbr-accept-ra.conf ...
otbr | net.ipv6.conf.wlan0.accept_ra = 2
otbr | net.ipv6.conf.wlan0.accept_ra_rt_info_max_plen = 64
otbr | * Applying /etc/sysctl.d/60-otbr-ip-forward.conf ...
otbr | net.ipv6.conf.all.forwarding = 1
otbr | net.ipv4.ip_forward = 1
otbr | * Applying /etc/sysctl.conf ...
otbr | + nat64_start
otbr | + with NAT64
otbr | + local value
otbr | ++ printenv NAT64
otbr | + value=1
otbr | + [[ -z 1 ]]
otbr | + [[ 1 == 1 ]]
otbr | + '[' openthread = tayga ']'
otbr | + nat44_start
otbr | + with DOCKER
otbr | + local value
otbr | ++ printenv DOCKER
otbr | + value=1
otbr | + [[ -z 1 ]]
otbr | + [[ 1 == 1 ]]
otbr | + service otbr-nat44 start
otbr | + dns64_start
otbr | + with NAT64
otbr | + local value
otbr | ++ printenv NAT64
otbr | + value=1
otbr | + [[ -z 1 ]]
otbr | + [[ 1 == 1 ]]
otbr | + with DNS64
otbr | + local value
otbr | ++ printenv DNS64
otbr | + value=0
otbr | + [[ -z 0 ]]
otbr | + [[ 0 == 1 ]]
otbr | + return 0
otbr | + firewall_start
otbr | + with FIREWALL
otbr | + local value
otbr | ++ printenv FIREWALL
otbr | + value=0
otbr | + [[ -z 0 ]]
otbr | + [[ 0 == 1 ]]
otbr | + return 0
otbr | + start_service rsyslog
otbr | + local service_name=rsyslog
otbr | + [[ 0 == 1 ]]
otbr | + [[ 1 == 1 ]]
otbr | + sudo service rsyslog status
otbr | * rsyslogd is not running
otbr | + sudo service rsyslog start
otbr | * Starting enhanced syslogd rsyslogd [ OK ]
otbr | + start_service dbus
otbr | + local service_name=dbus
otbr | + [[ 0 == 1 ]]
otbr | + [[ 1 == 1 ]]
otbr | + sudo service dbus status
otbr | * dbus is not running
otbr | + sudo service dbus start
otbr | * Starting system message bus dbus [ OK ]
otbr | + [[ mDNSResponder == \a\v\a\h\i ]]
otbr | + [[ 0 == 1 ]]
otbr | + [[ 0 == 1 ]]
otbr | + have service
otbr | + command -v service
otbr | + sudo service mdns status
otbr | Usage: /etc/init.d/mDNS {start|stop|reload|restart}
otbr | + sudo service mdns start
otbr | Starting Apple Darwin Multicast DNS / DNS Service Discovery daemon: mdnsd.
otbr | + without WEB_GUI
otbr | + with WEB_GUI
otbr | + local value
otbr | ++ printenv WEB_GUI
otbr | + value=1
otbr | + [[ -z 1 ]]
otbr | + [[ 1 == 1 ]]
otbr | + start_service otbr-web
otbr | + local service_name=otbr-web
otbr | + [[ 0 == 1 ]]
otbr | + [[ 1 == 1 ]]
otbr | + sudo service otbr-web status
otbr | * otbr-web is not running
otbr | + sudo service otbr-web start
otbr | * Starting thread web interface otbr-web [ OK ]
otbr | + start_service otbr-agent
otbr | + local service_name=otbr-agent
otbr | + [[ 0 == 1 ]]
otbr | + [[ 1 == 1 ]]
otbr | + sudo service otbr-agent status
otbr | * otbr-agent is not running
otbr | + sudo service otbr-agent start
otbr | * Removing stale PID file /var/run/otbr-agent.pid.
otbr | * Starting thread border agent otbr-agent [ OK ]
otbr | + . /dev/null
otbr | Feb 13 21:52:16 rpi4 mDNSResponder: Default: mDNSCoreReceiveResponse: Unexpected conflict discarding 12 F.C.8.3.6.6.E.F.F.F.D.D.A.3.A.D.0.0.0.0.B.3.A.F.E.4.4.A.2.0.A.2.ip6.arpa. PTR rpi4.local.
otbr | Feb 13 21:52:16 rpi4 mDNSResponder: Default: mDNSCoreReceiveResponse: Received from 172.17.0.1:5353 14 1.0.17.172.in-addr.arpa. PTR rpi4-6.local.
otbr | Feb 13 21:52:16 rpi4 mDNSResponder: Default: mDNSCoreReceiveResponse: Unexpected conflict discarding 12 1.0.17.172.in-addr.arpa. PTR rpi4.local.
otbr | Feb 13 21:52:16 rpi4 mDNSResponder: Default: mDNSCoreReceiveResponse: Received from fe80::42:27ff:fe24:17f4:5353 14 4.f.7.1.4.2.e.f.f.f.7.2.2.4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa. PTR rpi4-6.local.
otbr | Feb 13 21:52:16 rpi4 mDNSResponder: Default: mDNSCoreReceiveResponse: Unexpected conflict discarding 12 4.F.7.1.4.2.E.F.F.F.7.2.2.4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.E.F.ip6.arpa. PTR rpi4.local.
otbr | Feb 13 21:52:16 rpi4 mDNSResponder: Default: mDNSCoreReceiveResponse: Received from 172.10.0.1:5353 14 1.0.10.172.in-addr.arpa. PTR rpi4-6.local.
otbr | Feb 13 21:52:16 rpi4 mDNSResponder: Default: mDNSCoreReceiveResponse: Unexpected conflict discarding 12 1.0.10.172.in-addr.arpa. PTR rpi4.local.
otbr | Feb 13 21:52:16 rpi4 mDNSResponder: Default: mDNSCoreReceiveResponse: Received from fe80::9c3c:7ff:febe:45e9:5353 14 9.e.5.4.e.b.e.f.f.f.7.0.c.3.c.9.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa. PTR rpi4-6.local.
otbr | Feb 13 21:52:16 rpi4 mDNSResponder: Default: mDNSCoreReceiveResponse: Unexpected conflict discarding 12 9.E.5.4.E.B.E.F.F.F.7.0.C.3.C.9.0.0.0.0.0.0.0.0.0.0.0.0.0.8.E.F.ip6.arpa. PTR rpi4.local.
otbr | Feb 13 21:56:36 rpi4 mDNSResponder: Default: mDNSResponder (Engineering Build) (Feb 7 2025 17:37:21) starting
otbr | Feb 13 21:56:37 rpi4 otbr-web[144]: [INFO]-WEB-----: Running 0.3.0-3ad3db8
otbr | Feb 13 21:56:37 rpi4 otbr-web[144]: [INFO]-WEB-----: Border router web started on wpan0
otbr | Feb 13 21:56:37 rpi4 otbr-web[144]: [ERR ]-WEB-----: OpenThread daemon is not running.
otbr | Feb 13 21:56:37 rpi4 otbr-agent: [NOTE]-AGENT---: Backbone interface: wlan0
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: [NOTE]-AGENT---: Running 0.3.0-3ad3db8
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: [NOTE]-AGENT---: Thread version: 1.4.0
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: [NOTE]-AGENT---: Thread interface: wpan0
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: [NOTE]-AGENT---: Radio URL: spinel+hdlc+uart:///dev/ttyUSB0?uart-baudrate=460800
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: [NOTE]-ILS-----: Infra link selected: wlan0
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: [INFO]-RCP_HOS-: OpenThread log level changed to 5
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 49d.17:48:37.920 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:0, cmd:RESET
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 49d.17:48:37.920 [D] P-SpinelDrive-: Waiting response: key=0
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 49d.17:48:37.923 [D] P-SpinelDrive-: Received spinel frame, flg:0x2, iid:0, tid:0, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:RESET_POWER_ON
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 49d.17:48:37.923 [I] P-SpinelDrive-: co-processor reset: RESET_POWER_ON
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 49d.17:48:37.923 [C] P-SpinelDrive-: Software reset co-processor successfully
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 49d.17:48:37.923 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:1, cmd:PROP_VALUE_GET, key:PROTOCOL_VERSION
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 49d.17:48:37.923 [D] P-SpinelDrive-: Waiting response: key=1
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 49d.17:48:37.925 [D] P-SpinelDrive-: Received spinel frame, flg:0x2, iid:0, tid:1, cmd:PROP_VALUE_IS, key:PROTOCOL_VERSION, major:4, minor:3
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 49d.17:48:37.925 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:1, cmd:PROP_VALUE_GET, key:NCP_VERSION
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 49d.17:48:37.925 [D] P-SpinelDrive-: Waiting response: key=2
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 49d.17:48:37.929 [D] P-SpinelDrive-: Received spinel frame, flg:0x2, iid:0, tid:1, cmd:PROP_VALUE_IS, key:NCP_VERSION, version:SL-OPENTHREAD/2.4.4.0_GitHub-7074a43e4; EFR32; Oct 21 2024 14:40:57
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 49d.17:48:37.930 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:1, cmd:PROP_VALUE_GET, key:CAPS
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 49d.17:48:37.930 [D] P-SpinelDrive-: Waiting response: key=5
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 49d.17:48:37.932 [D] P-SpinelDrive-: Received spinel frame, flg:0x2, iid:0, tid:1, cmd:PROP_VALUE_IS, key:CAPS, caps:COUNTERS UNSOL_UPDATE_FILTER 802_15_4_2450MHZ_OQPSK CONFIG_RADIO MAC_RAW RCP_API_VERSION RCP_MIN_HOST_API_VERSION RCP_RESET_TO_BOOTLOADER OPENTHREAD_LOG_METADATA
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: [INFO]-BA------: Ephemeral Key is: enabled during initialization
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 49d.17:48:37.933 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:1, cmd:PROP_VALUE_GET, key:HWADDR
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 49d.17:48:37.933 [D] P-RadioSpinel-: Wait response: tid=1 key=8
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 49d.17:48:37.936 [D] P-SpinelDrive-: Received spinel frame, flg:0x2, iid:0, tid:1, cmd:PROP_VALUE_IS, key:HWADDR, eui64:44e2f8fffe8c458f
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 49d.17:48:37.936 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:2, cmd:PROP_VALUE_GET, key:RCP_API_VERSION
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 49d.17:48:37.936 [D] P-RadioSpinel-: Wait response: tid=2 key=176
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 49d.17:48:37.938 [D] P-SpinelDrive-: Received spinel frame, flg:0x2, iid:0, tid:2, cmd:PROP_VALUE_IS, key:RCP_API_VERSION, version:9
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 49d.17:48:37.938 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:3, cmd:PROP_VALUE_GET, key:RCP_MIN_HOST_API_VERSION
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 49d.17:48:37.938 [D] P-RadioSpinel-: Wait response: tid=3 key=177
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 49d.17:48:37.941 [D] P-SpinelDrive-: Received spinel frame, flg:0x2, iid:0, tid:3, cmd:PROP_VALUE_IS, key:RCP_MIN_HOST_API_VERSION, min-host-version:4
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 49d.17:48:37.941 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:4, cmd:PROP_VALUE_GET, key:RADIO_CAPS
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 49d.17:48:37.941 [D] P-RadioSpinel-: Wait response: tid=4 key=4619
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 49d.17:48:37.943 [D] P-SpinelDrive-: Received spinel frame, flg:0x2, iid:0, tid:4, cmd:PROP_VALUE_IS, key:RADIO_CAPS, caps:255
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 49d.17:48:37.945 [I] P-Netif-------: Sent request#1 to set addr_gen_mode to 1
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 49d.17:48:37.946 [I] P-Resolver----: Got nameserver #0: 192.168.1.1
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.000 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:5, cmd:PROP_VALUE_GET, key:PHY_CHAN_SUPPORTED
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.000 [D] P-RadioSpinel-: Wait response: tid=5 key=34
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.003 [D] P-SpinelDrive-: Received spinel frame, flg:0x2, iid:0, tid:5, cmd:PROP_VALUE_IS, key:PHY_CHAN_SUPPORTED, channelMask:0x07fff800
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.004 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:6, cmd:PROP_VALUE_SET, key:PHY_ENABLED, enabled:1
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.005 [D] P-RadioSpinel-: Wait response: tid=6 key=32
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.006 [D] P-SpinelDrive-: Received spinel frame, flg:0x2, iid:0, tid:6, cmd:PROP_VALUE_IS, key:PHY_ENABLED, enabled:1
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.007 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:7, cmd:PROP_VALUE_SET, key:MAC_15_4_PANID, panid:0xffff
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.007 [D] P-RadioSpinel-: Wait response: tid=7 key=54
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.009 [D] P-SpinelDrive-: Received spinel frame, flg:0x2, iid:0, tid:7, cmd:PROP_VALUE_IS, key:MAC_15_4_PANID, panid:0xffff
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.009 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:8, cmd:PROP_VALUE_SET, key:MAC_15_4_SADDR, saddr:0x0000
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.009 [D] P-RadioSpinel-: Wait response: tid=8 key=53
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.012 [D] P-SpinelDrive-: Received spinel frame, flg:0x2, iid:0, tid:8, cmd:PROP_VALUE_IS, key:MAC_15_4_SADDR, saddr:0x0000
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.012 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:9, cmd:PROP_VALUE_GET, key:PHY_RX_SENSITIVITY
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.012 [D] P-RadioSpinel-: Wait response: tid=9 key=39
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.015 [D] P-SpinelDrive-: Received spinel frame, flg:0x2, iid:0, tid:9, cmd:PROP_VALUE_IS, key:PHY_RX_SENSITIVITY, sensitivity:-100
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.015 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:10, cmd:PROP_VALUE_SET, key:RCP_MAC_KEY, keyIdMode:8, keyId:1, prevKey:***, currKey:***, nextKey:***
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.015 [D] P-RadioSpinel-: Wait response: tid=10 key=2048
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.019 [D] P-SpinelDrive-: Received spinel frame, flg:0x2, iid:0, tid:10, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.019 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:11, cmd:PROP_VALUE_SET, key:MAC_15_4_LADDR, laddr:2e8f0f7a649d2bef
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.019 [D] P-RadioSpinel-: Wait response: tid=11 key=52
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.023 [D] P-SpinelDrive-: Received spinel frame, flg:0x2, iid:0, tid:11, cmd:PROP_VALUE_IS, key:MAC_15_4_LADDR, laddr:2e8f0f7a649d2bef
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.023 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:12, cmd:PROP_VALUE_SET, key:MAC_15_4_SADDR, saddr:0xfffe
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.023 [D] P-RadioSpinel-: Wait response: tid=12 key=53
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.026 [D] P-SpinelDrive-: Received spinel frame, flg:0x2, iid:0, tid:12, cmd:PROP_VALUE_IS, key:MAC_15_4_SADDR, saddr:0xfffe
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.026 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:13, cmd:PROP_VALUE_SET, key:MAC_SRC_MATCH_SHORT_ADDRESSES, saddr:none
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.026 [D] P-RadioSpinel-: Wait response: tid=13 key=4868
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.028 [D] P-SpinelDrive-: Received spinel frame, flg:0x2, iid:0, tid:13, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.028 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:14, cmd:PROP_VALUE_SET, key:MAC_SRC_MATCH_EXTENDED_ADDRESSES, extaddr:none
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.028 [D] P-RadioSpinel-: Wait response: tid=14 key=4869
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.031 [D] P-SpinelDrive-: Received spinel frame, flg:0x2, iid:0, tid:14, cmd:PROP_VALUE_IS, key:LAST_STATUS, status:OK
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.031 [I] CslTxScheduler: Set frame request ahead: 7605 usec
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.031 [I] ChildSupervsn-: Timeout: 0 -> 190
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.032 [I] RoutingManager: Initializing - InfraIfIndex:3
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.032 [I] InfraIf-------: Init infra netif 3
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.032 [I] Settings------: Read BrUlaPrefix fda6:cbb3:b92d::/48
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.032 [N] RoutingManager: BR ULA prefix: fda6:cbb3:b92d::/48 (loaded)
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.032 [I] RoutingManager: Generated local OMR prefix: fda6:cbb3:b92d:1::/64
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.032 [I] RoutingManager: Generated local NAT64 prefix: fda6:cbb3:b92d:2:0:0::/96
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.032 [N] RoutingManager: Local on-link prefix: fdde:ad00:beef:cafe::/64
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.032 [I] InfraIf-------: State changed: NOT RUNNING -> RUNNING
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.032 [I] RoutingManager: Enabling
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.032 [I] Nat64---------: IPv4 CIDR for NAT64: 192.168.255.0/24 (actual address pool: 192.168.255.1 - 192.168.255.254, 254 addresses)
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: [INFO]-UTILS---: Set state callback: OK
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.032 [I] Nat64---------: NAT64 translator is now NotRunning
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: [INFO]-BA------: Start Thread Border Agent
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: [INFO]-BA------: Publish meshcop service OpenThread BorderRouter #2BEF._meshcop._udp.local.
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.032 [I] Settings------: Read BorderAgentId {id:91a7bffc19180210147c9863a930783f}
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: [INFO]-MDNS----: Registering service OpenThread BorderRouter #2BEF._meshcop._udp
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.033 [I] BbrLocal------: Add Domain Prefix: ::/0, NotFound
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.033 [I] BbrLocal------: Add BBR Service: seqno (63), delay (5s), timeout (3600s), InvalidState
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: [INFO]-ADPROXY-: Started
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: [INFO]-DPROXY--: Started
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: [INFO]-APP-----: Co-processor version: SL-OPENTHREAD/2.4.4.0_GitHub-7074a43e4; EFR32; Oct 21 2024 14:40:57
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.035 [I] Notifier------: StateChanged (0x42038210) [MLAddr NetData PanId NetName ExtPanId BbrState Nat64]
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.036 [I] Bbr-----------: Start listening on port 61631
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.036 [I] Bbr-----------: Backbone TMF subscribes ff32:40:fdde:ad00:beef:0:0:3: OK
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.036 [I] BbrManager----: Start Backbone TMF agent: OK
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.040 [I] Platform------: Execute command `ipset flush otbr-ingress-allow-dst-swap` = 256
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.040 [I] Platform------: Got an error when executing command `ipset flush otbr-ingress-allow-dst-swap`: `Resource temporarily unavailable`
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.040 [W] Platform------: Firewall - failed to update ipsets: Failed
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.040 [I] P-Netif-------: NAT64 CIDR updated to 192.168.255.0/24.
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.040 [I] P-Netif-------: Sent request#2 to delete route 192.168.255.0/24
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.040 [I] P-Netif-------: Deleting route for NAT64
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.040 [I] P-McastRtMgr--: Disable: OK
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: [INFO]-BA------: Publish meshcop service OpenThread BorderRouter #2BEF._meshcop._udp.local.
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: [DEBG]-BBA-----: BackboneAgent: HandleBackboneRouterState: state=1, mBackboneRouterState=0
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.040 [I] RouterTable---: Route table
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.041 [I] P-Netif-------: Host netif is down
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.041 [I] P-Netif-------: Succeeded to process request#1
otbr | Feb 13 21:56:37 rpi4 otbr-agent[179]: 00:00:00.041 [W] P-Netif-------: Failed to process request#2: No such process
otbr | Feb 13 21:56:37 rpi4 rsyslogd: rsyslogd's groupid changed to 101
otbr | Feb 13 21:56:37 rpi4 rsyslogd: rsyslogd's userid changed to 101
otbr | Feb 13 21:56:37 rpi4 rsyslogd: [origin software="rsyslogd" swVersion="8.32.0" x-pid="73" x-info="http://www.rsyslog.com"] start
otbr | Feb 13 21:56:38 rpi4 otbr-agent[179]: [INFO]-MDNS----: Successfully registered service OpenThread BorderRouter #2BEF._meshcop._udp
otbr | Feb 13 21:56:38 rpi4 otbr-agent[179]: [INFO]-BA------: Result of publish meshcop service OpenThread BorderRouter #2BEF._meshcop._udp.local: OK
otbr | Feb 13 21:56:38 rpi4 otbr-agent[179]: [INFO]-BA------: Result of publish meshcop service OpenThread BorderRouter #2BEF._meshcop._udp.local: OK
otbr | Feb 13 21:56:38 rpi4 mDNSResponder: Default: mDNSCoreReceiveResponse: Received from 192.168.1.73:5353 14 73.1.168.192.in-addr.arpa. PTR rpi4-6.local.
otbr | Feb 13 21:56:38 rpi4 mDNSResponder: Default: mDNSCoreReceiveResponse: Unexpected conflict discarding 12 73.1.168.192.in-addr.arpa. PTR rpi4.local.
otbr | Feb 13 21:56:38 rpi4 mDNSResponder: Default: mDNSCoreReceiveResponse: Received from 192.168.1.73:5353 14 f.7.f.7.a.2.b.b.3.3.3.b.d.0.3.b.0.0.0.0.b.3.a.f.e.4.4.a.2.0.a.2.ip6.arpa. PTR rpi4-6.local.
otbr | Feb 13 21:56:38 rpi4 mDNSResponder: Default: mDNSCoreReceiveResponse: Unexpected conflict discarding 12 F.7.F.7.A.2.B.B.3.3.3.B.D.0.3.B.0.0.0.0.B.3.A.F.E.4.4.A.2.0.A.2.ip6.arpa. PTR rpi4.local.
otbr | Feb 13 21:56:38 rpi4 mDNSResponder: Default: mDNSCoreReceiveResponse: Received from 192.168.1.73:5353 14 f.c.8.3.6.6.e.f.f.f.d.d.a.3.a.d.0.0.0.0.b.3.a.f.e.4.4.a.2.0.a.2.ip6.arpa. PTR rpi4-6.local.
otbr | Feb 13 21:56:38 rpi4 mDNSResponder: Default: mDNSCoreReceiveResponse: Unexpected conflict discarding 12 F.C.8.3.6.6.E.F.F.F.D.D.A.3.A.D.0.0.0.0.B.3.A.F.E.4.4.A.2.0.A.2.ip6.arpa. PTR rpi4.local.
otbr | Feb 13 21:56:38 rpi4 mDNSResponder: Default: mDNSCoreReceiveResponse: Received from fe80::42:27ff:fe24:17f4:5353 14 4.f.7.1.4.2.e.f.f.f.7.2.2.4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa. PTR rpi4-6.local.
otbr | Feb 13 21:56:38 rpi4 mDNSResponder: Default: mDNSCoreReceiveResponse: Unexpected conflict discarding 12 4.F.7.1.4.2.E.F.F.F.7.2.2.4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.E.F.ip6.arpa. PTR rpi4.local.
otbr | Feb 13 21:56:38 rpi4 mDNSResponder: Default: mDNSCoreReceiveResponse: Received from fe80::9c3c:7ff:febe:45e9:5353 14 9.e.5.4.e.b.e.f.f.f.7.0.c.3.c.9.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa. PTR rpi4-6.local.
otbr | Feb 13 21:56:38 rpi4 mDNSResponder: Default: mDNSCoreReceiveResponse: Unexpected conflict discarding 12 9.E.5.4.E.B.E.F.F.F.7.0.C.3.C.9.0.0.0.0.0.0.0.0.0.0.0.0.0.8.E.F.ip6.arpa. PTR rpi4.local.
otbr | Feb 13 21:56:38 rpi4 mDNSResponder: Default: mDNSCoreReceiveResponse: Received from 172.17.0.1:5353 14 1.0.17.172.in-addr.arpa. PTR rpi4-6.local.
otbr | Feb 13 21:56:38 rpi4 mDNSResponder: Default: mDNSCoreReceiveResponse: Unexpected conflict discarding 12 1.0.17.172.in-addr.arpa. PTR rpi4.local.
otbr | Feb 13 21:56:38 rpi4 mDNSResponder: Default: mDNSCoreReceiveResponse: Received from 172.10.0.1:5353 14 1.0.10.172.in-addr.arpa. PTR rpi4-6.local.
otbr | Feb 13 21:56:38 rpi4 mDNSResponder: Default: mDNSCoreReceiveResponse: Unexpected conflict discarding 12 1.0.10.172.in-addr.arpa. PTR rpi4.local.
The OTBR logs are extremely chatty. Those look like fairly innocuous router advertisement warnings to me, but I could be wrong. Are you using native ipv6 on your network or a 4in6 tunnel? I’m not sure a 4in6 tunnel will work, but it may.
I’m also not sure why the menu doesn’t appear for some people, but you can check out the post here. I’ve never experienced the problem, I just remembered seeing posts of something similar.
I don’t believe @aleer’s image has an arm version yet, but you could build the image yourself using a different base image to try it out if all else fails.
I’m running an IPv4 network for the moment (but can easily switch to IPv6 I suppose by changing the router settings). No idea what you mean with a 4in6 tunnel to be honest.
I did do several restarts of the host, one or more of the containers or even a rebuild of the docker in ‘random’ order (e.g. restart home assistant whilst OTBR is still running and vice versa). All resulted in the same; network visible but cannot be added as preferred.
Based on what I read, I thought the image was suitable for rpi though. I might be wrong but I don’t think I have any issues with running the container.
Thread networking requires local ipv6. I would enable ipv6 in your router and see if that makes any difference.
The stock OTBR image is available for arm, but it doesn’t have the extra home assistant tweaks found in aleer’s image.
You can’t make a thread network preferred unless HA knows the credentials, signified, for some reason, buy a circled (i) beside the network name — I don’t see that in your screenshot suggesting you haven’t imported the credentials yet. The list on this screen shows networks HA has detected, not networks it has control over.
For OTBR instances, this should happen when you enroll your border router with the openthread integration. You can do this by selecting “Add openthread border router ” from the hamburger menu in the upper right corner of the screenshot you posted and entering the REST URL for your new OTBR instance. It might even be auto-discovered under devices and services.
I just checked my router settings, ipv6 was already enabled.
Maybe too much details for this topic but what is the main reason to switch from the default otbr image to aleer’s version?
I got it to work. It turned out that indeed I need to run the OTBR integration first, then thread and lastly matter. Now I have a preferred network and I’m able to add matter devices.
Configuration (like sensitivity) of the devices (Aqara motion p2) is not available. I suppose this is a limitation of the docker and not yet supported.
Does anyone know how to change the OTBR port configuration in docker compose? I noticed that my swag container is throwing a ‘port 80 is already in use’ error whenever the OTBR container is running prior to swag.
I tried changing the port by doing the below but that did not do the trick. For now my workaround is to ensure to start the swag container first but that’s pretty ugly (and it prevents me from being able to access the otbr web interface).
# network_mode: host
ports:
- 81:80
You can mount a file to change the UI port, but you really should try @aleer’s image instead of the stock OTBR image. HASS OTBR docker has an environment variable to change the UI port OTBR_WEB_PORT and all the other Home Assistant tweaks found in their OTBR Add-On. FYI, either of those images should be run in host network mode.
I see… the contents of my custom file was wrong… thanks!
I will look into aleer’s image later.
