Weird Bilresa pairing behaviour with Apple Home
I've had varying success with pairing the Thread stuff. My setup:
>TBRs - Apple TV 4K
HomePod Mini
Dirigera
Nanoleaf Shapes
Home Assistant OpenThread
Got an extensive Thread network. It's unified. Most Matter. Some HomeKit native.
Home network is native IPv6 with 3 different /56 routable prefixes
Various VLANs. The TBRs are all on VLAN0 with my home network. That VLAN has /60s from two of my IPv6 ranges to delegate. The Thread network has a /64 from one of them. NAT64 is turned off on the Dirigera. Everything routes properly.
Some of the IKEA stuff pairs instantly when I try to pair it via Apple directly. Some has been very ... reluctant, though. In particular I got a Bilresa recently that Just Would Not Pair.
iPhone pairing seems to have 3 stages: Connecting, Setting Up, Adding to Home
Ordinarily attempting to pair MOST Ikea stuff with Apple Home just works.
But this Bilresa just would not. At all. Stuck on "Connecting" until it timed out.
Except one time I saw it skip straight to "Setting up", and then timed out, and then I realised I had my VPN on.
Lots of experimenting later and I determined there was Something Weird™ going on with IPv6
If I put the phone in a different IP multicast regime to the ones that the TBRs are on, it would get as far as "Setting up" before timing out. If the phone could see the TBRs via mDNS, it timed out on "Connecting".
Here's what I think was happening. The phone tries to do the initial handshake and notices the TBRs and says, "Hi guys, got a newbie for you".
And for some reason the TBRs can't handshake with the Bilresa.
But if it CAN'T see the TBRs, it uses its own Thread radio, but then notices that there's a Thread network already in Home and for some reason the Bilresa won't join it.
Putting the phone on my backup VLAN, which can still route to the TBRs but can't see them gia multicast got it as far as "connecting".
Then I swiped down to get "control centre", and toggled wifi on and off.
The phone joined the main VLAN
It saw the TBRs
It handed the Bilresa, which it had presumably given a link local address to, to them.
The Bilresa joined the Thread network
"Adding to Home" "Done"
So here's my hypothesis: SOME Ikea Thread firmware will basically ignore IPv6 announcements to reconfigure its IP address IF and only if it already has a routable V6, because it figures it's already on the Thread network.
This is fine if the IPv6 prefix of the Thread network never changes (mine does, one of my v6s is dynamic, and I occasionally have to power cycle some of the IKEA stuff), or if NAT64 is being deployed.
But if the Thread network is a routable v6 but happens to have a different prefix to your routable LAN v6, then it just won't pair.
This is conjecture, but I feel like it makes sense and could explain a lot of the problems some of us have been seeing.