Nanoleaf Essentials over Homekit Controller

Hi, any news on this?
Have basically the same problem. Raspberry Pi 4 + HA OS

  • I can pair a nanoleaf lightstrip via iOS app
  • Wait until the connection type is thread
  • Unpair via Home app
  • Light gets auto-discovered by HA
  • When trying to configure I always get an error, entering the pairing code also won’t change anything

My logs:

2023-01-01 19:03:44.148 WARNING (MainThread) [aiohomekit.controller.coap.connection] Pair setup 1/2 failed!
2023-01-01 19:03:44.152 ERROR (MainThread) [homeassistant.components.homekit_controller.config_flow] Pairing attempt failed with an unhandled exception
OSError: [Errno 113] received through errqueue
The above exception was the direct cause of the following exception:
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 288, in do_pair_setup
response = await self.pair_setup_client.request(request).response
File "/usr/local/lib/python3.10/site-packages/aiocoap/protocol.py", line 612, in _run_outer
await cls._run(app_request, response, weak_observation, protocol, log)
File "/usr/local/lib/python3.10/site-packages/aiocoap/protocol.py", line 671, in _run
blockresponse = await blockrequest.response
aiocoap.error.NetworkError: [Errno 113] received through errqueue
2023-01-01 19:03:49.186 WARNING (MainThread) [aiohomekit.controller.coap.connection] Pair setup 1/2 failed!
2023-01-01 19:03:49.191 ERROR (MainThread) [homeassistant.components.homekit_controller.config_flow] Pairing attempt failed with an unhandled exception
OSError: [Errno 113] received through errqueue
The above exception was the direct cause of the following exception:
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 288, in do_pair_setup
response = await self.pair_setup_client.request(request).response
File "/usr/local/lib/python3.10/site-packages/aiocoap/protocol.py", line 612, in _run_outer
await cls._run(app_request, response, weak_observation, protocol, log)
File "/usr/local/lib/python3.10/site-packages/aiocoap/protocol.py", line 671, in _run
blockresponse = await blockrequest.response
aiocoap.error.NetworkError: [Errno 113] received through errqueue

I’ve been using Nanoleaf essentials (3 strips, 1 bulb) via BLE for a couple months and usually they’re slow to respond but reliable. However, lately they’re have more and more errors with lights not turning on/off.

I’m running an up-to-date HAOS install on an RP4. Here is a portion of the logs. Any idea what might be causing this?

