HomeKit Accessory Protocol (HAP) over CoAP/UDP (was: Nanoleaf Essentials bulb via Thread/CoAP)

@DesertNomadBear Let’s check networking first. If you’re running HA OS, get to the HA console:

# docker exec -it homeassistant /bin/bash
# nslookup Nanoleaf-A19-12FA.local.
<you should get an IPv6 address>
# ip -6 route get fd78:a65:45c8:0:cd0e:2d7a:5081:327b
fd78:a65:45c8:0:cd0e:2d7a:5081:327b via fe80::255:daff:fe5f:5147 dev enp1s0  src fd3a:a04c:ba7f::2c7  metric 100
# ping6 -c4 Nanoleaf-A19-12FA.local.
# aiocoap-client -vvv coap://Nanoleaf-A19-12FA.local./.well-known/core
... debug ...
</.well-known/core>;
</nlpublic>;
</nlltpdu>;
</nlsecure>;
</>;
</2>;
</1>;
</0>;

All of these should succeed. If something fails, it indicates a problem with your IPv6 networking.

If you don’t see the /0, /1, or /2 endpoints, turn your bulb off and back on before pairing. The HomeKit endpoints shut down after a few minutes if the bulb isn’t currently paired & no HAP traffic shows up after boot.

EDIT: I just saw you mentioned ping6 was successful so just check the aiocoap-client output.

Thanks a lot for the quick reply.
The solution was a bit more trivial than this. When pairing accessories with Home app or NL app, they just need to be powered, but not necessarily turned on.
However, in the Home Assistant / HomeKit Controller case, the light needs to be powered AND turned on when deleting from the NL app, and throughout the pairing process. Otherwise it fails, even if the light is connected to Thread and replies to ping 6.
Hopefully this will help others coming across the same issue.

EDIT: seems I got enthusiastic too soon…
After adding the lights back in HomeKit via HomeKit integration, NL app shows them as connected via bluetooth, not Thread :frowning:
Back to the drawing board… Unfortunately I only have HomePod minis as my thread border routers, will this be supported in upcoming versions?

Im running HA OS on a raspberry pi 4 and I haven’t had any luck yet getting my HA to hold the edits for const.py. Can someone ELI5 on how to get this done?

You will lose the edits any time you update HA but otherwise they should be sticking. I’m running the OVA in a VM but I don’t think the images are that different.

