#HA & OTBR (docker) adding matter device fails with "can't connect to thread network"

1 messages · Page 1 of 1 (latest)

placid cape
#

I have set up HA, OTBR, and matter-server on the same raspberry pi 4b, all in docker (no HAOS as I host other stuff on the pi, too).
I have (I think) successfully set up a ZBT-2 configured for thread. I added the ZBT-2 to home-assistant and selected the thread border router firmware for flashing. The process completed, however the device did not appear in the device list of home assistant afterwards. Try to readd the device results in a github rate limit for the firmware download (over 8 hours now and still rate limited).

However when I try to pair an IKEA Kajplats LED the process fails at the last step with the message "Can't connect to Thread network OpenThread-38fc". I have followed the thread setup guide, the thread credentials are on my Android phone. The LED is around 7m away from the ZBT-2 with nothing between them.

There are these

49d.18:39:39.970 [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 RCP_LOG_CRASH_DUMP OPENTHREAD_LOG_METADATA 
49d.18:39:39.974 [D] P-SpinelDrive-: Sent spinel frame, flg:0x2, iid:0, tid:1, cmd:PROP_VALUE_GET, key:HWADDR
49d.18:39:39.974 [D] P-RadioSpinel-: Wait response: tid=1 key=8
49d.18:39:39.975 [D] P-SpinelDrive-: Received spinel frame, flg:0x2, iid:0, tid:1, cmd:PROP_VALUE_IS, key:HWADDR, eui64:d878f0fffe9a8cab
49d.18:39:39.975 [D] P-RadioSpinel-: RCP supports crash dump logging. Requesting crash dump.

lines in the otbr startup but I can't find a crash dump anywhere and it just chugs along with the startup, so I assume it did not actually crash. The otbr web status page shows nothing wrong with the container.

I have added my compose.yaml file as an attachment.

Solved

  • Set noipv6 and noipv6rs in the dhcpcd config.
  • Manually configured ipv6 for infra interface (unsure if needed)
  • Use matterjs-server (unsure if needed)
#

HA & OTBR (docker) adding matter device fails with "can't connect to thread network"

orchid galleon
thin panther
#

which unfortunately makes support a lot more difficult. home assistant doesn't provide a thread border router container for docker, so you're using a third party container.

orchid galleon
placid cape
# thin panther which unfortunately makes support a lot more difficult. home assistant doesn't p...

Yes, I have open thread border router, and python-matter-server installed in docker containers. I have followed the open thread border router setup (requires ipv6 forwarding, which the matter-server doesn't recommend, but oh well).
The Open Thread Border Router integration from Home Assistant seems to have set up a thread network on the border router, which all ot-ctl commands show to be working as expected.
I have no VLAN or similar, everything is on the same network (basic fritz box home setup).

#

The only thing I can see that I don't do is have a static ipv6 address to not use dhcp. But even that should only impact how fast network changes are visible.

#

(I've been trying to get a static ipv6 going for the last 3 hours, I praise fritz box.)

placid cape
#

Got a non dhcp ipv6 setup going. I also figured out that the problem is most likely due to the thread network not being pingable from outside the thread border router container. I have no clue why though, there's some threads with the same problem but no solutions.

thin panther
#

check if devices outside are receiving the ipv6 router announcements from the otbr. check the otbr logs to see if it's reporting issue.

#

the thread network itself runs on a separate ipv6 subnet with a ULA prefix, and the thread border router is an ipv6 router between subnets. devices need to be able to see the router announcements that it sends in order to know that they have to use the thread border router as a router to reach the thread subnet.

#

in addition, you don't actually need to set up any ipv6 addresses yourself. if you don't have ipv6 addressing in your network, the thread border router will advertise a ULA prefix (a separate prefix from the one it uses for thread devices) for other systems on your lan to use when talking to it.

placid cape
#

I finally got it to work. Somewhere in the depth of the 4th 3rd party setup guide I read they said that I have to set noipv6 and noipv6rs in the dhcpcd config. After doing that it finally worked. I also used matterjs-server instead of python-matter-server.