zigpy / zha-device-handlers

ZHA device handlers bridge the functionality gap created when manufacturers deviate from the ZCL specification, handling deviations and exceptions by parsing custom messages to and from Zigbee devices.
Apache License 2.0
753 stars 693 forks source link

New Device Support Request - CK-BL702-AL-01(7009_Z102LG03-1) by eWeLink - GU10 model #3046

Open milkywade opened 7 months ago

milkywade commented 7 months ago

Problem description

ZHA has no options to control light colors of this GU10 bulb from AliExpress:

https://fr.aliexpress.com/item/1005006099930203.html?spm=a2g0o.order_list.order_list_main.5.5f795e5bHoQ1qo&gatewayAdapt=glo2fra

Solution description

When this lamp is connected to ZHA, home assistant should provide the handlers to change the lamp colors.

Also, a "color-to-set when power up" option should be available as well so when you switch on the lights, the color you pre-set should be used.

Screenshots/Video

This is what I see on the ZHA page of my HASS setup ![Screenshot 2024-03-17 130912](https://github.com/zigpy/zha-device-handlers/assets/43685172/b762d718-04a6-42d5-92b6-77a5f256f2cd)

Device signature

Device signature ```json { "node_descriptor": "NodeDescriptor(logical_type=, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=, mac_capability_flags=, manufacturer_code=4742, maximum_buffer_size=127, maximum_incoming_transfer_size=242, server_mask=11264, maximum_outgoing_transfer_size=242, descriptor_capability_field=, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)", "endpoints": { "1": { "profile_id": "0x0104", "device_type": "0x010d", "input_clusters": [ "0x0000", "0x0003", "0x0004", "0x0005", "0x0006", "0x0008", "0x0300", "0x1000", "0xef00", "0xfc11", "0xfc57" ], "output_clusters": [ "0x0019" ] } }, "manufacturer": "eWeLink", "model": "CK-BL702-AL-01(7009_Z102LG03-1)", "class": "zigpy.device.Device" } ```

Diagnostic information

Diagnostic information ```json { "home_assistant": { "installation_type": "Home Assistant Core", "version": "2024.3.1", "dev": false, "hassio": false, "virtualenv": true, "python_version": "3.12.2", "docker": false, "arch": "aarch64", "timezone": "Europe/Brussels", "os_name": "Linux", "os_version": "6.1.21-v8+", "run_as_root": false }, "custom_components": {}, "integration_manifest": { "domain": "zha", "name": "Zigbee Home Automation", "after_dependencies": [ "onboarding", "usb" ], "codeowners": [ "@dmulcahey", "@adminiuga", "@puddly", "@TheJulianJES" ], "config_flow": true, "dependencies": [ "file_upload" ], "documentation": "https://www.home-assistant.io/integrations/zha", "import_executor": true, "iot_class": "local_polling", "loggers": [ "aiosqlite", "bellows", "crccheck", "pure_pcapy3", "zhaquirks", "zigpy", "zigpy_deconz", "zigpy_xbee", "zigpy_zigate", "zigpy_znp", "universal_silabs_flasher" ], "requirements": [ "bellows==0.38.1", "pyserial==3.5", "pyserial-asyncio==0.6", "zha-quirks==0.0.112", "zigpy-deconz==0.23.1", "zigpy==0.63.4", "zigpy-xbee==0.20.1", "zigpy-zigate==0.12.0", "zigpy-znp==0.12.1", "universal-silabs-flasher==0.0.18", "pyserial-asyncio-fast==0.11" ], "usb": [ { "vid": "10C4", "pid": "EA60", "description": "*2652*", "known_devices": [ "slae.sh cc2652rb stick" ] }, { "vid": "10C4", "pid": "EA60", "description": "*slzb-07*", "known_devices": [ "smlight slzb-07" ] }, { "vid": "1A86", "pid": "55D4", "description": "*sonoff*plus*", "known_devices": [ "sonoff zigbee dongle plus v2" ] }, { "vid": "10C4", "pid": "EA60", "description": "*sonoff*plus*", "known_devices": [ "sonoff zigbee dongle plus" ] }, { "vid": "10C4", "pid": "EA60", "description": "*tubeszb*", "known_devices": [ "TubesZB Coordinator" ] }, { "vid": "1A86", "pid": "7523", "description": "*tubeszb*", "known_devices": [ "TubesZB Coordinator" ] }, { "vid": "1A86", "pid": "7523", "description": "*zigstar*", "known_devices": [ "ZigStar Coordinators" ] }, { "vid": "1CF1", "pid": "0030", "description": "*conbee*", "known_devices": [ "Conbee II" ] }, { "vid": "0403", "pid": "6015", "description": "*conbee*", "known_devices": [ "Conbee III" ] }, { "vid": "10C4", "pid": "8A2A", "description": "*zigbee*", "known_devices": [ "Nortek HUSBZB-1" ] }, { "vid": "0403", "pid": "6015", "description": "*zigate*", "known_devices": [ "ZiGate+" ] }, { "vid": "10C4", "pid": "EA60", "description": "*zigate*", "known_devices": [ "ZiGate" ] }, { "vid": "10C4", "pid": "8B34", "description": "*bv 2010/10*", "known_devices": [ "Bitron Video AV2010/10" ] } ], "zeroconf": [ { "type": "_esphomelib._tcp.local.", "name": "tube*" }, { "type": "_zigate-zigbee-gateway._tcp.local.", "name": "*zigate*" }, { "type": "_zigstar_gw._tcp.local.", "name": "*zigstar*" }, { "type": "_uzg-01._tcp.local.", "name": "uzg-01*" }, { "type": "_slzb-06._tcp.local.", "name": "slzb-06*" } ], "is_built_in": true }, "data": { "ieee": "**REDACTED**", "nwk": 24764, "manufacturer": "eWeLink", "model": "CK-BL702-AL-01(7009_Z102LG03-1)", "name": "eWeLink CK-BL702-AL-01(7009_Z102LG03-1)", "quirk_applied": false, "quirk_class": "zigpy.device.Device", "quirk_id": null, "manufacturer_code": 4742, "power_source": "Mains", "lqi": 15, "rssi": null, "last_seen": "2024-03-17T11:48:53", "available": true, "device_type": "Router", "signature": { "node_descriptor": "NodeDescriptor(logical_type=, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=, mac_capability_flags=, manufacturer_code=4742, maximum_buffer_size=127, maximum_incoming_transfer_size=242, server_mask=11264, maximum_outgoing_transfer_size=242, descriptor_capability_field=, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)", "endpoints": { "1": { "profile_id": "0x0104", "device_type": "0x010d", "input_clusters": [ "0x0000", "0x0003", "0x0004", "0x0005", "0x0006", "0x0008", "0x0300", "0x1000", "0xef00", "0xfc11", "0xfc57" ], "output_clusters": [ "0x0019" ] } }, "manufacturer": "eWeLink", "model": "CK-BL702-AL-01(7009_Z102LG03-1)" }, "active_coordinator": false, "entities": [ { "entity_id": "button.t_identify", "name": "eWeLink CK-BL702-AL-01(7009_Z102LG03-1)" }, { "entity_id": "light.t_light", "name": "eWeLink CK-BL702-AL-01(7009_Z102LG03-1)" }, { "entity_id": "number.lampe_1_on_off_transition_time", "name": "eWeLink CK-BL702-AL-01(7009_Z102LG03-1)" }, { "entity_id": "number.lampe_1_on_level", "name": "eWeLink CK-BL702-AL-01(7009_Z102LG03-1)" }, { "entity_id": "number.lampe_1_start_up_current_level", "name": "eWeLink CK-BL702-AL-01(7009_Z102LG03-1)" }, { "entity_id": "number.lampe_1_start_up_color_temperature", "name": "eWeLink CK-BL702-AL-01(7009_Z102LG03-1)" }, { "entity_id": "select.t_start_up_behavior", "name": "eWeLink CK-BL702-AL-01(7009_Z102LG03-1)" }, { "entity_id": "update.t_firmware", "name": "eWeLink CK-BL702-AL-01(7009_Z102LG03-1)" } ], "neighbors": [ { "device_type": "Coordinator", "rx_on_when_idle": "On", "relationship": "Sibling", "extended_pan_id": "**REDACTED**", "ieee": "**REDACTED**", "nwk": "0x0000", "permit_joining": "Unknown", "depth": "255", "lqi": "7" }, { "device_type": "Router", "rx_on_when_idle": "On", "relationship": "Sibling", "extended_pan_id": "**REDACTED**", "ieee": "**REDACTED**", "nwk": "0x0338", "permit_joining": "Unknown", "depth": "255", "lqi": "0" } ], "routes": [], "endpoint_names": [ { "name": "EXTENDED_COLOR_LIGHT" } ], "user_given_name": "Lampe_1", "device_reg_id": "e48135a12021ae84eeb2e529cfa6f4b1", "area_id": "toilette", "cluster_details": { "1": { "device_type": { "name": "EXTENDED_COLOR_LIGHT", "id": 269 }, "profile_id": 260, "in_clusters": { "0x0000": { "endpoint_attribute": "basic", "attributes": { "0x0004": { "attribute_name": "manufacturer", "value": "eWeLink" }, "0x0005": { "attribute_name": "model", "value": "CK-BL702-AL-01(7009_Z102LG03-1)" } }, "unsupported_attributes": {} }, "0x0003": { "endpoint_attribute": "identify", "attributes": {}, "unsupported_attributes": {} }, "0x0004": { "endpoint_attribute": "groups", "attributes": {}, "unsupported_attributes": {} }, "0x0005": { "endpoint_attribute": "scenes", "attributes": {}, "unsupported_attributes": {} }, "0x0006": { "endpoint_attribute": "on_off", "attributes": { "0x0000": { "attribute_name": "on_off", "value": 1 }, "0x4003": { "attribute_name": "start_up_on_off", "value": 1 } }, "unsupported_attributes": {} }, "0x0008": { "endpoint_attribute": "level", "attributes": { "0x0000": { "attribute_name": "current_level", "value": 254 }, "0x0011": { "attribute_name": "on_level", "value": 255 }, "0x0010": { "attribute_name": "on_off_transition_time", "value": 0 }, "0x4000": { "attribute_name": "start_up_current_level", "value": 255 } }, "unsupported_attributes": { "0x0014": { "attribute_name": "default_move_rate" }, "0x0012": { "attribute_name": "on_transition_time" }, "0x0013": { "attribute_name": "off_transition_time" } } }, "0x0300": { "endpoint_attribute": "light_color", "attributes": { "0x400a": { "attribute_name": "color_capabilities", "value": 31 }, "0x4002": { "attribute_name": "color_loop_active", "value": 0 }, "0x0008": { "attribute_name": "color_mode", "value": 2 }, "0x400c": { "attribute_name": "color_temp_physical_max", "value": 500 }, "0x400b": { "attribute_name": "color_temp_physical_min", "value": 142 }, "0x0007": { "attribute_name": "color_temperature", "value": 500 }, "0x0000": { "attribute_name": "current_hue", "value": 21 }, "0x0001": { "attribute_name": "current_saturation", "value": 240 }, "0x0003": { "attribute_name": "current_x", "value": 34765 }, "0x0004": { "attribute_name": "current_y", "value": 27086 }, "0x4000": { "attribute_name": "enhanced_current_hue", "value": 5570 }, "0x000f": { "attribute_name": "options", "value": 1 }, "0x4010": { "attribute_name": "start_up_color_temperature", "value": 65535 } }, "unsupported_attributes": {} }, "0x1000": { "endpoint_attribute": "lightlink", "attributes": {}, "unsupported_attributes": {} }, "0xef00": { "endpoint_attribute": null, "attributes": {}, "unsupported_attributes": {} }, "0xfc11": { "endpoint_attribute": "manufacturer_specific", "attributes": {}, "unsupported_attributes": {} }, "0xfc57": { "endpoint_attribute": "manufacturer_specific", "attributes": {}, "unsupported_attributes": {} } }, "out_clusters": { "0x0019": { "endpoint_attribute": "ota", "attributes": { "0x0002": { "attribute_name": "current_file_version", "value": 4611 } }, "unsupported_attributes": {} } } } } } } ```

Logs

Logs ```python [Paste the logs here] ```

Custom quirk

Custom quirk ```python [Paste your custom quirk here] ```

Additional information

I found a related entry on zigbee2mqtt: https://github.com/Koenkk/zigbee2mqtt/issues/20999

github-actions[bot] commented 1 month ago

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates. Please make sure to update to the latest version and check if that solves the issue. Let us know if that works for you by adding a comment 👍 This issue has now been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.

milkywade commented 1 month ago

Still not working using HA Core 2024.8.3

-- Sent from a mobile device

On Friday, Sep 13, 2024 at 2:31 PM, github-actions[bot] @. @.)> wrote:

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates. Please make sure to update to the latest version and check if that solves the issue. Let us know if that works for you by adding a comment 👍 This issue has now been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.

— Reply to this email directly, view it on GitHub (https://github.com/zigpy/zha-device-handlers/issues/3046#issuecomment-2348844546), or unsubscribe (https://github.com/notifications/unsubscribe-auth/AKNJKNHE35O22TLN5VJNWJ3ZWLLLJAVCNFSM6AAAAABE2FCKSCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGNBYHA2DINJUGY). You are receiving this because you authored the thread.Message ID: @.***>

wbmk78 commented 1 month ago

I also would like this functionality...

ahgartner commented 8 hours ago

I also would like this functionality