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
739
stars
675
forks
source link
[Device Support Request] Eglo Connect.z Smart Home E27 LED Filament Light Bulb #3404
This bulb will pair but only partially works.
It incorrectly appears as a colour bulb(always blue), and exposes a binary sensor that always shows as closed.
Switching off the light entity only dims the bulb it to its lowest brightness, whereas issuing the zigbee command works correctly to switch it off.
Also full brightness in the UI only reads as 254 via the levelcontrol attribute.
My experiments thus far at creating a quirk are failing miserably.
Problem description
This bulb will pair but only partially works. It incorrectly appears as a colour bulb(always blue), and exposes a binary sensor that always shows as closed. Switching off the light entity only dims the bulb it to its lowest brightness, whereas issuing the zigbee command works correctly to switch it off. Also full brightness in the UI only reads as 254 via the levelcontrol attribute. My experiments thus far at creating a quirk are failing miserably.
Solution description
Custom quirk, or help with creating one!
Screenshots/Video
Screenshots/Video
Device signature
Device signature
```json { "node_descriptor": { "logical_type": 1, "complex_descriptor_available": 0, "user_descriptor_available": 0, "reserved": 0, "aps_flags": 0, "frequency_band": 8, "mac_capability_flags": 142, "manufacturer_code": 4417, "maximum_buffer_size": 66, "maximum_incoming_transfer_size": 66, "server_mask": 10752, "maximum_outgoing_transfer_size": 66, "descriptor_capability_field": 0 }, "endpoints": { "1": { "profile_id": "0x0104", "device_type": "0x0101", "input_clusters": [ "0x0000", "0x0003", "0x0004", "0x0005", "0x0006", "0x0008", "0x000a", "0x0300", "0x1000", "0xfc57" ], "output_clusters": [ "0x0006" ] }, "3": { "profile_id": "0x128f", "device_type": "0x0101", "input_clusters": [ "0x0004", "0xff50", "0xff51" ], "output_clusters": [ "0xff50", "0xff51" ] }, "242": { "profile_id": "0xa1e0", "device_type": "0x0061", "input_clusters": [], "output_clusters": [ "0x0021" ] } }, "manufacturer": "AwoX", "model": "ESMLFzm_w6_Dimm", "class": "zigpy.device.Device" } ```Diagnostic information
Diagnostic information
```json { "home_assistant": { "installation_type": "Home Assistant OS", "version": "2024.10.1", "dev": false, "hassio": true, "virtualenv": false, "python_version": "3.12.4", "docker": true, "arch": "aarch64", "timezone": "Europe/Dublin", "os_name": "Linux", "os_version": "6.6.46-haos", "supervisor": "2024.09.1", "host_os": "Home Assistant OS 13.1", "docker_version": "26.1.4", "chassis": "embedded", "run_as_root": true }, "custom_components": { "average": { "documentation": "https://github.com/Limych/ha-average", "version": "2.3.4", "requirements": [] }, "feedparser": { "documentation": "https://github.com/custom-components/feedparser/blob/master/README.md", "version": "0.1.11", "requirements": [ "feedparser==6.0.10" ] }, "apparent_temperature": { "documentation": "https://github.com/Limych/ha-apparent-temperature", "version": "1.1.0", "requirements": [] }, "frigate": { "documentation": "https://github.com/blakeblackshear/frigate", "version": "5.4.0", "requirements": [ "pytz" ] }, "spotcast": { "documentation": "https://github.com/fondberg/spotcast", "version": "v3.8.2", "requirements": [] }, "hacs": { "documentation": "https://hacs.xyz/docs/configuration/start", "version": "2.0.1", "requirements": [ "aiogithubapi>=22.10.1" ] }, "mass": { "documentation": "https://music-assistant.io", "version": "2024.9.1", "requirements": [ "music-assistant==2.2.4" ] }, "cololight": { "documentation": "https://github.com/BazaJayGee66/homeassistant_cololight", "version": "v2.0.7", "requirements": [ "pycololight==2.1.0" ] }, "battery_notes": { "documentation": "https://andrew-codechimp.github.io/HA-Battery-Notes/", "version": "2.4.10", "requirements": [] }, "google_photos": { "documentation": "https://github.com/daanoz/ha-google-photos", "version": "v0.7.0", "requirements": [ "google-api-python-client>=2.71.0", "pillow" ] }, "scene_presets": { "documentation": "https://github.com/Hypfer/hass-scene_presets", "version": "2.2.1", "requirements": [] }, "adaptive_lighting": { "documentation": "https://github.com/basnijholt/adaptive-lighting#readme", "version": "1.22.0", "requirements": [ "ulid-transform" ] }, "temperature_feels_like": { "documentation": "https://github.com/Limych/ha-temperature-feeling", "version": "0.3.9", "requirements": [] }, "thermal_comfort": { "documentation": "https://github.com/dolezsa/thermal_comfort/blob/master/README.md", "version": "2.2.2", "requirements": [] } }, "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", "iot_class": "local_polling", "loggers": [ "aiosqlite", "bellows", "crccheck", "pure_pcapy3", "zhaquirks", "zigpy", "zigpy_deconz", "zigpy_xbee", "zigpy_zigate", "zigpy_znp", "zha", "universal_silabs_flasher" ], "requirements": [ "universal-silabs-flasher==0.0.22", "zha==0.0.34" ], "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*" }, { "type": "_xzg._tcp.local.", "name": "xzg*" }, { "type": "_czc._tcp.local.", "name": "czc*" } ], "is_built_in": true }, "setup_times": { "null": { "setup": 0.00022671895567327738 }, "63e7ca8badfbb2711b321aff78e35d98": { "wait_import_platforms": -0.051524004084058106, "wait_base_component": -0.0014281939947977662, "config_entry_setup": 22.306468680966645 } }, "data": { "ieee": "**REDACTED**", "nwk": 20977, "manufacturer": "AwoX", "model": "ESMLFzm_w6_Dimm", "name": "AwoX ESMLFzm_w6_Dimm", "quirk_applied": false, "quirk_class": "zigpy.device.Device", "quirk_id": null, "manufacturer_code": 4417, "power_source": "Mains", "lqi": 98, "rssi": null, "last_seen": "2024-10-07T17:07:49", "available": true, "device_type": "Router", "signature": { "node_descriptor": { "logical_type": 1, "complex_descriptor_available": 0, "user_descriptor_available": 0, "reserved": 0, "aps_flags": 0, "frequency_band": 8, "mac_capability_flags": 142, "manufacturer_code": 4417, "maximum_buffer_size": 66, "maximum_incoming_transfer_size": 66, "server_mask": 10752, "maximum_outgoing_transfer_size": 66, "descriptor_capability_field": 0 }, "endpoints": { "1": { "profile_id": "0x0104", "device_type": "0x0101", "input_clusters": [ "0x0000", "0x0003", "0x0004", "0x0005", "0x0006", "0x0008", "0x000a", "0x0300", "0x1000", "0xfc57" ], "output_clusters": [ "0x0006" ] }, "3": { "profile_id": "0x128f", "device_type": "0x0101", "input_clusters": [ "0x0004", "0xff50", "0xff51" ], "output_clusters": [ "0xff50", "0xff51" ] }, "242": { "profile_id": "0xa1e0", "device_type": "0x0061", "input_clusters": [], "output_clusters": [ "0x0021" ] } }, "manufacturer": "AwoX", "model": "ESMLFzm_w6_Dimm" }, "active_coordinator": false, "entities": [ { "entity_id": "binary_sensor.awox_esmlfzm_w6_dimm_opening", "name": "AwoX ESMLFzm_w6_Dimm" }, { "entity_id": "button.awox_esmlfzm_w6_dimm_identify", "name": "AwoX ESMLFzm_w6_Dimm" }, { "entity_id": "light.awox_esmlfzm_w6_dimm_light", "name": "AwoX ESMLFzm_w6_Dimm" }, { "entity_id": "number.awox_esmlfzm_w6_dimm_start_up_current_level", "name": "AwoX ESMLFzm_w6_Dimm" }, { "entity_id": "select.awox_esmlfzm_w6_dimm_start_up_behavior", "name": "AwoX ESMLFzm_w6_Dimm" } ], "neighbors": [], "routes": [], "endpoint_names": [ { "name": "DIMMABLE_LIGHT" }, { "name": "unknown 257 device_type of 0x128f profile id" }, { "name": "PROXY_BASIC" } ], "user_given_name": null, "device_reg_id": "300634645359e1ebd93633f214ed2324", "area_id": null, "cluster_details": { "1": { "device_type": { "name": "DIMMABLE_LIGHT", "id": 257 }, "profile_id": 260, "in_clusters": { "0x0000": { "endpoint_attribute": "basic", "attributes": { "0x0013": { "attribute": "ZCLAttributeDef(id=0x0013, name='alarm_mask', type=