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
754 stars 693 forks source link

[Device Support Request] EcoDim ED-10013 #1691

Closed JannickNijholt closed 1 year ago

JannickNijholt commented 2 years ago

Hi! I bought the EcoDim ED-10013. This ZigBee device for turning lights on and off is already supported in Zigbee2MQTT, but not yet in ZHA.

Device 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=4644, maximum_buffer_size=82, maximum_incoming_transfer_size=82, server_mask=11264, maximum_outgoing_transfer_size=82, descriptor_capability_field=, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=True, *is_full_function_device=False, *is_mains_powered=False, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False)", "endpoints": { "1": { "profile_id": 260, "device_type": "0x0001", "in_clusters": [ "0x0000", "0x0001", "0x0003", "0x0b05" ], "out_clusters": [ "0x0003", "0x0004", "0x0005", "0x0006", "0x0008", "0x0019", "0x0300", "0x1000" ] }, "2": { "profile_id": 260, "device_type": "0x0001", "in_clusters": [ "0x0000", "0x0001", "0x0003", "0x0b05" ], "out_clusters": [ "0x0003", "0x0004", "0x0005", "0x0006", "0x0008", "0x0019", "0x0300", "0x1000" ] } }, "manufacturer": "EcoDim", "model": "ED-10013", "class": "zigpy.device.Device" } ```
Diagnostic information ```{ "home_assistant": { "installation_type": "Home Assistant Container", "version": "2022.7.6", "dev": false, "hassio": false, "virtualenv": false, "python_version": "3.10.5", "docker": true, "arch": "x86_64", "timezone": "Europe/Amsterdam", "os_name": "Linux", "os_version": "5.15.46-Unraid", "run_as_root": true }, "custom_components": { "homewizard_energy": { "version": "0.10.0", "requirements": [ "aiohwenergy==0.3.2" ] }, "huesyncbox": { "version": "1.22.0", "requirements": [ "aiohuesyncbox==0.0.21" ] }, "hacs": { "version": "1.26.0", "requirements": [ "aiogithubapi>=22.2.4" ] }, "zha_toolkit": { "version": "v0.8.11", "requirements": [] } }, "integration_manifest": { "domain": "zha", "name": "Zigbee Home Automation", "config_flow": true, "documentation": "https://www.home-assistant.io/integrations/zha", "requirements": [ "bellows==0.31.1", "pyserial==3.5", "pyserial-asyncio==0.6", "zha-quirks==0.0.77", "zigpy-deconz==0.18.0", "zigpy==0.47.3", "zigpy-xbee==0.15.0", "zigpy-zigate==0.9.0", "zigpy-znp==0.8.1" ], "usb": [ { "vid": "10C4", "pid": "EA60", "description": "*2652*", "known_devices": [ "slae.sh cc2652rb stick" ] }, { "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": "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" ] } ], "codeowners": [ "@dmulcahey", "@adminiuga" ], "zeroconf": [ { "type": "_esphomelib._tcp.local.", "name": "tube*" }, { "type": "_zigate-zigbee-gateway._tcp.local.", "name": "*zigate*" } ], "after_dependencies": [ "onboarding", "usb", "zeroconf" ], "iot_class": "local_polling", "loggers": [ "aiosqlite", "bellows", "crccheck", "pure_pcapy3", "zhaquirks", "zigpy", "zigpy_deconz", "zigpy_xbee", "zigpy_zigate", "zigpy_znp" ], "is_built_in": true }, "data": { "ieee": "**REDACTED**", "nwk": 47059, "manufacturer": "EcoDim", "model": "ED-10013", "name": "EcoDim ED-10013", "quirk_applied": false, "quirk_class": "zigpy.device.Device", "manufacturer_code": 4644, "power_source": "Battery or Unknown", "lqi": 63, "rssi": null, "last_seen": "2022-08-11T13:27:48", "available": true, "device_type": "EndDevice", "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=4644, maximum_buffer_size=82, maximum_incoming_transfer_size=82, server_mask=11264, maximum_outgoing_transfer_size=82, descriptor_capability_field=, *allocate_address=True, *is_alternate_pan_coordinator=False, *is_coordinator=False, *is_end_device=True, *is_full_function_device=False, *is_mains_powered=False, *is_receiver_on_when_idle=False, *is_router=False, *is_security_capable=False)", "endpoints": { "1": { "profile_id": 260, "device_type": "0x0001", "in_clusters": [ "0x0000", "0x0001", "0x0003", "0x0b05" ], "out_clusters": [ "0x0003", "0x0004", "0x0005", "0x0006", "0x0008", "0x0019", "0x0300", "0x1000" ] }, "2": { "profile_id": 260, "device_type": "0x0001", "in_clusters": [ "0x0000", "0x0001", "0x0003", "0x0b05" ], "out_clusters": [ "0x0003", "0x0004", "0x0005", "0x0006", "0x0008", "0x0019", "0x0300", "0x1000" ] } } }, "entities": [ { "entity_id": "button.ecodim_ed_10013_fb8c65fe_identify", "name": "EcoDim ED-10013" }, { "entity_id": "sensor.ecodim_ed_10013_fb8c65fe_power", "name": "EcoDim ED-10013" } ], "neighbors": [], "endpoint_names": [ { "name": "LEVEL_CONTROL_SWITCH" }, { "name": "LEVEL_CONTROL_SWITCH" } ], "user_given_name": null, "device_reg_id": "8a5352b20f589e7437b97e6b19e749c0", "area_id": "hal", "cluster_details": { "1": { "device_type": { "name": "LEVEL_CONTROL_SWITCH", "id": 1 }, "profile_id": 260, "in_clusters": { "0x0000": { "endpoint_attribute": "basic", "attributes": { "0x0004": { "attribute_name": "manufacturer", "value": "EcoDim" }, "0x0005": { "attribute_name": "model", "value": "ED-10013" } }, "unsupported_attributes": {} }, "0x0001": { "endpoint_attribute": "power", "attributes": { "0x0020": { "attribute_name": "battery_voltage", "value": 31 }, "0x0021": { "attribute_name": "battery_percentage_remaining", "value": 100 }, "0x0031": { "attribute_name": "battery_size", "value": 255 }, "0x0033": { "attribute_name": "battery_quantity", "value": 0 } }, "unsupported_attributes": {} }, "0x0003": { "endpoint_attribute": "identify", "attributes": {}, "unsupported_attributes": {} }, "0x0b05": { "endpoint_attribute": "diagnostic", "attributes": {}, "unsupported_attributes": {} } }, "out_clusters": { "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": {}, "unsupported_attributes": {} }, "0x0008": { "endpoint_attribute": "level", "attributes": {}, "unsupported_attributes": {} }, "0x0019": { "endpoint_attribute": "ota", "attributes": {}, "unsupported_attributes": {} }, "0x0300": { "endpoint_attribute": "light_color", "attributes": {}, "unsupported_attributes": {} }, "0x1000": { "endpoint_attribute": "lightlink", "attributes": {}, "unsupported_attributes": {} } } }, "2": { "device_type": { "name": "LEVEL_CONTROL_SWITCH", "id": 1 }, "profile_id": 260, "in_clusters": { "0x0000": { "endpoint_attribute": "basic", "attributes": {}, "unsupported_attributes": {} }, "0x0001": { "endpoint_attribute": "power", "attributes": { "0x0021": { "attribute_name": "battery_percentage_remaining", "value": 100 } }, "unsupported_attributes": {} }, "0x0003": { "endpoint_attribute": "identify", "attributes": {}, "unsupported_attributes": {} }, "0x0b05": { "endpoint_attribute": "diagnostic", "attributes": {}, "unsupported_attributes": {} } }, "out_clusters": { "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": {}, "unsupported_attributes": {} }, "0x0008": { "endpoint_attribute": "level", "attributes": {}, "unsupported_attributes": {} }, "0x0019": { "endpoint_attribute": "ota", "attributes": {}, "unsupported_attributes": {} }, "0x0300": { "endpoint_attribute": "light_color", "attributes": {}, "unsupported_attributes": {} }, "0x1000": { "endpoint_attribute": "lightlink", "attributes": {}, "unsupported_attributes": {} } } } } } } ```
Additional logs ``` ```