Was doing some tinkering with the openthread border router addon (currently only a dev addon https://developers.home-assistant.io/ ) and using a nrf52840 dongle with their coprocessor sample I was able to join HA to the nanoleaf thread network, and funny enough it still controlled all my essentials even when I unplugged my shapes router.

Not sure if this is helpful to anyone, but it at least proves that the bulbs can work with only HA as a border router. Hardest part was figuring out how to compile nrf’s coprocessor sample, their documentation isn’t the clearest.

1 Like

I managed to get 3 bulbs and 4 strips in HA, via Thread, using HomePod mini as border router.
They connect sometimes, but most of the times are unavailable.
Usually, they connect when I restart my Linksys Velop MX4200 mesh, or when restarting the HomePods, or occasionally when restarting the HA raspberry Pi4.

EDIT: even after they connect, they never stay connected more than 1 hour or so.

I checked the logs, HA discovers them, but I keep seeing a lot of Pair Verify Timeout.
Any suggestions appreciated.


2022-09-18 13:23:36.682 DEBUG (MainThread) [aiohomekit.controller.coap.connection] Pair verify uri=coap://[fda4:d00f:5f52:0:6981:8536:e334:c6f0]:5683/2
2022-09-18 13:23:36.684 DEBUG (MainThread) [aiohomekit.protocol.tlv] sending [
2022-09-18 13:23:44.158 WARNING (MainThread) [aiohomekit.controller.coap.connection] Pair verify timed out
2022-09-18 13:23:44.693 WARNING (MainThread) [aiohomekit.controller.coap.connection] Pair verify timed out
2022-09-18 13:23:59.497 DEBUG (MainThread) [aiohomekit.controller.abstract] [[fda4:d00f:5f52:0:f91c:e3b5:565a:df00]:5683] (id=74:FE:63:57:13:0D): Accessories cache loaded (c#: 1)
2022-09-18 13:23:59.497 DEBUG (MainThread) [aiohomekit.controller.abstract] [[fda4:d00f:5f52:0:f91c:e3b5:565a:df00]:5683] (id=74:FE:63:57:13:0D): Description updated: old=None new=HomeKitService(name='Nanoleaf A19 9FT7', id='74:fe:63:57:13:0d', model='NL45', feature_flags=<FeatureFlags.SUPPORTS_APPLE_AUTHENTICATION_COPROCESSOR: 1>, status_flags=<StatusFlags.0: 0>, config_num=1, state_num=22, category=<Categories.LIGHTBULB: 5>, protocol_version='1.2', type='_hap._udp.local.', address='fda4:d00f:5f52:0:f91c:e3b5:565a:df00', addresses=['fda4:d00f:5f52:0:f91c:e3b5:565a:df00'], port=5683)
2022-09-18 13:23:59.497 DEBUG (MainThread) [aiohomekit.controller.abstract] [[fda4:d00f:5f52:0:f91c:e3b5:565a:df00]:5683] (id=74:FE:63:57:13:0D): Disconnected event notification received; Triggering catch-up poll
2022-09-18 13:23:59.498 DEBUG (MainThread) [aiohomekit.zeroconf] 74:FE:63:57:13:0D: Device rediscovered
2022-09-18 13:23:59.506 DEBUG (MainThread) [aiohomekit.controller.coap.connection] Pair verify uri=coap://[fda4:d00f:5f52:0:f91c:e3b5:565a:df00]:5683/2
2022-09-18 13:23:59.508 DEBUG (MainThread) [aiohomekit.protocol.tlv] sending [
2022-09-18 13:23:59.543 DEBUG (MainThread) [aiohomekit.controller.abstract] [[fda4:d00f:5f52:0:61dd:5108:dcae:59f6]:5683] (id=15:EC:EC:56:10:85): Accessories cache loaded (c#: 3)
2022-09-18 13:23:59.543 DEBUG (MainThread) [aiohomekit.controller.abstract] [[fda4:d00f:5f52:0:61dd:5108:dcae:59f6]:5683] (id=15:EC:EC:56:10:85): Description updated: old=None new=HomeKitService(name='Nanoleaf Strip 4K3N', id='15:ec:ec:56:10:85', model='NL55', feature_flags=<FeatureFlags.SUPPORTS_APPLE_AUTHENTICATION_COPROCESSOR: 1>, status_flags=<StatusFlags.0: 0>, config_num=3, state_num=22326, category=<Categories.LIGHTBULB: 5>, protocol_version='1.2', type='_hap._udp.local.', address='fda4:d00f:5f52:0:61dd:5108:dcae:59f6', addresses=['fda4:d00f:5f52:0:61dd:5108:dcae:59f6'], port=5683)
2022-09-18 13:23:59.543 DEBUG (MainThread) [aiohomekit.controller.abstract] [[fda4:d00f:5f52:0:61dd:5108:dcae:59f6]:5683] (id=15:EC:EC:56:10:85): Disconnected event notification received; Triggering catch-up poll
2022-09-18 13:23:59.543 DEBUG (MainThread) [aiohomekit.zeroconf] 15:EC:EC:56:10:85: Device rediscovered
2022-09-18 13:23:59.548 DEBUG (MainThread) [aiohomekit.controller.abstract] [[fda4:d00f:5f52:0:1461:ae44:4a6a:db47]:5683] (id=3D:EE:3E:C1:F5:07): Accessories cache loaded (c#: 3)
2022-09-18 13:23:59.548 DEBUG (MainThread) [aiohomekit.controller.abstract] [[fda4:d00f:5f52:0:1461:ae44:4a6a:db47]:5683] (id=3D:EE:3E:C1:F5:07): Description updated: old=None new=HomeKitService(name='Nanoleaf Strip 3UBX', id='3d:ee:3e:c1:f5:07', model='NL55', feature_flags=<FeatureFlags.SUPPORTS_APPLE_AUTHENTICATION_COPROCESSOR: 1>, status_flags=<StatusFlags.0: 0>, config_num=3, state_num=21524, category=<Categories.LIGHTBULB: 5>, protocol_version='1.2', type='_hap._udp.local.', address='fda4:d00f:5f52:0:1461:ae44:4a6a:db47', addresses=['fda4:d00f:5f52:0:1461:ae44:4a6a:db47'], port=5683)
2022-09-18 13:23:59.548 DEBUG (MainThread) [aiohomekit.controller.abstract] [[fda4:d00f:5f52:0:1461:ae44:4a6a:db47]:5683] (id=3D:EE:3E:C1:F5:07): Disconnected event notification received; Triggering catch-up poll
2022-09-18 13:23:59.548 DEBUG (MainThread) [aiohomekit.zeroconf] 3D:EE:3E:C1:F5:07: Device rediscovered
2022-09-18 13:23:59.561 DEBUG (MainThread) [aiohomekit.controller.coap.connection] Pair verify uri=coap://[fda4:d00f:5f52:0:61dd:5108:dcae:59f6]:5683/2
2022-09-18 13:23:59.562 DEBUG (MainThread) [aiohomekit.protocol.tlv] sending [
2022-09-18 13:23:59.564 DEBUG (MainThread) [aiohomekit.controller.coap.connection] Pair verify uri=coap://[fda4:d00f:5f52:0:1461:ae44:4a6a:db47]:5683/2
2022-09-18 13:23:59.565 DEBUG (MainThread) [aiohomekit.protocol.tlv] sending [
2022-09-18 13:24:01.977 WARNING (MainThread) [aiohomekit.controller.coap.connection] Pair verify failed
File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/coap/connection.py", line 386, in connect
File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/coap/connection.py", line 345, in do_pair_verify
2022-09-18 13:24:02.057 WARNING (MainThread) [aiohomekit.controller.coap.connection] Pair verify failed
File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/coap/connection.py", line 386, in connect
File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/coap/connection.py", line 345, in do_pair_verify
2022-09-18 13:24:04.163 DEBUG (MainThread) [aiohomekit.controller.abstract] [[fda4:d00f:5f52:0:f4a:560d:f10c:84fd]:5683] (id=E6:0B:8C:96:36:B5): Accessories cache loaded (c#: 3)
2022-09-18 13:24:04.163 DEBUG (MainThread) [aiohomekit.controller.abstract] [[fda4:d00f:5f52:0:f4a:560d:f10c:84fd]:5683] (id=E6:0B:8C:96:36:B5): Description updated: old=None new=HomeKitService(name='Nanoleaf Strip 56VM', id='e6:0b:8c:96:36:b5', model='NL55', feature_flags=<FeatureFlags.SUPPORTS_APPLE_AUTHENTICATION_COPROCESSOR: 1>, status_flags=<StatusFlags.0: 0>, config_num=3, state_num=24001, category=<Categories.LIGHTBULB: 5>, protocol_version='1.2', type='_hap._udp.local.', address='fda4:d00f:5f52:0:f4a:560d:f10c:84fd', addresses=['fda4:d00f:5f52:0:f4a:560d:f10c:84fd'], port=5683)
2022-09-18 13:24:04.163 DEBUG (MainThread) [aiohomekit.controller.abstract] [[fda4:d00f:5f52:0:f4a:560d:f10c:84fd]:5683] (id=E6:0B:8C:96:36:B5): Disconnected event notification received; Triggering catch-up poll
2022-09-18 13:24:04.163 DEBUG (MainThread) [aiohomekit.zeroconf] E6:0B:8C:96:36:B5: Device rediscovered
2022-09-18 13:24:04.175 DEBUG (MainThread) [aiohomekit.controller.coap.connection] Pair verify uri=coap://[fda4:d00f:5f52:0:f4a:560d:f10c:84fd]:5683/2
2022-09-18 13:24:04.177 DEBUG (MainThread) [aiohomekit.protocol.tlv] sending [
2022-09-18 13:24:04.708 DEBUG (MainThread) [aiohomekit.controller.abstract] [[fda4:d00f:5f52:0:6981:8536:e334:c6f0]:5683] (id=C2:44:AF:A0:8A:6E): Accessories cache loaded (c#: 3)
2022-09-18 13:24:04.708 DEBUG (MainThread) [aiohomekit.controller.abstract] [[fda4:d00f:5f52:0:6981:8536:e334:c6f0]:5683] (id=C2:44:AF:A0:8A:6E): Description updated: old=None new=HomeKitService(name='Nanoleaf Strip 71NN', id='c2:44:af:a0:8a:6e', model='NL55', feature_flags=<FeatureFlags.SUPPORTS_APPLE_AUTHENTICATION_COPROCESSOR: 1>, status_flags=<StatusFlags.0: 0>, config_num=3, state_num=22116, category=<Categories.LIGHTBULB: 5>, protocol_version='1.2', type='_hap._udp.local.', address='fda4:d00f:5f52:0:6981:8536:e334:c6f0', addresses=['fda4:d00f:5f52:0:6981:8536:e334:c6f0'], port=5683)
2022-09-18 13:24:04.708 DEBUG (MainThread) [aiohomekit.controller.abstract] [[fda4:d00f:5f52:0:6981:8536:e334:c6f0]:5683] (id=C2:44:AF:A0:8A:6E): Disconnected event notification received; Triggering catch-up poll
2022-09-18 13:24:04.708 DEBUG (MainThread) [aiohomekit.zeroconf] C2:44:AF:A0:8A:6E: Device rediscovered
2022-09-18 13:24:04.720 DEBUG (MainThread) [aiohomekit.controller.coap.connection] Pair verify uri=coap://[fda4:d00f:5f52:0:6981:8536:e334:c6f0]:5683/2
2022-09-18 13:24:04.721 DEBUG (MainThread) [aiohomekit.protocol.tlv] sending [
2022-09-18 13:24:07.569 WARNING (MainThread) [aiohomekit.controller.coap.connection] Pair verify timed out
2022-09-18 13:24:12.189 WARNING (MainThread) [aiohomekit.controller.coap.connection] Pair verify timed out
2022-09-18 13:24:12.734 WARNING (MainThread) [aiohomekit.controller.coap.connection] Pair verify timed out

EDIT 2: It seems that after installing Home Assistant Supervisor 2022.09.1, all the lights have been stable for 48 hours, and not seeing any more Pair Verify Timeout. Not sure what changed, but happy to confirm HA + HomePods mini + Thread + Nanoleaf Essential works great.

Just got HA 2022.9.0 + HomePod mini + Eve Energy working over thread.

mDNS worked even though my IPv6 setup was crap.

Things I had to fix in my environment first:

  • I had to make sure my HomePod was on my IoT VLAN (or at least a VLAN that my HA container had access to). To move a HomePod mini between WiFi hotspots i had to turn off my “main” hotspot. When you do that, the iOS Home app will tell you the HomePod fell off WiFi and ask if you want to move it to a different one (your phone/ipad has to be on that hotspot for that to work, you can just pick one).
  • I initially only had fe80:: addresses configured. I did briefly give it a ULA. That didn’t help, but I think for some reason its still using it even though i turned it back off in UniFi. Therefore I can’t be sure that having a working ULA or GLA on your IoT vlan isn’t a requirement at this stage.
  • I could see router advertisements (tcpdump -eni vlan101 icmp6 -vvv) in my container but the container wasn’t applying them. I had to set net.ipv6.conf.vlan101.accept_ra_rt_info_max_plen from 0 to 64 (64 is the subnet prefix length the HomePod is advertising).
  • I first paired my Eve devices with iOS, waiting for them to switch to thread, then unpaired them (via the app - DO NOT RESET THEM). They stayed on the thread network. I could then pair them again via Home Assistant.

After my IPv6 woes were fixed this was pretty seemless.

2 Likes

Was able to get a Nanoleaf Lightstrip (NL55) working on Thread with the same process (pair with iOS, give it time to migrate to thread, remove pairing, re-pair from Home Assistant).

Unfortunately the Eve Thermo seems to have a bug. It won’t unpair over Thread. If i disconect the border router I can force it to unpair over Bluetooth. This is frustratingly close to working - it is discovered by HA over Thread, can get to the form to enter a setup code, but then it claims the device is already paired. So no luck there yet.

1 Like

Fix parsing Eve Energy characteristic data by Jc2k · Pull Request #78880 · home-assistant/core · GitHub gets Eve Energy working.

Kind of the same process - pair with iOS, give it time to migrate to thread, but then a caveat: Turn the border router off. Then you can use the “ID” button in the Eve app to test if you’ve got a working bluetooth connection to the device. When you do, remove the device from the Home or Eve app. If this works in less than 30s, your device is almost ready to pair to Home Assistant. Just turn your border router back on and wait for everything to come back online. If it took over 30s to remove the device, HomeKit probably gave up trying and just removed it from your phone without unpairing. You’ll need to reset it it and try again.

Lights have been working well for a week or two but some lights have gradually started to drop Thread status and become unavailable; most are still available on the network via ping6 but one has multiple addresses as seen in the mDNS browser and is not reachable. What should I look for in the logs for what could be causing the drops?

I’ve noticed this as well, particularly in the following scenario:
If the HomePod minis are connected as Default Output to an apple tv, then some of the lights in their proximity will fall off and show as unavailable.

Upon further troubleshooting, I found this:
When connected to the Apple TV as default output, HomePod minis are advertising a different, random MAC address, each time they are restarted (similar to how Private Addressing works), and appear connected via Ethernet (like the Apple TV), not WiFi to the router. This means that, even though static addressing is configured, they will receive a different IP via DHCP each time they are restarted.
If I remove them as default output from Apple TV, they go back to advertising the built-in MAC (one visible in the home app), get their static IP and lights are more stable.

This random MAC addressing is a known behavior, and it appears to be by design from apple, though this isn’t really documented anywhere.

I have the NL55 as well and was trying to follow along to get it working as well.

Here’s how HA is setup:

  • HA 2022.9.7
  • /usr/local/lib/python3.10/site-packages/aiohomekit/const.py updated for AIOHOMEKIT_TRANSPORT_COAP=TRUE (and rebooted)

For a BR I’m using a Homepod Mini.

I’m also using the NL app, iPhone and the Eve app (no Eve devices, but I like the the view the Eve app provides of the Thread network).

I paired the NL55 (fw: 1.6.41) using my iPhone and the Nanoleaf app. At this point, when I look in the app at the “Thread Network” it shows the strip as being in the thread network. I confirmed this in the Eve app, it too shows the strip in the Thread Network (it lists it as Role: Router). Now, if I follow your directions and removee the pairing (I assume you mean delete the device from the “My Devices” section of the NL app?) it falls off the Thread Network (ie: the device is no longer visible in the Eve app). Is this the expected outcome?

If so, then at this point HA should pick it up (it doesn’t, which is why I’m checking in to see if I’ve misunderstood something in your steps).

The eve app only shows devices paired to the iOS device, so the NL55 can still be on thread but not visible in the app. So what you described is expected.

I didn’t use the nanoleaf app, I just used the official app and the eve app. It’s possible that the nanoleaf app is unprovisioning the thread network as part of the unpair?

Have you checked your network for mdns traffic when the nl55 is on the thread network? The biggest problem I had was getting ipv6 working right with my home network setup :confused:

I had all the ipv6 stuff (nslookup, ping6, ip -6 route, aiocoap-client) all working. So I got rid of the NL app and tried again with the Home App (which is what I assume you mean when you say official app) - added the device in - waited for a bit and then removed the accessory from the Home app. I waited around (assuming it would pop-up in HA) but nothing happened. So I power-cycled the NL55 one more time and BAM pops up in HA!

I’m sure when I upgrade to HA 2022.10.x I’ll end up having to spend far too long to get it working again - but that’s the whole point of tinkering.

Thanks for all the effort you are putting in getting this working.

Does anyone want to contribute to making a video tutorial for this?

1 Like

Been getting an intermittent issue lately where HA stops connecting to my thread devices, if I reload my bulbs and strip individually they come back up instantly, not sure what’s causing them to stop working.

Looking through logs I’m seeing a lot of the following:

2022-09-30 22:01:04.263 WARNING (MainThread) [aiohomekit.controller.coap.pdu] Transaction 0 failed with error 6 (Invalid request
2022-09-30 22:01:11.859 WARNING (MainThread) [aiohomekit.controller.coap.connection] Pair verify timed out
2022-09-30 22:01:20.632 WARNING (MainThread) [aiohomekit.controller.coap.connection] CoAP POST returned unexpected code <aiocoap.Message at 0x7fa2fb833d60: Type.ACK 4.04 Not Found (MID 34442, token 171a) remote <UDP6EndpointAddress [ipv6:address] (locally ipv6:address%wpan0)>>
2022-09-30 22:01:20.634 ERROR (MainThread) [aiohomekit.controller.coap.connection] Decryption failed, desynchronized? Counter=16/17
2022-09-30 22:01:20.636 ERROR (MainThread) [aiohomekit.controller.coap.connection] Failed flailing attempts to resynchronize, self-destructing in 3, 2, 1...

Not sure it’s worth doing a video currently as development on this has been pretty rapid and it’ll likely be out of date in a month or two.

Video … no, but I will give a better description of what I did. This is basically just taking the various comments from @lambdafunction and @Jc2k (and possibly others??) and distilling them down into a series of steps that I followed (at least what I think I followed based on the notes I took), but all listed in 1 place.

Here what I’m running/using:

  1. HA 2022.09.7 (HAOS)
  2. Nanoleaf Essentials NL55 strip
  3. Homepod Mini
  4. iPhone with Nanoleaf and Eve app

Here’s what I did - follow along at your own risk. Please read all the steps carefully before starting.

A. Get the IPv6 basics setup on your HA system

  1. In HA goto Settings → System → Network and set IPv6 to DHCP
  2. In HA install the “SSH & Web Terminal Addon”.
    (a) In the Info tab for the Addon and turn OFF “Protection mode” (ie: move the slider to the left).
    (b)In the Info tab for the Addon, turn ON “Show in sidebar” (ie: move the slider to the right).
  3. Access the HA console
    (a) Click “Terminal” in the sidebar (be careful if you also have “Terminal & SSH” Addon also installed as it will also show up in the sidebar as “Terminal”
    (b) Or you can SSH in using your favorite client app (if you do this, check the Configuration tab of the Addon to verify the port to SSH into.
  4. At the “~” prompt, type the following command:
bash-5.1# docker exec -it homeassistant /bin/bash
  1. You should now have a “bash-5.1#” prompt, type the following:
bash-5.1# echo net.ipv6.conf.all.accept_ra_rt_info_max_plen=64 >> /etc/sysctl.conf
  1. Edit the following file (I used vi, but if you are not familiar with it use something else as it is REALLY easy to make a mess with vi).
/usr/local/lib/python3.10/site-packages/aiohomekit/const.py
  1. Find the line:
    if "AIOHOMEKIT_TRANSPORT_COAP" in os.environ:
  1. Change it (Capitalization and spacing are important … that’s 4 spaces before the ‘if’) to:
    if True:
  1. Restart HAOS using your favorite method. (Settings → System → Restart)

B. Get your Nanoleaf (NL) Essentials device on Thread:

  1. Install the NL app on your iPhone.
  2. Power on your NL device
  3. Follow the process in the NL app to pair the phone and NL device.
  4. Once paired, update the NL device fw (I updated mine to 1.6.41).
  5. Once the fw update is complete, delete your NL device from the NL app.
  6. Pair the NL device with the iPhone Home app.
  7. Use the Eve app (you don’t need any Eve devices) to confirm your NL device is on Thread
  8. Remove the NL device from the iPhone Home app (it will no longer appear the Eve app, but it should still be on Thread).
  9. Power cycle the NL device
  10. HA should detect the NL device.
  11. Party like it’s 1999.

Troubleshooting tips:
Logging:
Assuming you have something in your configuration.yaml like this:

logger: 
  default: warning

You should be able to go to Developer Tools → Services and paste the following (and then press “Call Service”) to enable logs to see what is going on behind the scenes. Note that depending on your network, there may be a lot of traffic:

service: logger.set_level
data:
  aiohomekit: debug
  homeassistant.components.homekit_controller: debug
  zeroconf: debug

IPv6 Connectivity
If at the end, HA doesn’t find the NL device, it can be helpful to check that HA can actually see/talk to your NL device:

  1. Access the HA console
    (a) Click “Terminal” in the sidebar (be careful if you also have “Terminal & SSH” Addon also installed as it will also show up in the sidebar as “Terminal”
    (b) Or you can SSH in using your favorite client app (if you do this, check the Configuration tab of the Addon to verify the port to SSH into.
  2. At the “~” prompt, type the following command:
bash-5.1# docker exec -it homeassistant /bin/bash
  1. You should now have a “bash-5.1#” prompt, type the following (they should all return succesfull results). Replace nanoleaf-strip-3j15.local with your NL device name, and use the IPv6 address returned from the first command, as input to the second command.
bash-5.1# nslookup nanoleaf-strip-3j15.local
(returns an ipv6 address, use it rto replace the ipv6 address in the command below)

bash-5.1# ip -6 route get fd78:dc8e:45c8:0:81da:2d7a:ef60:327b

bash-5.1# ping6 -c4 nanoleaf-strip-3j15.local

bash-5.1# aiocoap-client -vvv coap://nanoleaf-strip-3j15.local./.well-known/core

Are all these steps necessary? I can’t say for sure, but it is what I did - and it worked for me. Again, follow along at your own risk. Some of the above steps:
– involve editing some underlying files and could potentially mess up your system
– may decrease the security of your system/network

You should probably at a minimum backup the files we are manually editing before you start.

/etc/sysctl.conf
/usr/local/lib/python3.10/site-packages/aiohomekit/const.py

NOTE: These steps may become out of date at any moment.

P.

2 Likes

The manual changes to const.py aren’t needed from 2022.10, which is currently in beta and will be out in the next week (wednesday i think?)

1 Like

If I understand it correctly, to add your Thread devices that works with HomeKit, you still need to have a Apple product. Basically we are back before BLE support but instead of IPv4 it now IPv6. I was very happy when I finally could add my blinds to HA because of the BLE support and you don’t needed a Apple product anymore. But BLE is really slow in general. So I was hopen with HA Thread support + Open thread border router (Dev only but it works) I could add without a Apple product, add my blinds via Thread.

Is there any plan to add support to migrate your BLE devices to Thread in HA. Or is maybe already possible?