2023-01-24 18:47:12.312 WARNING (MainThread) [homeassistant.components.homekit_controller.connection] HomeKit controller update skipped as previous poll still in flight: F0:3F:92:C8:BE:D7
2023-01-24 18:47:12.505 WARNING (MainThread) [aiohomekit.controller.ble.pairing] Nanoleaf Strip 5K2Y [CB:34:BD:70:28:69] (id=F0:3F:92:C8:BE:D7): Missing service or characteristic, disconnecting to force refetch of GATT services: Nanoleaf Strip 5K2Y: Characteristic 00000703-0000-1000-8000-0026BB765291 not found, available characteristics: ['0000004c-0000-1000-8000-0026bb765291', '0000004e-0000-1000-8000-0026bb765291', 'e604e95d-a759-4817-87d3-aa005083a0d1', '0000004f-0000-1000-8000-0026bb765291', '00000050-0000-1000-8000-0026bb765291']
2023-01-24 18:47:14.947 ERROR (MainThread) [homeassistant.core] Error executing service: <ServiceCall light.turn_on (c:01GQJE7F71JSGDW1A7WXNVB5BM): entity_id=['light.strip_bureau_nanoleaf_light_strip'], params=transition=60.0, brightness=218, color_temp=370, color_temp_kelvin=2702>
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/core.py", line 1773, in catch_exceptions
    await coro_or_task
  File "/usr/src/homeassistant/homeassistant/core.py", line 1792, in _execute_service
    await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 213, in handle_service
    await service.entity_service_call(
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 678, in entity_service_call
    future.result()  # pop exception if have
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 958, in async_request_call
    await coro
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 715, in _handle_entity_call
    await result
  File "/usr/src/homeassistant/homeassistant/components/light/__init__.py", line 570, in async_handle_light_on_service
    await light.async_turn_on(**filter_turn_on_params(light, params))
  File "/usr/src/homeassistant/homeassistant/components/homekit_controller/light.py", line 163, in async_turn_on
    await self.async_put_characteristics(characteristics)
  File "/usr/src/homeassistant/homeassistant/components/homekit_controller/entity.py", line 90, in async_put_characteristics
    return await self._accessory.put_characteristics(payload)
  File "/usr/src/homeassistant/homeassistant/components/homekit_controller/connection.py", line 758, in put_characteristics
    await self.pairing.put_characteristics(characteristics)
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 188, in _async_operation_lock_wrap
    return await func(self, *args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/bleak_retry_connector/__init__.py", line 447, in _async_wrap_bluetooth_connection_error_retry
    return await func(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 204, in _async_disconnect_on_missing_services_wrap
    return await func(self, *args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 239, in _async_restore_and_resume
    await self._async_restore_subscriptions()
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 1200, in _async_restore_subscriptions
    await self._async_subscribe_broadcast_events(subscriptions)
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 1169, in _async_subscribe_broadcast_events
    await self._async_request_under_lock(
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 428, in _async_request_under_lock
    endpoint = await self.client.get_characteristic(
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/bleak.py", line 132, in get_characteristic
    raise BleakCharacteristicMissing(
aiohomekit.controller.ble.bleak.BleakCharacteristicMissing: Nanoleaf Strip 5K2Y: Characteristic 00000703-0000-1000-8000-0026BB765291 not found, available characteristics: ['0000004c-0000-1000-8000-0026bb765291', '0000004e-0000-1000-8000-0026bb765291', 'e604e95d-a759-4817-87d3-aa005083a0d1', '0000004f-0000-1000-8000-0026bb765291', '00000050-0000-1000-8000-0026bb765291']
2023-01-24 18:47:17.924 WARNING (MainThread) [aiohomekit.controller.ble.pairing] Nanoleaf Strip 5K2Y [CB:34:BD:70:28:69] (id=F0:3F:92:C8:BE:D7): Missing service or characteristic, disconnecting to force refetch of GATT services: Nanoleaf Strip 5K2Y: Characteristic 00000703-0000-1000-8000-0026BB765291 not found, available characteristics: ['0000004c-0000-1000-8000-0026bb765291', '0000004e-0000-1000-8000-0026bb765291', 'e604e95d-a759-4817-87d3-aa005083a0d1', '0000004f-0000-1000-8000-0026bb765291', '00000050-0000-1000-8000-0026bb765291']
2023-01-24 18:47:19.289 WARNING (MainThread) [aiohomekit.controller.ble.pairing] Nanoleaf Strip 5K2Y [CB:34:BD:70:28:69] (id=F0:3F:92:C8:BE:D7): Missing service or characteristic, disconnecting to force refetch of GATT services: Nanoleaf Strip 5K2Y: Characteristic 00000703-0000-1000-8000-0026BB765291 not found, available characteristics: ['0000004c-0000-1000-8000-0026bb765291', '0000004e-0000-1000-8000-0026bb765291', 'e604e95d-a759-4817-87d3-aa005083a0d1', '0000004f-0000-1000-8000-0026bb765291', '00000050-0000-1000-8000-0026bb765291']
2023-01-24 18:47:23.041 WARNING (MainThread) [aiohomekit.controller.ble.pairing] Nanoleaf Strip 5K2Y [CB:34:BD:70:28:69] (id=F0:3F:92:C8:BE:D7): Missing service or characteristic, disconnecting to force refetch of GATT services: Nanoleaf Strip 5K2Y: Characteristic 00000703-0000-1000-8000-0026BB765291 not found, available characteristics: ['0000004c-0000-1000-8000-0026bb765291', '0000004e-0000-1000-8000-0026bb765291', 'e604e95d-a759-4817-87d3-aa005083a0d1', '0000004f-0000-1000-8000-0026bb765291', '00000050-0000-1000-8000-0026bb765291']
2023-01-24 18:47:24.946 ERROR (MainThread) [aiohomekit.controller.ble.pairing] Nanoleaf Strip 5K2Y [CB:34:BD:70:28:69] (id=F0:3F:92:C8:BE:D7): Failed to fetch disconnected events: Nanoleaf Strip 5K2Y: Characteristic 00000703-0000-1000-8000-0026BB765291 not found, available characteristics: ['0000004c-0000-1000-8000-0026bb765291', '0000004e-0000-1000-8000-0026bb765291', 'e604e95d-a759-4817-87d3-aa005083a0d1', '0000004f-0000-1000-8000-0026bb765291', '00000050-0000-1000-8000-0026bb765291']; rssi=-58
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 230, in _async_restore_and_resume
    return await func(self, *args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 641, in _process_disconnected_events_with_retry
    await self._get_characteristics_while_connected(
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 1388, in _get_characteristics_while_connected
    data = await self._async_request_under_lock(OpCode.CHAR_READ, char)
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 428, in _async_request_under_lock
    endpoint = await self.client.get_characteristic(
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/bleak.py", line 132, in get_characteristic
    raise BleakCharacteristicMissing(
aiohomekit.controller.ble.bleak.BleakCharacteristicMissing: Nanoleaf Strip 5K2Y: Characteristic 00000703-0000-1000-8000-0026BB765291 not found, available characteristics: ['0000004c-0000-1000-8000-0026bb765291', '0000004e-0000-1000-8000-0026bb765291', 'e604e95d-a759-4817-87d3-aa005083a0d1', '0000004f-0000-1000-8000-0026bb765291', '00000050-0000-1000-8000-0026bb765291']

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 609, in _process_disconnected_events
    protocol_param = await self._process_disconnected_events_with_retry()
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 188, in _async_operation_lock_wrap
    return await func(self, *args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/bleak_retry_connector/__init__.py", line 447, in _async_wrap_bluetooth_connection_error_retry
    return await func(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 204, in _async_disconnect_on_missing_services_wrap
    return await func(self, *args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 239, in _async_restore_and_resume
    await self._async_restore_subscriptions()
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 1200, in _async_restore_subscriptions
    await self._async_subscribe_broadcast_events(subscriptions)
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 1169, in _async_subscribe_broadcast_events
    await self._async_request_under_lock(
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 428, in _async_request_under_lock
    endpoint = await self.client.get_characteristic(
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/bleak.py", line 132, in get_characteristic
    raise BleakCharacteristicMissing(
aiohomekit.controller.ble.bleak.BleakCharacteristicMissing: Nanoleaf Strip 5K2Y: Characteristic 00000703-0000-1000-8000-0026BB765291 not found, available characteristics: ['0000004c-0000-1000-8000-0026bb765291', '0000004e-0000-1000-8000-0026bb765291', 'e604e95d-a759-4817-87d3-aa005083a0d1', '0000004f-0000-1000-8000-0026bb765291', '00000050-0000-1000-8000-0026bb765291']
2023-01-24 18:47:27.819 WARNING (MainThread) [aiohomekit.controller.ble.pairing] Nanoleaf Strip 5K2Y [CB:34:BD:70:28:69] (id=F0:3F:92:C8:BE:D7): Missing service or characteristic, disconnecting to force refetch of GATT services: Nanoleaf Strip 5K2Y: Characteristic 00000703-0000-1000-8000-0026BB765291 not found, available characteristics: ['0000004c-0000-1000-8000-0026bb765291', '0000004e-0000-1000-8000-0026bb765291', 'e604e95d-a759-4817-87d3-aa005083a0d1', '0000004f-0000-1000-8000-0026bb765291', '00000050-0000-1000-8000-0026bb765291']
2023-01-24 18:47:29.918 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 230, in _async_restore_and_resume
    return await func(self, *args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 1344, in _get_characteristics_without_retry
    return await self._get_characteristics_while_connected(
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 1388, in _get_characteristics_while_connected
    data = await self._async_request_under_lock(OpCode.CHAR_READ, char)
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 428, in _async_request_under_lock
    endpoint = await self.client.get_characteristic(
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/bleak.py", line 132, in get_characteristic
    raise BleakCharacteristicMissing(
aiohomekit.controller.ble.bleak.BleakCharacteristicMissing: Nanoleaf Strip 5K2Y: Characteristic 00000703-0000-1000-8000-0026BB765291 not found, available characteristics: ['0000004c-0000-1000-8000-0026bb765291', '0000004e-0000-1000-8000-0026bb765291', 'e604e95d-a759-4817-87d3-aa005083a0d1', '0000004f-0000-1000-8000-0026bb765291', '00000050-0000-1000-8000-0026bb765291']

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/homekit_controller/connection.py", line 578, in async_update_new_accessories_state
    await self.async_update()
  File "/usr/src/homeassistant/homeassistant/components/homekit_controller/connection.py", line 716, in async_update
    new_values_dict = await self.get_characteristics(
  File "/usr/src/homeassistant/homeassistant/components/homekit_controller/connection.py", line 752, in get_characteristics
    return await self.pairing.get_characteristics(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/bleak_retry_connector/__init__.py", line 447, in _async_wrap_bluetooth_connection_error_retry
    return await func(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 204, in _async_disconnect_on_missing_services_wrap
    return await func(self, *args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 1303, in get_characteristics
    return await self._get_characteristics_without_retry(characteristics)
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 188, in _async_operation_lock_wrap
    return await func(self, *args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 239, in _async_restore_and_resume
    await self._async_restore_subscriptions()
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 1200, in _async_restore_subscriptions
    await self._async_subscribe_broadcast_events(subscriptions)
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 1169, in _async_subscribe_broadcast_events
    await self._async_request_under_lock(
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 428, in _async_request_under_lock
    endpoint = await self.client.get_characteristic(
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/bleak.py", line 132, in get_characteristic
    raise BleakCharacteristicMissing(
aiohomekit.controller.ble.bleak.BleakCharacteristicMissing: Nanoleaf Strip 5K2Y: Characteristic 00000703-0000-1000-8000-0026BB765291 not found, available characteristics: ['0000004c-0000-1000-8000-0026bb765291', '0000004e-0000-1000-8000-0026bb765291', 'e604e95d-a759-4817-87d3-aa005083a0d1', '0000004f-0000-1000-8000-0026bb765291', '00000050-0000-1000-8000-0026bb765291']
2023-01-24 18:49:11.644 WARNING (MainThread) [aiohomekit.controller.ble.pairing] Nanoleaf Strip 5K2Y [CB:34:BD:70:28:69] (id=F0:3F:92:C8:BE:D7): Missing service or characteristic, disconnecting to force refetch of GATT services: Nanoleaf Strip 5K2Y: Characteristic 00000703-0000-1000-8000-0026BB765291 not found, available characteristics: ['0000004c-0000-1000-8000-0026bb765291', '0000004e-0000-1000-8000-0026bb765291', 'e604e95d-a759-4817-87d3-aa005083a0d1', '0000004f-0000-1000-8000-0026bb765291', '00000050-0000-1000-8000-0026bb765291']
2023-01-24 18:49:30.547 WARNING (MainThread) [homeassistant.components.homekit_controller.connection] HomeKit controller update skipped as previous poll still in flight: F0:3F:92:C8:BE:D7
2023-01-24 18:49:30.737 WARNING (MainThread) [aiohomekit.controller.ble.pairing] Nanoleaf Strip 5K2Y [CB:34:BD:70:28:69] (id=F0:3F:92:C8:BE:D7): Missing service or characteristic, disconnecting to force refetch of GATT services: Nanoleaf Strip 5K2Y: Characteristic 00000703-0000-1000-8000-0026BB765291 not found, available characteristics: ['0000004c-0000-1000-8000-0026bb765291', '0000004e-0000-1000-8000-0026bb765291', 'e604e95d-a759-4817-87d3-aa005083a0d1', '0000004f-0000-1000-8000-0026bb765291', '00000050-0000-1000-8000-0026bb765291']
2023-01-24 18:49:32.937 ERROR (MainThread) [homeassistant.core] Error executing service: <ServiceCall light.turn_off (c:01GQJEBASVSHBRPAX4RBP064SY): entity_id=['light.strip_bureau_nanoleaf_light_strip'], params=>
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/core.py", line 1773, in catch_exceptions
    await coro_or_task
  File "/usr/src/homeassistant/homeassistant/core.py", line 1792, in _execute_service
    await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 213, in handle_service
    await service.entity_service_call(
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 678, in entity_service_call
    future.result()  # pop exception if have
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 958, in async_request_call
    await coro
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 715, in _handle_entity_call
    await result
  File "/usr/src/homeassistant/homeassistant/components/light/__init__.py", line 581, in async_handle_light_off_service
    await light.async_turn_off(**filter_turn_off_params(light, params))
  File "/usr/src/homeassistant/homeassistant/components/homekit_controller/light.py", line 167, in async_turn_off
    await self.async_put_characteristics({CharacteristicsTypes.ON: False})
  File "/usr/src/homeassistant/homeassistant/components/homekit_controller/entity.py", line 90, in async_put_characteristics
    return await self._accessory.put_characteristics(payload)
  File "/usr/src/homeassistant/homeassistant/components/homekit_controller/connection.py", line 758, in put_characteristics
    await self.pairing.put_characteristics(characteristics)
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 188, in _async_operation_lock_wrap
    return await func(self, *args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/bleak_retry_connector/__init__.py", line 447, in _async_wrap_bluetooth_connection_error_retry
    return await func(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 204, in _async_disconnect_on_missing_services_wrap
    return await func(self, *args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 239, in _async_restore_and_resume
    await self._async_restore_subscriptions()
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 1200, in _async_restore_subscriptions
    await self._async_subscribe_broadcast_events(subscriptions)
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 1169, in _async_subscribe_broadcast_events
    await self._async_request_under_lock(
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 428, in _async_request_under_lock
    endpoint = await self.client.get_characteristic(
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/bleak.py", line 132, in get_characteristic
    raise BleakCharacteristicMissing(
aiohomekit.controller.ble.bleak.BleakCharacteristicMissing: Nanoleaf Strip 5K2Y: Characteristic 00000703-0000-1000-8000-0026BB765291 not found, available characteristics: ['0000004c-0000-1000-8000-0026bb765291', '0000004e-0000-1000-8000-0026bb765291', 'e604e95d-a759-4817-87d3-aa005083a0d1', '0000004f-0000-1000-8000-0026bb765291', '00000050-0000-1000-8000-0026bb765291']
2023-01-24 18:49:36.149 WARNING (MainThread) [aiohomekit.controller.ble.pairing] Nanoleaf Strip 5K2Y [CB:34:BD:70:28:69] (id=F0:3F:92:C8:BE:D7): Missing service or characteristic, disconnecting to force refetch of GATT services: Nanoleaf Strip 5K2Y: Characteristic 00000703-0000-1000-8000-0026BB765291 not found, available characteristics: ['0000004c-0000-1000-8000-0026bb765291', '0000004e-0000-1000-8000-0026bb765291', 'e604e95d-a759-4817-87d3-aa005083a0d1', '0000004f-0000-1000-8000-0026bb765291', '00000050-0000-1000-8000-0026bb765291']
2023-01-24 18:49:37.515 WARNING (MainThread) [aiohomekit.controller.ble.pairing] Nanoleaf Strip 5K2Y [CB:34:BD:70:28:69] (id=F0:3F:92:C8:BE:D7): Missing service or characteristic, disconnecting to force refetch of GATT services: Nanoleaf Strip 5K2Y: Characteristic 00000703-0000-1000-8000-0026BB765291 not found, available characteristics: ['0000004c-0000-1000-8000-0026bb765291', '0000004e-0000-1000-8000-0026bb765291', 'e604e95d-a759-4817-87d3-aa005083a0d1', '0000004f-0000-1000-8000-0026bb765291', '00000050-0000-1000-8000-0026bb765291']
2023-01-24 18:49:51.171 WARNING (MainThread) [aiohomekit.controller.ble.pairing] Nanoleaf Strip 5K2Y [CB:34:BD:70:28:69] (id=F0:3F:92:C8:BE:D7): Missing service or characteristic, disconnecting to force refetch of GATT services: Nanoleaf Strip 5K2Y: Characteristic 00000703-0000-1000-8000-0026BB765291 not found, available characteristics: ['0000004c-0000-1000-8000-0026bb765291', '0000004e-0000-1000-8000-0026bb765291', 'e604e95d-a759-4817-87d3-aa005083a0d1', '0000004f-0000-1000-8000-0026bb765291', '00000050-0000-1000-8000-0026bb765291']
2023-01-24 18:49:53.951 ERROR (MainThread) [aiohomekit.controller.ble.pairing] Nanoleaf Strip 5K2Y [CB:34:BD:70:28:69] (id=F0:3F:92:C8:BE:D7): Failed to fetch disconnected events: Nanoleaf Strip 5K2Y: Characteristic 00000703-0000-1000-8000-0026BB765291 not found, available characteristics: ['0000004c-0000-1000-8000-0026bb765291', '0000004e-0000-1000-8000-0026bb765291', 'e604e95d-a759-4817-87d3-aa005083a0d1', '0000004f-0000-1000-8000-0026bb765291', '00000050-0000-1000-8000-0026bb765291']; rssi=-58
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 230, in _async_restore_and_resume
    return await func(self, *args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 641, in _process_disconnected_events_with_retry
    await self._get_characteristics_while_connected(
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 1388, in _get_characteristics_while_connected
    data = await self._async_request_under_lock(OpCode.CHAR_READ, char)
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 428, in _async_request_under_lock
    endpoint = await self.client.get_characteristic(
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/bleak.py", line 132, in get_characteristic
    raise BleakCharacteristicMissing(
aiohomekit.controller.ble.bleak.BleakCharacteristicMissing: Nanoleaf Strip 5K2Y: Characteristic 00000703-0000-1000-8000-0026BB765291 not found, available characteristics: ['0000004c-0000-1000-8000-0026bb765291', '0000004e-0000-1000-8000-0026bb765291', 'e604e95d-a759-4817-87d3-aa005083a0d1', '0000004f-0000-1000-8000-0026bb765291', '00000050-0000-1000-8000-0026bb765291']

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 609, in _process_disconnected_events
    protocol_param = await self._process_disconnected_events_with_retry()
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 188, in _async_operation_lock_wrap
    return await func(self, *args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/bleak_retry_connector/__init__.py", line 447, in _async_wrap_bluetooth_connection_error_retry
    return await func(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 204, in _async_disconnect_on_missing_services_wrap
    return await func(self, *args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 239, in _async_restore_and_resume
    await self._async_restore_subscriptions()
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 1200, in _async_restore_subscriptions
    await self._async_subscribe_broadcast_events(subscriptions)
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 1169, in _async_subscribe_broadcast_events
    await self._async_request_under_lock(
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 428, in _async_request_under_lock
    endpoint = await self.client.get_characteristic(
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/bleak.py", line 132, in get_characteristic
    raise BleakCharacteristicMissing(
aiohomekit.controller.ble.bleak.BleakCharacteristicMissing: Nanoleaf Strip 5K2Y: Characteristic 00000703-0000-1000-8000-0026BB765291 not found, available characteristics: ['0000004c-0000-1000-8000-0026bb765291', '0000004e-0000-1000-8000-0026bb765291', 'e604e95d-a759-4817-87d3-aa005083a0d1', '0000004f-0000-1000-8000-0026bb765291', '00000050-0000-1000-8000-0026bb765291']
2023-01-24 18:49:56.923 WARNING (MainThread) [aiohomekit.controller.ble.pairing] Nanoleaf Strip 5K2Y [CB:34:BD:70:28:69] (id=F0:3F:92:C8:BE:D7): Missing service or characteristic, disconnecting to force refetch of GATT services: Nanoleaf Strip 5K2Y: Characteristic 00000703-0000-1000-8000-0026BB765291 not found, available characteristics: ['0000004c-0000-1000-8000-0026bb765291', '0000004e-0000-1000-8000-0026bb765291', 'e604e95d-a759-4817-87d3-aa005083a0d1', '0000004f-0000-1000-8000-0026bb765291', '00000050-0000-1000-8000-0026bb765291']
2023-01-24 18:49:58.924 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 230, in _async_restore_and_resume
    return await func(self, *args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 1344, in _get_characteristics_without_retry
    return await self._get_characteristics_while_connected(
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 1388, in _get_characteristics_while_connected
    data = await self._async_request_under_lock(OpCode.CHAR_READ, char)
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 428, in _async_request_under_lock
    endpoint = await self.client.get_characteristic(
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/bleak.py", line 132, in get_characteristic
    raise BleakCharacteristicMissing(
aiohomekit.controller.ble.bleak.BleakCharacteristicMissing: Nanoleaf Strip 5K2Y: Characteristic 00000703-0000-1000-8000-0026BB765291 not found, available characteristics: ['0000004c-0000-1000-8000-0026bb765291', '0000004e-0000-1000-8000-0026bb765291', 'e604e95d-a759-4817-87d3-aa005083a0d1', '0000004f-0000-1000-8000-0026bb765291', '00000050-0000-1000-8000-0026bb765291']

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/homekit_controller/connection.py", line 578, in async_update_new_accessories_state
    await self.async_update()
  File "/usr/src/homeassistant/homeassistant/components/homekit_controller/connection.py", line 716, in async_update
    new_values_dict = await self.get_characteristics(
  File "/usr/src/homeassistant/homeassistant/components/homekit_controller/connection.py", line 752, in get_characteristics
    return await self.pairing.get_characteristics(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/bleak_retry_connector/__init__.py", line 447, in _async_wrap_bluetooth_connection_error_retry
    return await func(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 204, in _async_disconnect_on_missing_services_wrap
    return await func(self, *args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 1303, in get_characteristics
    return await self._get_characteristics_without_retry(characteristics)
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 188, in _async_operation_lock_wrap
    return await func(self, *args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 239, in _async_restore_and_resume
    await self._async_restore_subscriptions()
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 1200, in _async_restore_subscriptions
    await self._async_subscribe_broadcast_events(subscriptions)
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 1169, in _async_subscribe_broadcast_events
    await self._async_request_under_lock(
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/pairing.py", line 428, in _async_request_under_lock
    endpoint = await self.client.get_characteristic(
  File "/usr/local/lib/python3.10/site-packages/aiohomekit/controller/ble/bleak.py", line 132, in get_characteristic
    raise BleakCharacteristicMissing(
aiohomekit.controller.ble.bleak.BleakCharacteristicMissing: Nanoleaf Strip 5K2Y: Characteristic 00000703-0000-1000-8000-0026BB765291 not found, available characteristics: ['0000004c-0000-1000-8000-0026bb765291', '0000004e-0000-1000-8000-0026bb765291', 'e604e95d-a759-4817-87d3-aa005083a0d1', '0000004f-0000-1000-8000-0026bb765291', '00000050-0000-1000-8000-0026bb765291']

For whatever reason, I could not get the Essential Light Strips to be discovered automatically. IPv6 is working, shrug So then I tried using the Matter integration and it paired perfectly. Still working over Thread, still seen in the Nanoleaf app. One thing I don’t get is any HA effects. Might be because these are paired over the Matter integration, and not just Thread? Or it’s just not supported on these lights at all? If anyone can confirm if the effects/scenes work when connected via Thread, I would appreciate it.

EDIT: I tried a reset to get it to pair directly with HA, but it would still not auto-discover. So I went back to the HA Matter server, but this time I followed the instructions, getting a pairing # through the Home app. I also didn’t realize I had the HomeKit bridge set up to auto-add new entities, which was round tripping the lights, so they would show up twice in several apps. The Nanoleaf app is basically only good for special scenes (and even that it’s not great). Apple Home & HA are better for automation, though I’m finding one of my lights doesn’t usually reflect the correct color in Home. Overall, I prefer the HA cards/interface, though being new to HA, I need to figure out my dashboards for easy access.

Do you think it is possible to have the nanoleaf essentials strips connected to Home Assistant only via BLE? There is conflicting information on the web.

I have the strip essentials, ‘matter’ version. on the box there is ‘matter’ and ‘works with apple home’ but it doesn’t mention homekit.
I dont have a thread/matter dongle key and I don’t have a HomePod. at the moment I control them with the app from an iphone so I guess is BLE.
Does anyone have specific experience with this?

Your HA server has to have a BLE dongle or integrated BLE chip to do the handshake with the strips via BLE. It can’t go through your iphone as far as I know.

I’m on a raspberry pi 3, and there’s Bluetooth integration installed.
I also have an ESP32 with ESPHome and the bluetooth_proxy module enabled

Then you should be able to add it via the nanoleaf integration, if i recall correctly.

I did not care for the performance over BLE and was used to thread. Your results may vary though.

no, nanoleaf integration page specifically says: “This integration does not support the Nanoleaf Remote and Essentials lights. Controlling Nanoleaf Essentials lights is possible over Thread and Bluetooth through the HomeKit Controller integration.”

I read around that it should be possible to control them via BLE with HomeKit Controller integration, which I have it installed and it is working because for example it offers me to include two LIFX bulbs.

I need to know for sure if there is any way to control these strips via BLE without a HomePod, especially if anyone has actually done it. but not rumors as I already have enough of those :wink:

I’m not sure but you can pick up a home pod or an apple TV for quite cheap these days. Thread is seriously worth it over BLE

Hi @lambdafunction , sorry for replying to a really old comment here, but I’m having the same issue with trying to pair my nanoleaf essentials light strip as @w0nderward. I have 2 of them, and the first one paired to HA no problem. But for some reason the 2nd will not. I’ve tried all your recommended steps many times, but each time is the same:

join to homekit
wait till it switches to thread
remove from homekit
now shows up in HA, but when i enter pairing code, I get:
"This accessory is already paired to another device. Please reset the accessory and try again.”

Any idea why this might be happening? Really strange how it keeps saying it’s already been paired to another device right away. I’ve tried entering in the pairing code immediately after it pops up as an available device in HA, but still same error each time. Please help!

Here is a relevant log from HA is that helps:

Logger: homeassistant.components.homekit_controller.config_flow
Source: components/homekit_controller/config_flow.py:453
integration: HomeKit Device (documentation, issues)
First occurred: 4:11:53 PM (2 occurrences)
Last logged: 4:36:06 PM

Pairing attempt failed with an unhandled exception
Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/components/homekit_controller/config_flow.py”, line 453, in async_step_pair
return await self._entry_from_accessory(pairing)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/components/homekit_controller/config_flow.py”, line 581, in _entry_from_accessory
name = await pairing.get_primary_name()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.12/site-packages/aiohomekit/controller/abstract.py”, line 264, in get_primary_name
accessories = await self.list_accessories_and_characteristics()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.12/site-packages/aiohomekit/controller/coap/pairing.py”, line 149, in list_accessories_and_characteristics
accessories = await self.connection.get_accessory_info()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.12/site-packages/aiohomekit/controller/coap/connection.py”, line 413, in get_accessory_info
_, body = await self.enc_ctx.post(OpCode.UNK_09_READ_GATT, 0x0000, b"")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.12/site-packages/aiohomekit/controller/coap/connection.py”, line 194, in post
res_pdu = await self.post_bytes(req_pdu)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.12/site-packages/aiohomekit/controller/coap/connection.py”, line 171, in post_bytes
response = await self.coap_ctx.request(request).response
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.12/site-packages/aiocoap/protocol.py”, line 606, in _run_outer
await cls._run(app_request, response, weak_observation, protocol, log)
File “/usr/local/lib/python3.12/site-packages/aiocoap/protocol.py”, line 665, in _run
blockresponse = await blockrequest.response
^^^^^^^^^^^^^^^^^^^^^^^^^^^
aiocoap.error.LibraryShutdown

Can we manage the lights using home assistant to command home kit? I really dont want to loose the apple homekit functionality :frowning:

I have a quite similar issue here, but with Nanoleaf essential bulbs. It is working perfectly with Homekit, but when I follow the instructions (remove from homekit, add to HA) it always displays ‘device is already paired with another home’. When I reset it, it is not discovered by HA. I suppose the reason maybe I need some BT capability in HA to able to discover this kind of devices. Am I right? If yes, what is the easiest way adding BT to my HA? I’m running it on bare-metal, so I can plug in any kind of BT dongle will support this.

Anyone here was able to add Nanoleaf essentials to HA?

Thanks
L: