Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LEDnet Device is Discovered but fails to Integrate due to "Unknown Error" #38

Open
aallusti opened this issue Feb 9, 2025 · 19 comments

Comments

@aallusti
Copy link

aallusti commented Feb 9, 2025

Attempting to pair 2 Zengge Led Sunset Lamps (Company: Madoury Part#: DREW1923) the connection fails due to "Unknown Error Occurring" Let me know what info you need from me and i'll be happy to provide it.

HA:2025.2.1

Image

Amazon Link to Lamp for reference

@aallusti
Copy link
Author

Closing this issue! After 24 hours I attempted to re-connect and the lamps connected without issue.

@aallusti
Copy link
Author

aallusti commented Feb 10, 2025

Apologies re-opening this issue after further testing. If HA restarts or the lamps lose connnection to HA there is a strong chance of the integration failing.

When working: I can set color, configuration values, power on/off, etc but lamps will only display colors and some themes (this is to be expected)

When failing: Integration fails, error below is logged

`Logger: aiohttp.server
Source: /usr/local/lib/python3.13/site-packages/aiohttp/web_protocol.py:451
First occurred: 9:36:46 AM (22 occurrences)
Last logged: 10:42:31 AM

Error handling request from 192.168.1.2
Traceback (most recent call last):
  File "/usr/local/lib/python3.13/site-packages/aiohttp/web_protocol.py", line 480, in _handle_request
    resp = await request_handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/aiohttp/web_app.py", line 569, in _handle
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/aiohttp/web_middlewares.py", line 117, in impl
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 92, in security_filter_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 210, in forwarded_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 26, in request_context_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 86, in ban_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 242, in auth_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/headers.py", line 32, in headers_middleware
    response = await handler(request)
               ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/http.py", line 73, in handle
    result = await handler(request, **request.match_info)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/decorators.py", line 81, in with_admin
    return await func(self, request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 222, in post
    return await super().post(request, flow_id)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 74, in wrapper
    return await method(view, request, data, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 121, in post
    result = await self._flow_mgr.async_configure(flow_id, data)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 340, in async_configure
    result = await self._async_configure(flow_id, user_input)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 387, in _async_configure
    result = await self._async_handle_step(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        flow, cur_step["step_id"], user_input
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 490, in _async_handle_step
    result: _FlowResultT = await getattr(flow, method)(user_input)
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/lednetwf_ble/config_flow.py", line 155, in async_step_user
    return await self.async_step_validate()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/lednetwf_ble/config_flow.py", line 214, in async_step_validate
    error = await self.toggle_light()
            ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/lednetwf_ble/config_flow.py", line 246, in toggle_light
    self._instance = LEDNETWFInstance(self.mac, self.hass, data)
                     ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/lednetwf_ble/lednetwf.py", line 170, in __init__
    self._model_interface = model_class(service_info['manufacturer_data'])
                            ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/lednetwf_ble/models/model_0x53.py", line 143, in __init__
    self.model_specific_manu_data(manu_data)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
  File "/config/custom_components/lednetwf_ble/models/model_0x53.py", line 174, in model_specific_manu_data
    raise NotImplementedError("Unknown colour mode")
NotImplementedError: Unknown colour mode`

@aallusti aallusti reopened this Feb 10, 2025
@8none1
Copy link
Owner

8none1 commented Feb 14, 2025

Thanks for the bug report and the logs.
Please could you also attach a screenshot of this page:

Image

@aallusti
Copy link
Author

aallusti commented Feb 14, 2025

Let me try to add the devices again. after the integration entities failed to startup I removed the devices and now I'm unable to add them back .
Update: I am unable to re-add the devices, same error as above

Image

@8none1
Copy link
Owner

8none1 commented Feb 17, 2025

Hmm. I strongly suspect that you have a device which is not yet supported, and so is defaulting to using the 0x53 version.

Much like this issue: #26

We need to find out what the model number of your lights is in order to test if it will work with an existing model.

Some ideas of things to try:

  • Change 0x56 to be the default. To do this edit the models/model_0x53.py line 13 and remove the 0x00 from the list. Then edit models/model_0x56.py line 13 and add 0x00 to the list. Restart HA and see what happens.
  • If that doesn't help, remove 0x00 from the 0x56 file and move it to the model_0x54.py file instead and try that.
  • Alternatively, enable debugging of the LEDnetWF integration, restart HA, and try and add the lights again. Once it fails, attach the full logs to this issue.

@MNeubauer72
Copy link

MNeubauer72 commented Feb 17, 2025

Hi,
I have a similar problem. In version 0.0.12 the controller works fine. I can remove it and add it again, it works without any problems. After upgrading to 0.0.14, there was a problem with the operation of the device. I removed it and could not add it again - had the same error as my colleague above. I restored the system from backup and waited until the next update 0.0.14.1 - same error. I restored the system from backup and waited until the 0.0.14.2 update - still the same error. Log entry below:

2025-02-17 21:58:51.978 ERROR (MainThread) [aiohttp.server] Error handling request from 192.168.1.232
Traceback (most recent call last):
File "/usr/local/lib/python3.13/site-packages/aiohttp/web_protocol.py", line 480, in _handle_request
resp = await request_handler(request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/site-packages/aiohttp/web_app.py", line 569, in _handle
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/site-packages/aiohttp/web_middlewares.py", line 117, in impl
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 92, in security_filter_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 83, in forwarded_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 26, in request_context_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 86, in ban_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 242, in auth_middleware
return await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/headers.py", line 32, in headers_middleware
response = await handler(request)
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/http.py", line 73, in handle
result = await handler(request, **request.match_info)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/decorators.py", line 81, in with_admin
return await func(self, request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 222, in post
return await super().post(request, flow_id)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 74, in wrapper
return await method(view, request, data, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 121, in post
result = await self._flow_mgr.async_configure(flow_id, data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 340, in async_configure
result = await self._async_configure(flow_id, user_input)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 387, in _async_configure
result = await self._async_handle_step(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
flow, cur_step["step_id"], user_input
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 490, in _async_handle_step
result: _FlowResultT = await getattr(flow, method)(user_input)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/lednetwf_ble/config_flow.py", line 155, in async_step_user
return await self.async_step_validate()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/lednetwf_ble/config_flow.py", line 214, in async_step_validate
error = await self.toggle_light()
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/lednetwf_ble/config_flow.py", line 246, in toggle_light
self._instance = LEDNETWFInstance(self.mac, self.hass, data)
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/lednetwf_ble/lednetwf.py", line 170, in init
self._model_interface = model_class(service_info['manufacturer_data'])
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/lednetwf_ble/models/model_0x56.py", line 69, in init
effect = manu_data[16]
~~~~~~~~~^^^^
KeyError: 16

@MNeubauer72
Copy link

In version 0.0.12, the device page looks as follows:

Image

@8none1
Copy link
Owner

8none1 commented Feb 18, 2025

@MNeubauer72 yours is a different problem by the looks of it. Please could you open a new issue?

@MNeubauer72
Copy link

Of course. New issue: #39

@aallusti
Copy link
Author

@8none1 I have tried both suggestions above to no avail (ensuring HA is restarted after each edit is performed). I've manually rolled back the changes for now.

I don't have any other LEDNETWF devices connected, is there a way to set the integration to debugging mode without having any devices connected?

@8none1
Copy link
Owner

8none1 commented Feb 21, 2025

is there a way to set the integration to debugging mode without having any devices connected?

There is! Have a look here: https://github.com/8none1/lednetwf_ble/blob/main/betatest.md#how-to-enable-debugging

@MNeubauer72
Copy link

MNeubauer72 commented Feb 21, 2025

Have you tried installing the latest beta? In my case #39 it helped.
https://github.com/8none1/lednetwf_ble/blob/main/betatest.md

@aallusti
Copy link
Author

aallusti commented Feb 21, 2025

@MNeubauer72 I am now on the the newest beta but unfortunately receiving same error.

@8none1 Thanks for the guidance, debug logging enabled through config.yaml edit. After restart and 1 connection attempt this is what is returned in system logging.

This error originated from a custom integration.

Logger: custom_components.lednetwf_ble.models.model_0x53
Source: custom_components/lednetwf_ble/models/model_0x53.py:173
integration: lednetwf_ble (documentation, issues)
First occurred: 11:58:45 AM (2 occurrences)
Last logged: 11:58:48 AM

Unknown colour mode: 22. Assuming RGB
Logger: aiohttp.server
Source: /usr/local/lib/python3.13/site-packages/aiohttp/web_protocol.py:451
First occurred: 11:58:45 AM (2 occurrences)
Last logged: 11:58:48 AM

Error handling request from 192.168.1.2
Traceback (most recent call last):
  File "/usr/local/lib/python3.13/site-packages/aiohttp/web_protocol.py", line 480, in _handle_request
    resp = await request_handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/aiohttp/web_app.py", line 569, in _handle
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.13/site-packages/aiohttp/web_middlewares.py", line 117, in impl
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 92, in security_filter_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 210, in forwarded_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 26, in request_context_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 86, in ban_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 242, in auth_middleware
    return await handler(request)
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/headers.py", line 32, in headers_middleware
    response = await handler(request)
               ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/http.py", line 73, in handle
    result = await handler(request, **request.match_info)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/decorators.py", line 81, in with_admin
    return await func(self, request, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 222, in post
    return await super().post(request, flow_id)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 74, in wrapper
    return await method(view, request, data, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 121, in post
    result = await self._flow_mgr.async_configure(flow_id, data)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 340, in async_configure
    result = await self._async_configure(flow_id, user_input)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 387, in _async_configure
    result = await self._async_handle_step(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        flow, cur_step["step_id"], user_input
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 490, in _async_handle_step
    result: _FlowResultT = await getattr(flow, method)(user_input)
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/lednetwf_ble/config_flow.py", line 155, in async_step_user
    return await self.async_step_validate()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/lednetwf_ble/config_flow.py", line 214, in async_step_validate
    error = await self.toggle_light()
            ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/lednetwf_ble/config_flow.py", line 246, in toggle_light
    self._instance = LEDNETWFInstance(self.mac, self.hass, data)
                     ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/lednetwf_ble/lednetwf.py", line 170, in __init__
    self._model_interface = model_class(service_info['manufacturer_data'])
                            ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/lednetwf_ble/models/model_0x53.py", line 143, in __init__
    self.model_specific_manu_data(manu_data)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
  File "/config/custom_components/lednetwf_ble/models/model_0x53.py", line 174, in model_specific_manu_data
    raise NotImplementedError("Unknown colour mode")
NotImplementedError: Unknown colour mode`

@8none1
Copy link
Owner

8none1 commented Feb 21, 2025

There should be a load more debugging output in the logs before that traceback. You should see a bunch of information about the Bluetooth conversation and the data received from the device. All the lines should be prefixed lednetwf. Can you see if you can find them and attach them here. Attach the entire log if it's easier.

@aallusti
Copy link
Author

aallusti commented Feb 21, 2025

Apologies, here is the full log for LEDNETWF

	2025-02-21 11:58:10.371 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration lednetwf_ble which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
	2025-02-21 11:58:37.090 DEBUG (ImportExecutor_0) [custom_components.lednetwf_ble.lednetwf] File: /config/custom_components/lednetwf_ble/lednetwf.py
	2025-02-21 11:58:37.090 DEBUG (ImportExecutor_0) [custom_components.lednetwf_ble.lednetwf] Models path: /config/custom_components/lednetwf_ble/models
	2025-02-21 11:58:37.097 DEBUG (ImportExecutor_0) [custom_components.lednetwf_ble.lednetwf] Module name: model_0x53
	2025-02-21 11:58:37.133 DEBUG (ImportExecutor_0) [custom_components.lednetwf_ble.lednetwf] Supported models: [0, 83, 85]
	2025-02-21 11:58:37.133 DEBUG (ImportExecutor_0) [custom_components.lednetwf_ble.lednetwf] Module name: model_0x54
	2025-02-21 11:58:37.145 DEBUG (ImportExecutor_0) [custom_components.lednetwf_ble.lednetwf] Supported models: [84, 98]
	2025-02-21 11:58:37.146 DEBUG (ImportExecutor_0) [custom_components.lednetwf_ble.lednetwf] Module name: model_0x56

	2025-02-21 11:58:37.171 DEBUG (ImportExecutor_0) [custom_components.lednetwf_ble.lednetwf] Supported models: [86]
	2025-02-21 11:58:37.171 DEBUG (ImportExecutor_0) [custom_components.lednetwf_ble.lednetwf] Module name: model_0x5b
	2025-02-21 11:58:37.177 DEBUG (ImportExecutor_0) [custom_components.lednetwf_ble.lednetwf] Supported models: [91]
	2025-02-21 11:58:37.177 DEBUG (ImportExecutor_0) [custom_components.lednetwf_ble.lednetwf] Module name: model_abstractions
	2025-02-21 11:58:37.177 DEBUG (ImportExecutor_0) [custom_components.lednetwf_ble.lednetwf] All supported modules: {'Model0x53': [0, 83, 85], 'Model0x54': [84, 98], 'Model0x56': [86], 'Model0x5b': [91]}
	2025-02-21 11:58:37.372 DEBUG (ImportExecutor_0) [custom_components.lednetwf_ble.config_flow] File: /config/custom_components/lednetwf_ble/config_flow.py
	2025-02-21 11:58:37.372 DEBUG (ImportExecutor_0) [custom_components.lednetwf_ble.config_flow] Models path: /config/custom_components/lednetwf_ble/models
	2025-02-21 11:58:37.381 DEBUG (ImportExecutor_0) [custom_components.lednetwf_ble.config_flow] Module name: model_0x53
	2025-02-21 11:58:37.381 DEBUG (ImportExecutor_0) [custom_components.lednetwf_ble.config_flow] Supported models: [0, 83, 85]
	2025-02-21 11:58:37.381 DEBUG (ImportExecutor_0) [custom_components.lednetwf_ble.config_flow] Module name: model_0x54
	2025-02-21 11:58:37.381 DEBUG (ImportExecutor_0) [custom_components.lednetwf_ble.config_flow] Supported models: [84, 98]
	2025-02-21 11:58:37.381 DEBUG (ImportExecutor_0) [custom_components.lednetwf_ble.config_flow] Module name: model_0x56
	2025-02-21 11:58:37.381 DEBUG (ImportExecutor_0) [custom_components.lednetwf_ble.config_flow] Supported models: [86]
	2025-02-21 11:58:37.381 DEBUG (ImportExecutor_0) [custom_components.lednetwf_ble.config_flow] Module name: model_0x5b
	2025-02-21 11:58:37.381 DEBUG (ImportExecutor_0) [custom_components.lednetwf_ble.config_flow] Supported models: [91]
	2025-02-21 11:58:37.381 DEBUG (ImportExecutor_0) [custom_components.lednetwf_ble.config_flow] Module name: model_abstractions
	2025-02-21 11:58:37.381 DEBUG (ImportExecutor_0) [custom_components.lednetwf_ble.config_flow] All supported modules: [0, 83, 85, 84, 98, 86, 91]
	2025-02-21 11:58:37.422 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] ASB: Discovered bluetooth devices: <BluetoothServiceInfoBleak name=LEDnetWF0200275DA055 address=08:65:F0:5D:A0:55 rssi=-83 manufacturer_data={23040: b"U\x05\x08e\xf0]\xa0U\x00'\x14\x01\x01\x01$a\x16\x01\x00\xff\x00\x00\x01\x00\xf0\x00\x00"} service_data={} service_uuids=[] source=3C:8A:1F:A0:BE:50 connectable=True time=1299934.394763708 tx_power=-127>
	2025-02-21 11:58:37.423 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] DeviceData: <BluetoothServiceInfoBleak name=LEDnetWF0200275DA055 address=08:65:F0:5D:A0:55 rssi=-83 manufacturer_data={23040: b"U\x05\x08e\xf0]\xa0U\x00'\x14\x01\x01\x01$a\x16\x01\x00\xff\x00\x00\x01\x00\xf0\x00\x00"} service_data={} service_uuids=[] source=3C:8A:1F:A0:BE:50 connectable=True time=1299934.394763708 tx_power=-127>
	2025-02-21 11:58:37.423 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] Name: LEDnetWF0200275DA055
	2025-02-21 11:58:37.423 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] DISCOVERY manufacturer fw_major: 0x55
	2025-02-21 11:58:37.425 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] DeviceData: <BluetoothServiceInfoBleak name=LEDnetWF0200275DA055 address=08:65:F0:5D:A0:55 rssi=-83 manufacturer_data={23040: b"U\x05\x08e\xf0]\xa0U\x00'\x14\x01\x01\x01$a\x16\x01\x00\xff\x00\x00\x01\x00\xf0\x00\x00"} service_data={} service_uuids=[] source=3C:8A:1F:A0:BE:50 connectable=True time=1299934.394763708 tx_power=-127>
	2025-02-21 11:58:37.425 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] DeviceData: <BluetoothServiceInfoBleak name=LEDnetWF0200275DA055 address=08:65:F0:5D:A0:55 rssi=-92 manufacturer_data={23040: b"U\x05\x08e\xf0]\xa0U\x00'\x14\x01\x01\x01$a\x16\x01\x00\xff\x00\x00\x01\x00\xf0\x00\x00"} service_data={} service_uuids=[] source=3C:8A:1F:A0:BE:50 connectable=True time=1299971.848709755 tx_power=None>
	2025-02-21 11:58:37.425 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] Name: LEDnetWF0200275DA055
	2025-02-21 11:58:37.425 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] DISCOVERY manufacturer fw_major: 0x55
	2025-02-21 11:58:37.425 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] DeviceData: <BluetoothServiceInfoBleak name=LEDnetWF0200275DA055 address=08:65:F0:5D:A0:55 rssi=-92 manufacturer_data={23040: b"U\x05\x08e\xf0]\xa0U\x00'\x14\x01\x01\x01$a\x16\x01\x00\xff\x00\x00\x01\x00\xf0\x00\x00"} service_data={} service_uuids=[] source=3C:8A:1F:A0:BE:50 connectable=True time=1299971.848709755 tx_power=None>
	2025-02-21 11:58:37.425 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] X Discovered device: <custom_components.lednetwf_ble.config_flow.DeviceData object at 0x7f4502981450>
	2025-02-21 11:58:37.425 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] DeviceData: <BluetoothServiceInfoBleak name=LEDnetWF02002761E140 address=08:65:F0:61:E1:40 rssi=-45 manufacturer_data={23040: b"U\x05\x08e\xf0a\xe1@\x00'\x14\x01\x01\x01$a\x16\x01Sq\xa6\x00\x01\x00\xf0\x00\x00"} service_data={} service_uuids=[] source=3C:8A:1F:A0:BE:50 connectable=True time=1299971.848709755 tx_power=None>
	2025-02-21 11:58:37.425 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] Name: LEDnetWF02002761E140
	2025-02-21 11:58:37.425 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] DISCOVERY manufacturer fw_major: 0x55
	2025-02-21 11:58:37.425 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] DeviceData: <BluetoothServiceInfoBleak name=LEDnetWF02002761E140 address=08:65:F0:61:E1:40 rssi=-45 manufacturer_data={23040: b"U\x05\x08e\xf0a\xe1@\x00'\x14\x01\x01\x01$a\x16\x01Sq\xa6\x00\x01\x00\xf0\x00\x00"} service_data={} service_uuids=[] source=3C:8A:1F:A0:BE:50 connectable=True time=1299971.848709755 tx_power=None>
	2025-02-21 11:58:37.425 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] X Discovered device: <custom_components.lednetwf_ble.config_flow.DeviceData object at 0x7f450296a3f0>
	2025-02-21 11:58:37.440 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] ASB: Discovered bluetooth devices: <BluetoothServiceInfoBleak name=LEDnetWF02002761E140 address=08:65:F0:61:E1:40 rssi=-47 manufacturer_data={23040: b"U\x05\x08e\xf0a\xe1@\x00'\x14\x01\x01\x01$a\x16\x01Sq\xa6\x00\x01\x00\xf0\x00\x00"} service_data={} service_uuids=[] source=3C:8A:1F:A0:BE:50 connectable=True time=1299934.566763401 tx_power=-127>
	2025-02-21 11:58:37.440 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] DeviceData: <BluetoothServiceInfoBleak name=LEDnetWF02002761E140 address=08:65:F0:61:E1:40 rssi=-47 manufacturer_data={23040: b"U\x05\x08e\xf0a\xe1@\x00'\x14\x01\x01\x01$a\x16\x01Sq\xa6\x00\x01\x00\xf0\x00\x00"} service_data={} service_uuids=[] source=3C:8A:1F:A0:BE:50 connectable=True time=1299934.566763401 tx_power=-127>
	2025-02-21 11:58:37.440 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] Name: LEDnetWF02002761E140
	2025-02-21 11:58:37.440 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] DISCOVERY manufacturer fw_major: 0x55
	2025-02-21 11:58:37.440 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] DeviceData: <BluetoothServiceInfoBleak name=LEDnetWF02002761E140 address=08:65:F0:61:E1:40 rssi=-47 manufacturer_data={23040: b"U\x05\x08e\xf0a\xe1@\x00'\x14\x01\x01\x01$a\x16\x01Sq\xa6\x00\x01\x00\xf0\x00\x00"} service_data={} service_uuids=[] source=3C:8A:1F:A0:BE:50 connectable=True time=1299934.566763401 tx_power=-127>
	2025-02-21 11:58:37.440 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] DeviceData: <BluetoothServiceInfoBleak name=LEDnetWF0200275DA055 address=08:65:F0:5D:A0:55 rssi=-82 manufacturer_data={23040: b"U\x05\x08e\xf0]\xa0U\x00'\x14\x01\x01\x01$a\x16\x01\x00\xff\x00\x00\x01\x00\xf0\x00\x00"} service_data={} service_uuids=[] source=3C:8A:1F:A0:BE:50 connectable=True time=1299971.96770959 tx_power=None>
	2025-02-21 11:58:37.440 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] Name: LEDnetWF0200275DA055
	2025-02-21 11:58:37.440 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] DISCOVERY manufacturer fw_major: 0x55
	2025-02-21 11:58:37.440 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] DeviceData: <BluetoothServiceInfoBleak name=LEDnetWF0200275DA055 address=08:65:F0:5D:A0:55 rssi=-82 manufacturer_data={23040: b"U\x05\x08e\xf0]\xa0U\x00'\x14\x01\x01\x01$a\x16\x01\x00\xff\x00\x00\x01\x00\xf0\x00\x00"} service_data={} service_uuids=[] source=3C:8A:1F:A0:BE:50 connectable=True time=1299971.96770959 tx_power=None>
	2025-02-21 11:58:37.440 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] X Discovered device: <custom_components.lednetwf_ble.config_flow.DeviceData object at 0x7f4502996af0>
	2025-02-21 11:58:37.440 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] DeviceData: <BluetoothServiceInfoBleak name=LEDnetWF02002761E140 address=08:65:F0:61:E1:40 rssi=-47 manufacturer_data={23040: b"U\x05\x08e\xf0a\xe1@\x00'\x14\x01\x01\x01$a\x16\x01Sq\xa6\x00\x01\x00\xf0\x00\x00"} service_data={} service_uuids=[] source=3C:8A:1F:A0:BE:50 connectable=True time=1299971.96770959 tx_power=None>
	2025-02-21 11:58:37.440 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] Name: LEDnetWF02002761E140
	2025-02-21 11:58:37.440 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] DISCOVERY manufacturer fw_major: 0x55
	2025-02-21 11:58:37.440 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] DeviceData: <BluetoothServiceInfoBleak name=LEDnetWF02002761E140 address=08:65:F0:61:E1:40 rssi=-47 manufacturer_data={23040: b"U\x05\x08e\xf0a\xe1@\x00'\x14\x01\x01\x01$a\x16\x01Sq\xa6\x00\x01\x00\xf0\x00\x00"} service_data={} service_uuids=[] source=3C:8A:1F:A0:BE:50 connectable=True time=1299971.96770959 tx_power=None>
	2025-02-21 11:58:37.440 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] X Discovered device: <custom_components.lednetwf_ble.config_flow.DeviceData object at 0x7f45029b9950>
	2025-02-21 11:58:43.862 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] DeviceData: <BluetoothServiceInfoBleak name=LEDnetWF0200275DA055 address=08:65:F0:5D:A0:55 rssi=-82 manufacturer_data={23040: b"U\x05\x08e\xf0]\xa0U\x00'\x14\x01\x01\x01$a\x16\x01\x00\xff\x00\x00\x01\x00\xf0\x00\x00"} service_data={} service_uuids=[] source=3C:8A:1F:A0:BE:50 connectable=True time=1299978.387700733 tx_power=None>
	2025-02-21 11:58:43.862 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] Name: LEDnetWF0200275DA055
	2025-02-21 11:58:43.862 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] DISCOVERY manufacturer fw_major: 0x55
	2025-02-21 11:58:43.862 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] DeviceData: <BluetoothServiceInfoBleak name=LEDnetWF0200275DA055 address=08:65:F0:5D:A0:55 rssi=-82 manufacturer_data={23040: b"U\x05\x08e\xf0]\xa0U\x00'\x14\x01\x01\x01$a\x16\x01\x00\xff\x00\x00\x01\x00\xf0\x00\x00"} service_data={} service_uuids=[] source=3C:8A:1F:A0:BE:50 connectable=True time=1299978.387700733 tx_power=None>
	2025-02-21 11:58:43.862 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] X Discovered device: <custom_components.lednetwf_ble.config_flow.DeviceData object at 0x7f450248a270>
	2025-02-21 11:58:43.862 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] DeviceData: <BluetoothServiceInfoBleak name=LEDnetWF02002761E140 address=08:65:F0:61:E1:40 rssi=-46 manufacturer_data={23040: b"U\x05\x08e\xf0a\xe1@\x00'\x14\x01\x01\x01$a\x16\x01Sq\xa6\x00\x01\x00\xf0\x00\x00"} service_data={} service_uuids=[] source=3C:8A:1F:A0:BE:50 connectable=True time=1299978.387700733 tx_power=None>
	2025-02-21 11:58:43.862 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] Name: LEDnetWF02002761E140
	2025-02-21 11:58:43.862 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] DISCOVERY manufacturer fw_major: 0x55
	2025-02-21 11:58:43.862 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] DeviceData: <BluetoothServiceInfoBleak name=LEDnetWF02002761E140 address=08:65:F0:61:E1:40 rssi=-46 manufacturer_data={23040: b"U\x05\x08e\xf0a\xe1@\x00'\x14\x01\x01\x01$a\x16\x01Sq\xa6\x00\x01\x00\xf0\x00\x00"} service_data={} service_uuids=[] source=3C:8A:1F:A0:BE:50 connectable=True time=1299978.387700733 tx_power=None>
	2025-02-21 11:58:43.862 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] X Discovered device: <custom_components.lednetwf_ble.config_flow.DeviceData object at 0x7f450248b230>
	2025-02-21 11:58:45.250 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] async step user with User input: {'mac': '08:65:F0:5D:A0:55'}
	2025-02-21 11:58:45.250 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] Device data is None, creating new data to pass up: {'mac': '08:65:F0:5D:A0:55', 'name': 'LEDnetWF0200275DA055 (A055)', 'delay': 120, 'model': 85}
	2025-02-21 11:58:45.250 DEBUG (MainThread) [custom_components.lednetwf_ble.lednetwf] Data: {'mac': '08:65:F0:5D:A0:55', 'name': 'LEDnetWF0200275DA055 (A055)', 'delay': 120, 'model': 85}
	2025-02-21 11:58:45.250 DEBUG (MainThread) [custom_components.lednetwf_ble.lednetwf] Service info: {'name': 'LEDnetWF0200275DA055', 'address': '08:65:F0:5D:A0:55', 'rssi': -77, 'manufacturer_data': {23040: b"U\x05\x08e\xf0]\xa0U\x00'\x14\x01\x01\x01$a\x16\x01\x00\xff\x00\x00\x01\x00\xf0\x00\x00"}, 'service_data': {}, 'service_uuids': [], 'source': '3C:8A:1F:A0:BE:50', 'advertisement': AdvertisementData(local_name='LEDnetWF0200275DA055', manufacturer_data={23040: b"U\x05\x08e\xf0]\xa0U\x00'\x14\x01\x01\x01$a\x16\x01\x00\xff\x00\x00\x01\x00\xf0\x00\x00"}, tx_power=-127, rssi=-77), 'device': BLEDevice(08:65:F0:5D:A0:55, LEDnetWF0200275DA055), 'connectable': True, 'time': 1299979.730698894, 'tx_power': None}
	2025-02-21 11:58:45.250 DEBUG (MainThread) [custom_components.lednetwf_ble.lednetwf] Service info keys: dict_keys(['name', 'address', 'rssi', 'manufacturer_data', 'service_data', 'service_uuids', 'source', 'advertisement', 'device', 'connectable', 'time', 'tx_power'])
	2025-02-21 11:58:45.250 DEBUG (MainThread) [custom_components.lednetwf_ble.lednetwf] Model class name: Model0x53
	2025-02-21 11:58:45.250 DEBUG (MainThread) [custom_components.lednetwf_ble.lednetwf] Model class via lookup: <class 'custom_components.lednetwf_ble.models.model_0x53.Model0x53'>
	2025-02-21 11:58:45.250 DEBUG (MainThread) [custom_components.lednetwf_ble.models.model_0x53] Model 0x53 init
	2025-02-21 11:58:45.250 DEBUG (MainThread) [custom_components.lednetwf_ble.models.model_abstractions] Manu data: 0x55 0x05 0x08 0x65 0xF0 0x5D 0xA0 0x55 0x00 0x27 0x14 0x01 0x01 0x01 0x24 0x61 0x16 0x01 0x00 0xFF 0x00 0x00 0x01 0x00 0xF0 0x00 0x00
	2025-02-21 11:58:45.250 ERROR (MainThread) [custom_components.lednetwf_ble.models.model_0x53] Unknown colour mode: 22. Assuming RGB
	2025-02-21 11:58:45.250 ERROR (MainThread) [aiohttp.server] Error handling request from 192.168.1.2
	Traceback (most recent call last):
	  File "/usr/local/lib/python3.13/site-packages/aiohttp/web_protocol.py", line 480, in _handle_request
		resp = await request_handler(request)
			   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	  File "/usr/local/lib/python3.13/site-packages/aiohttp/web_app.py", line 569, in _handle
		return await handler(request)
			   ^^^^^^^^^^^^^^^^^^^^^^
	  File "/usr/local/lib/python3.13/site-packages/aiohttp/web_middlewares.py", line 117, in impl
		return await handler(request)
			   ^^^^^^^^^^^^^^^^^^^^^^
	  File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 92, in security_filter_middleware
		return await handler(request)
			   ^^^^^^^^^^^^^^^^^^^^^^
	  File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 210, in forwarded_middleware
		return await handler(request)
			   ^^^^^^^^^^^^^^^^^^^^^^
	  File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 26, in request_context_middleware
		return await handler(request)
			   ^^^^^^^^^^^^^^^^^^^^^^
	  File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 86, in ban_middleware
		return await handler(request)
			   ^^^^^^^^^^^^^^^^^^^^^^
	  File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 242, in auth_middleware
		return await handler(request)
			   ^^^^^^^^^^^^^^^^^^^^^^
	  File "/usr/src/homeassistant/homeassistant/components/http/headers.py", line 32, in headers_middleware
		response = await handler(request)
				   ^^^^^^^^^^^^^^^^^^^^^^
	  File "/usr/src/homeassistant/homeassistant/helpers/http.py", line 73, in handle
		result = await handler(request, **request.match_info)
				 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	  File "/usr/src/homeassistant/homeassistant/components/http/decorators.py", line 81, in with_admin
		return await func(self, request, *args, **kwargs)
			   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	  File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 222, in post
		return await super().post(request, flow_id)
			   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	  File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 74, in wrapper
		return await method(view, request, data, *args, **kwargs)
			   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	  File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 121, in post
		result = await self._flow_mgr.async_configure(flow_id, data)
				 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 340, in async_configure
		result = await self._async_configure(flow_id, user_input)
				 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 387, in _async_configure
		result = await self._async_handle_step(
				 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			flow, cur_step["step_id"], user_input
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		)
		^
	  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 490, in _async_handle_step
		result: _FlowResultT = await getattr(flow, method)(user_input)
							   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	  File "/config/custom_components/lednetwf_ble/config_flow.py", line 155, in async_step_user
		return await self.async_step_validate()
			   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	  File "/config/custom_components/lednetwf_ble/config_flow.py", line 214, in async_step_validate
		error = await self.toggle_light()
				^^^^^^^^^^^^^^^^^^^^^^^^^
	  File "/config/custom_components/lednetwf_ble/config_flow.py", line 246, in toggle_light
		self._instance = LEDNETWFInstance(self.mac, self.hass, data)
						 ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
	  File "/config/custom_components/lednetwf_ble/lednetwf.py", line 170, in __init__
		self._model_interface = model_class(service_info['manufacturer_data'])
								~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	  File "/config/custom_components/lednetwf_ble/models/model_0x53.py", line 143, in __init__
		self.model_specific_manu_data(manu_data)
		~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
	  File "/config/custom_components/lednetwf_ble/models/model_0x53.py", line 174, in model_specific_manu_data
		raise NotImplementedError("Unknown colour mode")
	NotImplementedError: Unknown colour mode
	2025-02-21 11:58:48.027 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] async step user with User input: {'mac': '08:65:F0:61:E1:40'}
	2025-02-21 11:58:48.027 DEBUG (MainThread) [custom_components.lednetwf_ble.config_flow] Device data is None, creating new data to pass up: {'mac': '08:65:F0:5D:A0:55', 'name': 'LEDnetWF0200275DA055 (A055)', 'delay': 120, 'model': 85}
	2025-02-21 11:58:48.028 DEBUG (MainThread) [custom_components.lednetwf_ble.lednetwf] Data: {'mac': '08:65:F0:5D:A0:55', 'name': 'LEDnetWF0200275DA055 (A055)', 'delay': 120, 'model': 85}
	2025-02-21 11:58:48.028 DEBUG (MainThread) [custom_components.lednetwf_ble.lednetwf] Service info: {'name': 'LEDnetWF02002761E140', 'address': '08:65:F0:61:E1:40', 'rssi': -46, 'manufacturer_data': {23040: b"U\x05\x08e\xf0a\xe1@\x00'\x14\x01\x01\x01$a\x16\x01Sq\xa6\x00\x01\x00\xf0\x00\x00"}, 'service_data': {}, 'service_uuids': [], 'source': '3C:8A:1F:A0:BE:50', 'advertisement': AdvertisementData(local_name='LEDnetWF02002761E140', manufacturer_data={23040: b"U\x05\x08e\xf0a\xe1@\x00'\x14\x01\x01\x01$a\x16\x01Sq\xa6\x00\x01\x00\xf0\x00\x00"}, tx_power=-127, rssi=-46), 'device': BLEDevice(08:65:F0:61:E1:40, LEDnetWF02002761E140), 'connectable': True, 'time': 1299982.553695042, 'tx_power': None}
	2025-02-21 11:58:48.028 DEBUG (MainThread) [custom_components.lednetwf_ble.lednetwf] Service info keys: dict_keys(['name', 'address', 'rssi', 'manufacturer_data', 'service_data', 'service_uuids', 'source', 'advertisement', 'device', 'connectable', 'time', 'tx_power'])
	2025-02-21 11:58:48.028 DEBUG (MainThread) [custom_components.lednetwf_ble.lednetwf] Model class name: Model0x53
	2025-02-21 11:58:48.028 DEBUG (MainThread) [custom_components.lednetwf_ble.lednetwf] Model class via lookup: <class 'custom_components.lednetwf_ble.models.model_0x53.Model0x53'>
	2025-02-21 11:58:48.028 DEBUG (MainThread) [custom_components.lednetwf_ble.models.model_0x53] Model 0x53 init
	2025-02-21 11:58:48.028 DEBUG (MainThread) [custom_components.lednetwf_ble.models.model_abstractions] Manu data: 0x55 0x05 0x08 0x65 0xF0 0x61 0xE1 0x40 0x00 0x27 0x14 0x01 0x01 0x01 0x24 0x61 0x16 0x01 0x53 0x71 0xA6 0x00 0x01 0x00 0xF0 0x00 0x00
	2025-02-21 11:58:48.028 ERROR (MainThread) [custom_components.lednetwf_ble.models.model_0x53] Unknown colour mode: 22. Assuming RGB
	2025-02-21 11:58:48.028 ERROR (MainThread) [aiohttp.server] Error handling request from 192.168.1.2
	Traceback (most recent call last):
	  File "/usr/local/lib/python3.13/site-packages/aiohttp/web_protocol.py", line 480, in _handle_request
		resp = await request_handler(request)
			   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	  File "/usr/local/lib/python3.13/site-packages/aiohttp/web_app.py", line 569, in _handle
		return await handler(request)
			   ^^^^^^^^^^^^^^^^^^^^^^
	  File "/usr/local/lib/python3.13/site-packages/aiohttp/web_middlewares.py", line 117, in impl
		return await handler(request)
			   ^^^^^^^^^^^^^^^^^^^^^^
	  File "/usr/src/homeassistant/homeassistant/components/http/security_filter.py", line 92, in security_filter_middleware
		return await handler(request)
			   ^^^^^^^^^^^^^^^^^^^^^^
	  File "/usr/src/homeassistant/homeassistant/components/http/forwarded.py", line 210, in forwarded_middleware
		return await handler(request)
			   ^^^^^^^^^^^^^^^^^^^^^^
	  File "/usr/src/homeassistant/homeassistant/components/http/request_context.py", line 26, in request_context_middleware
		return await handler(request)
			   ^^^^^^^^^^^^^^^^^^^^^^
	  File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 86, in ban_middleware
		return await handler(request)
			   ^^^^^^^^^^^^^^^^^^^^^^
	  File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 242, in auth_middleware
		return await handler(request)
			   ^^^^^^^^^^^^^^^^^^^^^^
	  File "/usr/src/homeassistant/homeassistant/components/http/headers.py", line 32, in headers_middleware
		response = await handler(request)
				   ^^^^^^^^^^^^^^^^^^^^^^
	  File "/usr/src/homeassistant/homeassistant/helpers/http.py", line 73, in handle
		result = await handler(request, **request.match_info)
				 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	  File "/usr/src/homeassistant/homeassistant/components/http/decorators.py", line 81, in with_admin
		return await func(self, request, *args, **kwargs)
			   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	  File "/usr/src/homeassistant/homeassistant/components/config/config_entries.py", line 222, in post
		return await super().post(request, flow_id)
			   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	  File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 74, in wrapper
		return await method(view, request, data, *args, **kwargs)
			   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	  File "/usr/src/homeassistant/homeassistant/helpers/data_entry_flow.py", line 121, in post
		result = await self._flow_mgr.async_configure(flow_id, data)
				 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 340, in async_configure
		result = await self._async_configure(flow_id, user_input)
				 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 387, in _async_configure
		result = await self._async_handle_step(
				 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
			flow, cur_step["step_id"], user_input
			^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
		)
		^
	  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 490, in _async_handle_step
		result: _FlowResultT = await getattr(flow, method)(user_input)
							   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	  File "/config/custom_components/lednetwf_ble/config_flow.py", line 155, in async_step_user
		return await self.async_step_validate()
			   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	  File "/config/custom_components/lednetwf_ble/config_flow.py", line 214, in async_step_validate
		error = await self.toggle_light()
				^^^^^^^^^^^^^^^^^^^^^^^^^
	  File "/config/custom_components/lednetwf_ble/config_flow.py", line 246, in toggle_light
		self._instance = LEDNETWFInstance(self.mac, self.hass, data)
						 ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
	  File "/config/custom_components/lednetwf_ble/lednetwf.py", line 170, in __init__
		self._model_interface = model_class(service_info['manufacturer_data'])
								~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
	  File "/config/custom_components/lednetwf_ble/models/model_0x53.py", line 143, in __init__
		self.model_specific_manu_data(manu_data)
		~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
	  File "/config/custom_components/lednetwf_ble/models/model_0x53.py", line 174, in model_specific_manu_data
		raise NotImplementedError("Unknown colour mode")
	NotImplementedError: Unknown colour mode

@8none1
Copy link
Owner

8none1 commented Feb 22, 2025

Hmmm, this is sus:

SUPPORTED_MODELS = [0x00, 0x53, 0x55] # Probably 0x55 is not supported here, but in 0x54 instead

😂

Your device identifies as an 0x55 - and we've seen one of those before in this issue: #26
I asked them to change some files around and that seemed to fix it, but then I went and made changes to the code in the new release which seems to have broken it. I don't know, perhaps I was drunk.

So here's what to try:

  • Using a text editor on the HA server, open custom_components/lednetwf_ble/models/model_0x53.py and on line 13 REMOVE 0x55 (and the preceding comma)
  • Open up custom_components/lednetwf_ble/models/model_0x54.py line 15, and add 0x55 to the end of that list.

Restart Home Assistant and see what happens now.

🤞

If this does fix it, then I will make a new release with that fix in.

@aallusti
Copy link
Author

Okay I have some good news!

The text edit above has allowed me to connect both lamps. I can change power on/off state but brightness & color controls are non-functional (any changes made on HA do not change color/brightness on lamp). I've attached the default configuration below as its populated after initialization. Connection is stable after HA restart, lamps re-initialize and connect without issue :)

Image

I have tried the following configuration changes to support color/brightness changes without success:

  • Changed LED Type to every value in list
  • Changes Color Order to every value in list
  • Modified # of leds to 1 (lamp only contains 1 LED)

HA Logs attached

full_HA_log.txt

@8none1
Copy link
Owner

8none1 commented Feb 26, 2025

This looks like you have a device with another new variation of the protocol.

The only way to add full support is to get hold of one of these devices or something which uses the same protocol and reverse engineer it. I'll keep an eye on AliExpress for something which looks the same.

In the meantime, I will push a change to move 0x55 devices to be supported by the 0x54 model. It's not going to fix anything, but it will mean that people can at least power on/off their devices.

@8none1
Copy link
Owner

8none1 commented Feb 26, 2025

Oh, you might also want to try moving the 0x55 text over to the model_0x56.py file instead of the model_0x54.py file and restarting. See if that makes any difference.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants