Homekit Controller - Nanoleaf Essentials Lightstrip

Currently, I am trying to connect the Nanoleaf LED strip to the Home Assistant via Thread. For this I use the Sky Connect USB stick and the integration of the Homekit controller. The Nanoleaf LED strip is also recognized, but the configuration fails. In the attachment you can find the logs.

I do not know what to do. I would be very happy about your support.

Logger: homeassistant.components.homekit_controller.config_flow
Source: components/homekit_controller/config_flow.py:491
Integration: HomeKit-Controller (documentation, issues)
First occurred: 08:07:19 (2 occurrences)
Last logged: 08:07:51

Pairing attempt failed with an unhandled exception
Traceback (most recent call last):
File “/usr/local/lib/python3.10/site-packages/aiohomekit/controller/coap/connection.py”, line 290, in do_pair_setup
response = await self.pair_setup_client.request(request).response
asyncio.exceptions.CancelledError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/components/homekit_controller/config_flow.py”, line 491, in async_step_pair
self.finish_pairing = await discovery.async_start_pairing(self.hkid)
File “/usr/local/lib/python3.10/site-packages/aiohomekit/controller/coap/discovery.py”, line 57, in async_start_pairing
salt, srpB = await self.connection.do_pair_setup(
File “/usr/local/lib/python3.10/site-packages/aiohomekit/controller/coap/connection.py”, line 289, in do_pair_setup
async with asyncio_timeout(16.0):
File “/usr/local/lib/python3.10/site-packages/async_timeout/init.py”, line 129, in aexit
self._do_exit(exc_type)
File “/usr/local/lib/python3.10/site-packages/async_timeout/init.py”, line 212, in _do_exit
raise asyncio.TimeoutError
asyncio.exceptions.TimeoutError

Home Assistant 2023.2.2
Supervisor 2023.01.1
Operating System 9.5
Frontend 20230202.0 - latest

Hello @simon.stork !

In general when we see timeouts, it is an IPv6 configuration issue. Try a ping from both HA and your desktop/laptop. This will help narrow the issue down. Something like:

ping6 -c4 Nanoleaf-A19-3TH2.local.

But replace A19 with Lightstrip (I think) and 3TH2 with the 4-digit ID of your strip. If you have an mDNS service browser, you can look up the correct hostname that way, as well. On MacOS, that would be:

dns-sd -Z _hap._udp

Thanks for your answer @lambdafunction
Currently ipv6 is disabled on my router. Do I need to enable it? I thought the communication between the LED strip and the Home Assistant is only direct and via the Sky Connect, what does this have to do with my network then?

I’m having similar problems with other HomeKit devices, and ping6 doesn’t do anything at all from my HA terminal. ping does work, just not ping6 (which both work from my laptop). My router has assigned several IPv6 addresses to HA, though. Do you have any suggestions for where I could look next in order to find the issue?

@simon.stork ahh you have that set up. I haven’t looked at the OTBR component but I would suspect that HA is still doing comms over IPv6 even if it is localhost. Otherwise each component (homekit_controller, etc.) would have to have a custom path to talk to local devices if they were exposed differently.

From what I’ve seen, a good Thread BR will provide prefixes & routes so even if IPv6 is disabled on your router you’ll be able to talk to local (on your network) devices. If nothing in your network can see the devices being advertised or ping them, that needs fixing first.

@timvermeulen does ping on HA return an IPv4 or IPv6 address for the accessories? Are you also getting timeout errors during pairing?