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
683 stars 636 forks source link

[Device Support Request] LK (Schneider) Dimmer #2413

Open larsalthof opened 1 year ago

larsalthof commented 1 year ago

Problem description

Dimmer does come in as a dimmer, however the device also has two buttons intended for scene selection. These do not show up.

Solution description

I would like to use the two buttons to set scenes

Screenshots/Video

Screenshots/Video [Paste/upload your media here]

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=4190, 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=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)", "endpoints": { "3": { "profile_id": "0x0104", "device_type": "0x0101", "input_clusters": [ "0x0000", "0x0003", "0x0004", "0x0005", "0x0006", "0x0008", "0x0301", "0x0b05" ], "output_clusters": [ "0x0019" ] }, "21": { "profile_id": "0x0104", "device_type": "0x0104", "input_clusters": [ "0x0000", "0x0003", "0x0b05", "0xff17" ], "output_clusters": [ "0x0003", "0x0004", "0x0005", "0x0006", "0x0008" ] }, "22": { "profile_id": "0x0104", "device_type": "0x0104", "input_clusters": [ "0x0000", "0x0003", "0x0b05", "0xff17" ], "output_clusters": [ "0x0003", "0x0004", "0x0005", "0x0006", "0x0008" ] }, "23": { "profile_id": "0x0104", "device_type": "0x0104", "input_clusters": [ "0x0000", "0x0003", "0x0b05", "0xff17" ], "output_clusters": [ "0x0003", "0x0004", "0x0005", "0x0006", "0x0008" ] }, "24": { "profile_id": "0x0104", "device_type": "0x0104", "input_clusters": [ "0x0000", "0x0003", "0x0b05", "0xff17" ], "output_clusters": [ "0x0003", "0x0004", "0x0005", "0x0006", "0x0008" ] }, "242": { "profile_id": "0xa1e0", "device_type": "0x0061", "input_clusters": [], "output_clusters": [ "0x0021" ] } }, "manufacturer": "Schneider Electric", "model": "LK Dimmer", "class": "zigpy.device.Device" } ```

Diagnostic information

