PROBLEM
Matter over Thread devices (tested with IKEA KAJPLATS and BILRESA) cannot be commissioned to Home Assistant when running python-matter-server on a Synology NAS with Apple TV 4K as Thread Border Router.
Commissioning fails with:
- Discovery timed out
- PASESession timed out
- addresses= in mDNS discovery
ROOT CAUSE
The Synology kernel (4.4.x) does not support accept_ra_rt_info_max_plen. This kernel parameter (available since Linux 4.18) allows the kernel to learn routes from IPv6 Router Advertisement Route Information Options (RIO).
The Apple TV TBR correctly advertises the Thread mesh route via RIO โ but the Synology kernel silently ignores it. Result: no route to Thread devices, PASE handshake fails.
You can verify this:
Request Router Advertisement:
sudo rdisc6 eth0
The Apple TV response will contain: Route: fdde:xxxx:xxxx::/64
But the kernel ignores it:
ip -6 route show | grep fdde
(empty)
Confirm parameter is missing:
cat /proc/sys/net/ipv6/conf/eth0/accept_ra_rt_info_max_plen
No such file or directory
SOLUTION
Step 1 - Find your Apple TV's Link-Local IPv6 address in your router's
device list (e.g. Fritz!Box -> Heimnetz -> Netzwerk).
Step 2 - Put your Thread device in pairing mode, then find the Thread prefix:
avahi-browse -r _matterc._udp
Note the fdde:xxxx:xxxx::... address shown under "address ="
Step 3 - Add the route manually:
sudo ip -6 route add fdde:xxxx:xxxx::/64 via fe80::YOUR:APPLETV:ADDRESS dev eth0
Step 4 - Make it persistent via DSM Task Scheduler:
Control Panel -> Task Scheduler -> Create -> Triggered Task -> User-defined script
User: root, Event: Boot-up
Script:
#!/bin/bash
sleep 30
ip -6 route add fdde:xxxx:xxxx::/64 via fe80::YOUR:APPLETV:ADDRESS dev eth0
NOTES
- The Thread prefix (fdde:...) can change if the Apple TV is reset โ update the route accordingly
- Tested on Synology DS1520+, DSM 7.x, Kernel 4.4.302
- Apple TV 4K as sole Thread Border Router
- python-matter-server image: Package python-matter-server ยท GitHub