Thank you so much!

Dutchstyler commented 2 years ago

Found this dim controller to and find this request. Just want to say that this support will be awesome 👌

MattWestb commented 2 years ago

Its looks like one very nice Light Dimmer !! What is not working in ZHA then all locks very Zigbee standard and not as Xiaomi or tuya ?

Z2M is using On, Off, brightness_move_up, brightness_move_down and brightness_stop for EP 1 and 2 that is normal Zigbee Light commands.

Use Development tools > Events and putting zha_events in Listening to events and you is knowing what command you can see the commands its sending and using then in automatons.

JannickNijholt commented 2 years ago

I managed to alter this Blueprint and make it work using ZHA: https://community.home-assistant.io/t/zha-ecodim-ed-10014-4-channel-remote/351853

The only thing is that dimming does not seem to work. A native integration inside of ZHA would be great.

MattWestb commented 2 years ago

@JannickNijholt Is you getting brightness_move_up, brightness_move_down and brightness_stop events then listening to zha_events ?

Also try "reconfigure device" from device card (dont forgetting waking the device up then its one sleeper) then some controllers is not getting proper binding then joining the system.

github-actions[bot] commented 1 year 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.

jerry2boz commented 1 year ago

@JannickNijholt i'm new to Home Assistant, added ZHA and MQTT to HA with 2 ZigBee controllers. I managed to add the blueprint for the 8 button ECODim. But i don't succeed to connect the ecodim ED-10014 to MQTT. What have i do to, to make it appearing in MQTT?

jerry2boz commented 1 year ago

@JannickNijholt or make it possible with ZHA?