Diagnostic information ```json { "home_assistant": { "installation_type": "Home Assistant Container", "version": "2023.5.3", "dev": false, "hassio": false, "virtualenv": false, "python_version": "3.10.11", "docker": true, "arch": "x86_64", "timezone": "Europe/Copenhagen", "os_name": "Linux", "os_version": "5.3.11-100.fc29.x86_64", "run_as_root": true }, "custom_components": { "unifigateway": { "version": "0.3.3", "requirements": [ "pyunifi==2.21" ] }, "my_unifi": { "version": "0.1.5", "requirements": [] }, "webrtc": { "version": "v3.1.0", "requirements": [] }, "meross_lan": { "version": "3.0.3", "requirements": [] }, "generic_hygrostat": { "version": "0.7.1", "requirements": [] }, "dwains_dashboard": { "version": "3.4.3", "requirements": [] }, "holidays": { "version": "1.9.4", "requirements": [ "python-dateutil>=2.8.2", "holidays>=0.14.2" ] }, "renoweb": { "version": "1.0.0", "requirements": [ "pyrenoweb==1.1.2" ] }, "bibliotek_dk": { "version": "0.3.6", "requirements": [ "beautifulsoup4", "html.parser" ] }, "hacs": { "version": "1.32.1", "requirements": [ "aiogithubapi>=22.10.1" ] }, "ical": { "version": "1.6.6", "requirements": [ "icalendar==5.0.4" ] }, "grocy": { "version": "v4.8.0", "requirements": [ "pygrocy==1.4.1" ] }, "energidataservice": { "version": "1.3.3", "requirements": [ "async-retrying-ng==0.1.1", "CurrencyConverter==0.17.7" ] }, "adaptive_lighting": { "version": "1.11.0", "requirements": [ "ulid-transform" ] }, "shopping_list_with_grocy": { "version": "0.0.1", "requirements": [] }, "localtuya": { "version": "5.2.0", "requirements": [] } }, "integration_manifest": { "domain": "zha", "name": "Zigbee Home Automation", "after_dependencies": [ "onboarding", "usb" ], "codeowners": [ "@dmulcahey", "@adminiuga", "@puddly" ], "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" ], "requirements": [ "bellows==0.35.5", "pyserial==3.5", "pyserial-asyncio==0.6", "zha-quirks==0.0.99", "zigpy-deconz==0.21.0", "zigpy==0.55.0", "zigpy-xbee==0.18.0", "zigpy-zigate==0.11.0", "zigpy-znp==0.11.1" ], "usb": [ { "vid": "10C4", "pid": "EA60", "description": "*2652*", "known_devices": [ "slae.sh cc2652rb stick" ] }, { "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": "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": "_slzb-06._tcp.local.", "name": "slzb-06*" } ], "is_built_in": true }, "data": { "ieee": "**REDACTED**", "nwk": 49917, "manufacturer": "Schneider Electric", "model": "LK Dimmer", "name": "Schneider Electric LK Dimmer", "quirk_applied": false, "quirk_class": "zigpy.device.Device", "manufacturer_code": 4190, "power_source": "Mains", "lqi": 148, "rssi": -63, "last_seen": "2023-05-28T21:18:40", "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=4190, 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=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)", "endpoints": { "3": { "profile_id": "0x0104", "device_type": "0x0101", "input_clusters": [ "0x0000", "0x0003", "0x0004", "0x0005", "0x0006", "0x0008", "0x0301", "0x0b05" ], "output_clusters": [ "0x0019" ] }, "21": { "profile_id": "0x0104", "device_type": "0x0104", "input_clusters": [ "0x0000", "0x0003", "0x0b05", "0xff17" ], "output_clusters": [ "0x0003", "0x0004", "0x0005", "0x0006", "0x0008" ] }, "22": { "profile_id": "0x0104", "device_type": "0x0104", "input_clusters": [ "0x0000", "0x0003", "0x0b05", "0xff17" ], "output_clusters": [ "0x0003", "0x0004", "0x0005", "0x0006", "0x0008" ] }, "23": { "profile_id": "0x0104", "device_type": "0x0104", "input_clusters": [ "0x0000", "0x0003", "0x0b05", "0xff17" ], "output_clusters": [ "0x0003", "0x0004", "0x0005", "0x0006", "0x0008" ] }, "24": { "profile_id": "0x0104", "device_type": "0x0104", "input_clusters": [ "0x0000", "0x0003", "0x0b05", "0xff17" ], "output_clusters": [ "0x0003", "0x0004", "0x0005", "0x0006", "0x0008" ] }, "242": { "profile_id": "0xa1e0", "device_type": "0x0061", "input_clusters": [], "output_clusters": [ "0x0021" ] } }, "manufacturer": "Schneider Electric", "model": "LK Dimmer" }, "active_coordinator": false, "entities": [ { "entity_id": "light.sovevarelse_loft_light", "name": "Schneider Electric LK Dimmer" }, { "entity_id": "number.schneider_electric_lk_dimmer_on_off_transition_time", "name": "Schneider Electric LK Dimmer" }, { "entity_id": "number.schneider_electric_lk_dimmer_on_level", "name": "Schneider Electric LK Dimmer" }, { "entity_id": "number.schneider_electric_lk_dimmer_default_move_rate", "name": "Schneider Electric LK Dimmer" }, { "entity_id": "number.schneider_electric_lk_dimmer_start_up_current_level", "name": "Schneider Electric LK Dimmer" }, { "entity_id": "button.schneider_electric_lk_dimmer_identify", "name": "Schneider Electric LK Dimmer" } ], "neighbors": [ { "device_type": "Coordinator", "rx_on_when_idle": "On", "relationship": "Sibling", "extended_pan_id": "**REDACTED**", "ieee": "**REDACTED**", "nwk": "0x0000", "permit_joining": "Unknown", "depth": "0", "lqi": "138" }, { "device_type": "Router", "rx_on_when_idle": "On", "relationship": "Sibling", "extended_pan_id": "**REDACTED**", "ieee": "**REDACTED**", "nwk": "0x0853", "permit_joining": "Unknown", "depth": "15", "lqi": "95" }, { "device_type": "Router", "rx_on_when_idle": "On", "relationship": "Sibling", "extended_pan_id": "**REDACTED**", "ieee": "**REDACTED**", "nwk": "0x2A13", "permit_joining": "Unknown", "depth": "15", "lqi": "169" }, { "device_type": "Router", "rx_on_when_idle": "On", "relationship": "Sibling", "extended_pan_id": "**REDACTED**", "ieee": "**REDACTED**", "nwk": "0x2A90", "permit_joining": "Unknown", "depth": "15", "lqi": "204" }, { "device_type": "Router", "rx_on_when_idle": "On", "relationship": "Sibling", "extended_pan_id": "**REDACTED**", "ieee": "**REDACTED**", "nwk": "0x3551", "permit_joining": "Unknown", "depth": "15", "lqi": "160" }, { "device_type": "Router", "rx_on_when_idle": "On", "relationship": "Sibling", "extended_pan_id": "**REDACTED**", "ieee": "**REDACTED**", "nwk": "0x4090", "permit_joining": "Unknown", "depth": "15", "lqi": "173" }, { "device_type": "Router", "rx_on_when_idle": "On", "relationship": "Sibling", "extended_pan_id": "**REDACTED**", "ieee": "**REDACTED**", "nwk": "0x4192", "permit_joining": "Unknown", "depth": "15", "lqi": "149" }, { "device_type": "Router", "rx_on_when_idle": "On", "relationship": "Sibling", "extended_pan_id": "**REDACTED**", "ieee": "**REDACTED**", "nwk": "0x459A", "permit_joining": "Unknown", "depth": "15", "lqi": "151" }, { "device_type": "Router", "rx_on_when_idle": "On", "relationship": "Sibling", "extended_pan_id": "**REDACTED**", "ieee": "**REDACTED**", "nwk": "0x52E5", "permit_joining": "Unknown", "depth": "15", "lqi": "244" }, { "device_type": "Router", "rx_on_when_idle": "On", "relationship": "Sibling", "extended_pan_id": "**REDACTED**", "ieee": "**REDACTED**", "nwk": "0x8FBF", "permit_joining": "Unknown", "depth": "15", "lqi": "125" }, { "device_type": "Router", "rx_on_when_idle": "On", "relationship": "Sibling", "extended_pan_id": "**REDACTED**", "ieee": "**REDACTED**", "nwk": "0xA2B9", "permit_joining": "Unknown", "depth": "15", "lqi": "198" }, { "device_type": "Router", "rx_on_when_idle": "On", "relationship": "Sibling", "extended_pan_id": "**REDACTED**", "ieee": "**REDACTED**", "nwk": "0xB933", "permit_joining": "Unknown", "depth": "15", "lqi": "133" }, { "device_type": "Router", "rx_on_when_idle": "On", "relationship": "Sibling", "extended_pan_id": "**REDACTED**", "ieee": "**REDACTED**", "nwk": "0xCACF", "permit_joining": "Unknown", "depth": "15", "lqi": "69" }, { "device_type": "Router", "rx_on_when_idle": "On", "relationship": "Sibling", "extended_pan_id": "**REDACTED**", "ieee": "**REDACTED**", "nwk": "0xCF9D", "permit_joining": "Unknown", "depth": "15", "lqi": "102" }, { "device_type": "Router", "rx_on_when_idle": "On", "relationship": "Sibling", "extended_pan_id": "**REDACTED**", "ieee": "**REDACTED**", "nwk": "0xE048", "permit_joining": "Unknown", "depth": "15", "lqi": "67" }, { "device_type": "Router", "rx_on_when_idle": "On", "relationship": "Sibling", "extended_pan_id": "**REDACTED**", "ieee": "**REDACTED**", "nwk": "0xE2BA", "permit_joining": "Unknown", "depth": "15", "lqi": "113" } ], "routes": [ { "dest_nwk": "0x0000", "route_status": "Active", "memory_constrained": true, "many_to_one": true, "route_record_required": false, "next_hop": "0xB933" }, { "dest_nwk": "0x0853", "route_status": "Active", "memory_constrained": false, "many_to_one": false, "route_record_required": false, "next_hop": "0x0853" }, { "dest_nwk": "0xE048", "route_status": "Active", "memory_constrained": false, "many_to_one": false, "route_record_required": false, "next_hop": "0xE048" }, { "dest_nwk": "0x7432", "route_status": "Active", "memory_constrained": false, "many_to_one": false, "route_record_required": false, "next_hop": "0x41AC" }, { "dest_nwk": "0x1215", "route_status": "Active", "memory_constrained": false, "many_to_one": false, "route_record_required": false, "next_hop": "0xCACF" }, { "dest_nwk": "0xCACF", "route_status": "Active", "memory_constrained": false, "many_to_one": false, "route_record_required": false, "next_hop": "0xCACF" }, { "dest_nwk": "0xCF9D", "route_status": "Active", "memory_constrained": false, "many_to_one": false, "route_record_required": false, "next_hop": "0xCF9D" }, { "dest_nwk": "0xA2B9", "route_status": "Active", "memory_constrained": false, "many_to_one": false, "route_record_required": false, "next_hop": "0xA2B9" } ], "endpoint_names": [ { "name": "DIMMABLE_LIGHT" }, { "name": "DIMMER_SWITCH" }, { "name": "DIMMER_SWITCH" }, { "name": "DIMMER_SWITCH" }, { "name": "DIMMER_SWITCH" }, { "name": "unknown 97 device_type of 0xa1e0 profile id" } ], "user_given_name": "Sovev\u00e6relse Loft", "device_reg_id": "a98c0f54a651a5732c89e63a8d270020", "area_id": "sovevaerelse", "cluster_details": { "3": { "device_type": { "name": "DIMMABLE_LIGHT", "id": 257 }, "profile_id": 260, "in_clusters": { "0x0000": { "endpoint_attribute": "basic", "attributes": { "0x0004": { "attribute_name": "manufacturer", "value": "Schneider Electric" }, "0x0005": { "attribute_name": "model", "value": "LK Dimmer" } }, "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": 0 }, "0x4000": { "attribute_name": "global_scene_control", "value": 1 } }, "unsupported_attributes": { "0x4003": { "attribute_name": "start_up_on_off" } } }, "0x0008": { "endpoint_attribute": "level", "attributes": { "0x0000": { "attribute_name": "current_level", "value": 1 }, "0x0010": { "attribute_name": "on_off_transition_time", "value": 2 }, "0x0011": { "attribute_name": "on_level", "value": 254 }, "0x0014": { "attribute_name": "default_move_rate", "value": 50 }, "0x4000": { "attribute_name": "start_up_current_level", "value": 255 } }, "unsupported_attributes": { "0x0013": { "attribute_name": "off_transition_time" }, "0x0012": { "attribute_name": "on_transition_time" } } }, "0x0301": { "endpoint_attribute": "light_ballast", "attributes": {}, "unsupported_attributes": {} }, "0x0b05": { "endpoint_attribute": "diagnostic", "attributes": {}, "unsupported_attributes": {} } }, "out_clusters": { "0x0019": { "endpoint_attribute": "ota", "attributes": {}, "unsupported_attributes": {} } } }, "21": { "device_type": { "name": "DIMMER_SWITCH", "id": 260 }, "profile_id": 260, "in_clusters": { "0x0000": { "endpoint_attribute": "basic", "attributes": {}, "unsupported_attributes": {} }, "0x0003": { "endpoint_attribute": "identify", "attributes": {}, "unsupported_attributes": {} }, "0x0b05": { "endpoint_attribute": "diagnostic", "attributes": {}, "unsupported_attributes": {} }, "0xff17": { "endpoint_attribute": "manufacturer_specific", "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": {} } } }, "22": { "device_type": { "name": "DIMMER_SWITCH", "id": 260 }, "profile_id": 260, "in_clusters": { "0x0000": { "endpoint_attribute": "basic", "attributes": {}, "unsupported_attributes": {} }, "0x0003": { "endpoint_attribute": "identify", "attributes": {}, "unsupported_attributes": {} }, "0x0b05": { "endpoint_attribute": "diagnostic", "attributes": {}, "unsupported_attributes": {} }, "0xff17": { "endpoint_attribute": "manufacturer_specific", "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": {} } } }, "23": { "device_type": { "name": "DIMMER_SWITCH", "id": 260 }, "profile_id": 260, "in_clusters": { "0x0000": { "endpoint_attribute": "basic", "attributes": {}, "unsupported_attributes": {} }, "0x0003": { "endpoint_attribute": "identify", "attributes": {}, "unsupported_attributes": {} }, "0x0b05": { "endpoint_attribute": "diagnostic", "attributes": {}, "unsupported_attributes": {} }, "0xff17": { "endpoint_attribute": "manufacturer_specific", "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": {} } } }, "24": { "device_type": { "name": "DIMMER_SWITCH", "id": 260 }, "profile_id": 260, "in_clusters": { "0x0000": { "endpoint_attribute": "basic", "attributes": {}, "unsupported_attributes": {} }, "0x0003": { "endpoint_attribute": "identify", "attributes": {}, "unsupported_attributes": {} }, "0x0b05": { "endpoint_attribute": "diagnostic", "attributes": {}, "unsupported_attributes": {} }, "0xff17": { "endpoint_attribute": "manufacturer_specific", "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": {} } } }, "242": { "device_type": { "name": "unknown", "id": 97 }, "profile_id": 41440, "in_clusters": {}, "out_clusters": { "0x0021": { "endpoint_attribute": "green_power", "attributes": {}, "unsupported_attributes": {} } } } } } } ```

Logs

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

Custom quirk

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

Additional information

No response

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

larsalthof commented 7 months ago

This is not available yet

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.

larsalthof commented 1 month ago

This is not available yet