Trouble adding my first Matter over Thread device

I can’t manage to add my first Matter over Thread device (IKEA BILRESA: BILRESA afstandsbediening, wit smart/dubbele knop - IKEA). My situation:

  • Home Assistant in docker, so no add-ons
  • OpenThread Border Router via docker compose in docker (openthread/border-router)
  • Matter Server via docker compose in docker (Package python-matter-server · GitHub)
  • OpenThread Border Router integration in HA:

  • Thread integration in HA:

  • Matter integration in HA:

  • Thread credentials synced in the HA Companion app (step 3 at Thread - Home Assistant). 'Home Assistant and this device are using the same network '.

  • IPv6 is enabled on my UniFi Cloud Gateway Ultra and NUC with HA, phone, etc do have an IPv6 address.
  • IGMP Snooping and mDNS enabled on my UniFi Cloud Gateway Ultra
  1. Adding a new Matter Device using the HA Companion app.
    Connection with device…:

  1. Connected, generation Matter credentials:

  1. But stuck on ‘Checking connection with Thread network’, and an error after waiting a few minutes.

I have the impression that the different components have been set up successfully and are running, but in the end adding a Matter over Thread device does not succeed.
Does anyone recognize this? Any tips to get this fixed?

This setup may be a tough one … I don’t have this setup, but here are a couple of things:

  • IGMP Snooping - I would turn it off and let multicast flood the LAN (unless you have an IGMP Querier, but I would still turn it off just to help debug things).
  • Unifi - I’ve heard lots of times that Unifi blocks certain traffic that is needed for Matter/Thread and have seen several solutions, but here is one I actually stashed away as a reference, but not sure if it is the same as yours.

Thanks, I have disabled both.

In the meantime, I managed to get it working based on the Package hass-otbr-docker · GitHub Docker container (GitHub - ownbee/hass-otbr-docker: Stand-alone Home Assistant OpenThread Border Router docker container.
).

One of the differences between this container and the openthread/border-router I used before is that with Package hass-otbr-docker · GitHub I can access the OTBR web interface (and change the port using the OTBR_WEB_PORT environment variable). I now doubt whether openthread/border-router even has a web interface at all, but in any case I cannot reach it on the (apparently) default port 80. I also could not find an environment variable to change this.

Another thing I noticed is that the HA app sometimes searched for the wrong Thread network, despite the successful synchronization of the Thread credentials or the message that HA and “this” device (the phone with the HA app) are already using the same Thread network. Still, after adding a Matter device, the HA app would search for a different Thread network than the preferred network in HA. With access to the OTBR web interface, everything becomes much clearer.

Possibly related to the above, but I noticed that sometimes the name of the Thread network was changed. Apparently, HA has the permissions to do this, and it does not only happen when you choose “Reset Border Router.”