This is my configuration to run Thread/Matter configuration to work together with Home Assistant.
Assumptions:
- enp2s0 – ethernet card id
- 192.168.0.128:7638 – ip and port of socket listening on SLZB-MR3
This works on Debian 13 (trixie) and OpenWRT 24.10.2
OpenWRT
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# Add IPv6 to existing LAN interface uci set network.globals.ula_prefix='fd12:3456:789a::/48' uci set network.lan.ipv6='1' uci set network.lan.ip6assign='64' uci set network.lan.ip6hint='0' # Enable Multicast snooping uci set network.lan.multicast_snooping='1' uci commit network /etc/init.d/network restart # Enable DHCPv6 server (IPv4 DHCP will continue working) uci set dhcp.lan.dhcpv6='server' uci set dhcp.lan.ra='server' uci set dhcp.lan.ra_management='1' uci set dhcp.lan.ra_default='1' uci set dhcp.lan.ra_lifetime='1800' uci set dhcp.lan.ra_addresses='1' uci commit dhcp /etc/init.d/odhcpd restart |
|
1 2 |
opkg update opkg install umdns |
Debian
I installed avahi-daemon (not sure if required)
/etc/modules
|
1 2 |
ip6table_filter ip6table_mangle |
load them too:
|
1 2 |
sudo modprobe ip6table_filter sudo modprobe ip6table_filter |
/etc/sysctl.conf
|
1 2 3 4 5 6 7 8 9 10 11 |
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 net.ipv6.conf.enp2s0.disable_ipv6 = 0 net.ipv4.conf.enp2s0.forwarding = 1 net.ipv6.conf.enp2s0.forwarding = 1 net.ipv6.conf.enp2s0.accept_ra_rt_info_max_plen = 64 net.ipv6.conf.enp2s0.accept_ra = 2 |
load them:
|
1 |
sudo sysctl -p |
/etc/network/interfaces
Ensure that system got IPv6 from router
|
1 |
iface enp2s0 inet6 dhcp |
Final configuration
docker-compose.yml
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
open-thread: container_name: open-thread restart: always image: ghcr.io/ownbee/hass-otbr-docker:latest network_mode: host privileged: true dns: 127.0.0.1 cap_add: - SYS_ADMIN - NET_ADMIN - IPC_LOCK volumes: - ./volumes/otbr-data:/data - /etc/localtime:/etc/localtime:ro environment: - DEVICE=/tmp/ttyOTBR - NETWORK_DEVICE=192.168.0.128:7638 - BAUDRATE=460800 - FLOW_CONTROL=0 - AUTOFLASH_FIRMWARE=0 - OTBR_LOG_LEVEL=warning - OTBR_REST_PORT=8081 - OTBR_WEB_PORT=8082 - FIREWALL=0 - NAT64=1 - OTBR_ENABLE=1 - BACKBONE_IF=enp2s0 - TZ=Europe/Warsaw devices: - /dev/net/tun:/dev/net/tun matter-server: container_name: matter-server image: ghcr.io/home-assistant-libs/python-matter-server:stable volumes: - ./volumes/matter-data:/data - /run/dbus:/run/dbus:ro - /etc/localtime:/etc/localtime:ro network_mode: host privileged: true restart: unless-stopped security_opt: - apparmor:unconfined environment: - MATTER_SERVER_STORAGE_PATH=/data |
Not solved yet – mDNS conflicts (but it looks to not cause any real problems)
|
1 2 3 4 5 6 7 8 9 10 11 12 |
open-thread | Default: mDNSCoreReceiveResponse: Received from fe80::8022:f4ff:fe52:e990:5353 19 0.9.9.e.2.5.e.f.f.f.4.f.2.2.0.8.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa. PTR home-53.local. open-thread | Default: mDNSCoreReceiveResponse: Unexpected conflict discarding 21 0.9.9.E.2.5.E.F.F.F.4.F.2.2.0.8.0.0.0.0.0.0.0.0.0.0.0.0.0.8.E.F.ip6.arpa. PTR home-otbr.local. open-thread | Default: mDNSCoreReceiveResponse: Received from fe80::2491:4ff:fe15:81d9:5353 19 9.d.1.8.5.1.e.f.f.f.4.0.1.9.4.2.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa. PTR home-53.local. open-thread | Default: mDNSCoreReceiveResponse: Unexpected conflict discarding 21 9.D.1.8.5.1.E.F.F.F.4.0.1.9.4.2.0.0.0.0.0.0.0.0.0.0.0.0.0.8.E.F.ip6.arpa. PTR home-otbr.local. open-thread | Default: mDNSCoreReceiveResponse: Received from fe80::7869:85ff:fe29:b08a:5353 19 a.8.0.b.9.2.e.f.f.f.5.8.9.6.8.7.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa. PTR home-53.local. open-thread | Default: mDNSCoreReceiveResponse: Unexpected conflict discarding 21 A.8.0.B.9.2.E.F.F.F.5.8.9.6.8.7.0.0.0.0.0.0.0.0.0.0.0.0.0.8.E.F.ip6.arpa. PTR home-otbr.local. open-thread | Default: mDNSCoreReceiveResponse: Received from 192.168.0.66:5353 19 b.0.8.7.8.d.e.f.f.f.3.2.c.9.2.3.c.9.8.7.f.e.d.0.b.b.9.e.b.0.d.f.ip6.arpa. PTR home-53.local. open-thread | Default: mDNSCoreReceiveResponse: Unexpected conflict discarding 21 B.0.8.7.8.D.E.F.F.F.3.2.C.9.2.3.C.9.8.7.F.E.D.0.B.B.9.E.B.0.D.F.ip6.arpa. PTR home-otbr.local. open-thread | Default: mDNSCoreReceiveResponse: Received from fe80::e4ed:24ff:fef3:d56b:5353 19 b.6.5.d.3.f.e.f.f.f.4.2.d.e.4.e.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa. PTR home-53.local. open-thread | Default: mDNSCoreReceiveResponse: Unexpected conflict discarding 21 B.6.5.D.3.F.E.F.F.F.4.2.D.E.4.E.0.0.0.0.0.0.0.0.0.0.0.0.0.8.E.F.ip6.arpa. PTR home-otbr.local. open-thread | Default: mDNSCoreReceiveResponse: Received from fe80::dc70:73ff:fe9d:b289:5353 19 9.8.2.b.d.9.e.f.f.f.3.7.0.7.c.d.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa. PTR home-54.local. open-thread | Default: mDNSCoreReceiveResponse: Unexpected conflict discarding 21 9.8.2.B.D.9.E.F.F.F.3.7.0.7.C.D.0.0.0.0.0.0.0.0.0.0.0.0.0.8.E.F.ip6.arpa. PTR home-otbr.local |

