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
719 stars 664 forks source link

[BUG] AduroSmart scene switch not detecting scene button clicks #2655

Closed Daandeve closed 4 months ago

Daandeve commented 10 months ago

Bug description

When integrating the AduroSmart scene switch in zha the scene switches do not work. The on/off switch works fine, but the other 3 (scene) switches do not work. Well sort of when one of the 3 scene buttons is pressed the battery percentage changes.

Steps to reproduce

  1. Integrate the device into zha
  2. Click one of the 3 scene buttons

Expected behavior

The switch should be detected as the scene switch and not the dimmer switch

Screenshots/Video

Screenshots/Video image image

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=4653, maximum_buffer_size=127, maximum_incoming_transfer_size=100, server_mask=0, maximum_outgoing_transfer_size=100, 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": "0xc05e", "device_type": "0x0810", "input_clusters": [ "0x0000", "0x0001", "0x0003", "0x0004", "0x0005", "0x0006", "0x0008", "0x0300", "0x1000", "0xfccc" ], "output_clusters": [ "0x0000", "0x0003", "0x0004", "0x0005", "0x0006", "0x0008", "0x0300", "0x1000", "0xfccc" ] }, "2": { "profile_id": "0xc05e", "device_type": "0x03f2", "input_clusters": [ "0x1000" ], "output_clusters": [ "0x1000" ] } }, "manufacturer": "AduroSmart Eria", "model": "ADUROLIGHT_CSC", "class": "zigpy.device.Device" } ```

Diagnostic information

Diagnostic information ```json { "home_assistant": { "installation_type": "Home Assistant OS", "version": "2023.10.3", "dev": false, "hassio": true, "virtualenv": false, "python_version": "3.11.5", "docker": true, "arch": "x86_64", "timezone": "Europe/Amsterdam", "os_name": "Linux", "os_version": "6.1.56", "supervisor": "2023.10.0", "host_os": "Home Assistant OS 11.0", "docker_version": "24.0.6", "chassis": "vm", "run_as_root": true }, "custom_components": { "cozylife": { "version": "0.4.0", "requirements": [] }, "govee_lan": { "version": "1.0.0", "requirements": [ "govee-led-wez>=0.0.15" ] }, "hacs": { "version": "1.33.0", "requirements": [ "aiogithubapi>=22.10.1" ] }, "localtuya": { "version": "5.2.1", "requirements": [] }, "afvalbeheer": { "version": "5.2.8", "requirements": [ "rsa", "pycryptodome" ] }, "volkswagencarnet": { "version": "v4.4.65", "requirements": [ "pytz", "volkswagencarnet==4.4.62" ] }, "edge_tts": { "version": "0.0.1", "requirements": [ "edge-tts==6.1.8" ] }, "mass": { "version": "2023.2.2", "requirements": [] }, "govee": { "version": "0.2.2", "requirements": [ "govee-api-laggat==0.2.2", "dacite==1.6.0" ] }, "powercalc": { "version": "v1.9.5", "requirements": [ "numpy>=1.21.1" ] }, "pfsense": { "version": "0.1.0", "requirements": [ "mac-vendor-lookup>=0.1.11" ] }, "alarmo": { "version": "v1.9.10", "requirements": [] }, "ddwrt": { "version": "1.1.3", "requirements": [] }, "optimal_humidity": { "version": "v2.0.6", "requirements": [ "psychrolib>=2.5.0" ] }, "watchman": { "version": "0.5.1", "requirements": [ "prettytable==3.0.0" ] }, "thermal_comfort": { "version": "2.1.1", "requirements": [] }, "adaptive_lighting": { "version": "1.19.0", "requirements": [ "ulid-transform" ] }, "google_home": { "version": "1.10.0", "requirements": [ "glocaltokens==0.7.0" ] }, "legacy_samsungtv": { "version": "1.0.0", "requirements": [ "samsungTVlegacy[websocket]==0.1.1", "samsungtvws==1.4.0" ] } }, "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", "universal_silabs_flasher" ], "requirements": [ "bellows==0.36.5", "pyserial==3.5", "pyserial-asyncio==0.6", "zha-quirks==0.0.104", "zigpy-deconz==0.21.1", "zigpy==0.57.2", "zigpy-xbee==0.18.3", "zigpy-zigate==0.11.0", "zigpy-znp==0.11.5", "universal-silabs-flasher==0.0.14", "pyserial-asyncio-fast==0.11" ], "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": "_uzg-01._tcp.local.", "name": "uzg-01*" }, { "type": "_slzb-06._tcp.local.", "name": "slzb-06*" } ], "is_built_in": true }, "data": { "ieee": "**REDACTED**", "nwk": 18588, "manufacturer": "AduroSmart Eria", "model": "ADUROLIGHT_CSC", "name": "AduroSmart Eria ADUROLIGHT_CSC", "quirk_applied": false, "quirk_class": "zigpy.device.Device", "manufacturer_code": 4653, "power_source": "Battery or Unknown", "lqi": 47, "rssi": null, "last_seen": "2023-10-17T19:21:28", "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=4653, maximum_buffer_size=127, maximum_incoming_transfer_size=100, server_mask=0, maximum_outgoing_transfer_size=100, 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": "0xc05e", "device_type": "0x0810", "input_clusters": [ "0x0000", "0x0001", "0x0003", "0x0004", "0x0005", "0x0006", "0x0008", "0x0300", "0x1000", "0xfccc" ], "output_clusters": [ "0x0000", "0x0003", "0x0004", "0x0005", "0x0006", "0x0008", "0x0300", "0x1000", "0xfccc" ] }, "2": { "profile_id": "0xc05e", "device_type": "0x03f2", "input_clusters": [ "0x1000" ], "output_clusters": [ "0x1000" ] } }, "manufacturer": "AduroSmart Eria", "model": "ADUROLIGHT_CSC" }, "active_coordinator": false, "entities": [ { "entity_id": "button.living_scene_switcher_identify", "name": "AduroSmart Eria ADUROLIGHT_CSC" }, { "entity_id": "sensor.living_scene_switcher_battery", "name": "AduroSmart Eria ADUROLIGHT_CSC" }, { "entity_id": "switch.living_scene_switcher_switch", "name": "AduroSmart Eria ADUROLIGHT_CSC" } ], "neighbors": [], "routes": [], "endpoint_names": [ { "name": "COLOR_SCENE_CONTROLLER" }, { "name": "undefined_0x03f2" } ], "user_given_name": "Living scene switcher", "device_reg_id": "937360f0bbecf1df788d1c5d373a3f63", "area_id": "e6ebd17507d511ebbf51c9d1c91cb7c2", "cluster_details": { "1": { "device_type": { "name": "COLOR_SCENE_CONTROLLER", "id": 2064 }, "profile_id": 49246, "in_clusters": { "0x0000": { "endpoint_attribute": "basic", "attributes": { "0x0004": { "attribute_name": "manufacturer", "value": "AduroSmart Eria" }, "0x0005": { "attribute_name": "model", "value": "ADUROLIGHT_CSC" } }, "unsupported_attributes": {} }, "0x0004": { "endpoint_attribute": "groups", "attributes": {}, "unsupported_attributes": {} }, "0x0003": { "endpoint_attribute": "identify", "attributes": {}, "unsupported_attributes": {} }, "0x0006": { "endpoint_attribute": "on_off", "attributes": { "0x0000": { "attribute_name": "on_off", "value": true } }, "unsupported_attributes": {} }, "0x0008": { "endpoint_attribute": "level", "attributes": {}, "unsupported_attributes": {} }, "0x0005": { "endpoint_attribute": "scenes", "attributes": {}, "unsupported_attributes": {} }, "0x0300": { "endpoint_attribute": "light_color", "attributes": {}, "unsupported_attributes": {} }, "0x1000": { "endpoint_attribute": "lightlink", "attributes": {}, "unsupported_attributes": {} }, "0x0001": { "endpoint_attribute": "power", "attributes": { "0x0021": { "attribute_name": "battery_percentage_remaining", "value": 120 }, "0x0020": { "attribute_name": "battery_voltage", "value": 28 } }, "unsupported_attributes": {} }, "0xfccc": { "endpoint_attribute": "manufacturer_specific", "attributes": {}, "unsupported_attributes": {} } }, "out_clusters": { "0x0000": { "endpoint_attribute": "basic", "attributes": {}, "unsupported_attributes": {} }, "0x0004": { "endpoint_attribute": "groups", "attributes": {}, "unsupported_attributes": {} }, "0x0003": { "endpoint_attribute": "identify", "attributes": {}, "unsupported_attributes": {} }, "0x0006": { "endpoint_attribute": "on_off", "attributes": {}, "unsupported_attributes": {} }, "0x0008": { "endpoint_attribute": "level", "attributes": {}, "unsupported_attributes": {} }, "0x0005": { "endpoint_attribute": "scenes", "attributes": {}, "unsupported_attributes": {} }, "0x0300": { "endpoint_attribute": "light_color", "attributes": {}, "unsupported_attributes": {} }, "0x1000": { "endpoint_attribute": "lightlink", "attributes": {}, "unsupported_attributes": {} }, "0xfccc": { "endpoint_attribute": "manufacturer_specific", "attributes": {}, "unsupported_attributes": {} } } }, "2": { "device_type": { "name": "undefined_0x03f2", "id": 1010 }, "profile_id": 49246, "in_clusters": { "0x1000": { "endpoint_attribute": "lightlink", "attributes": {}, "unsupported_attributes": {} } }, "out_clusters": { "0x1000": { "endpoint_attribute": "lightlink", "attributes": {}, "unsupported_attributes": {} } } } } } } ```

Logs

Logs ```python 2023-10-17 19:40:36.609 DEBUG (MainThread) [zigpy_znp.api] Received command: AF.IncomingMsg.Callback(GroupId=0xF994, ClusterId=5, SrcAddr=0x489C, SrcEndpoint=1, DstEndpoint=1, WasBroadcast=, LQI=76, SecurityUse=, TimeStamp=8667961, TSN=0, Data=b'\x11\x98\x05\x94\xF9\xFF', MacSrcAddr=0x489C, MsgResultRadius=29) 2023-10-17 19:40:36.610 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(src=AddrModeAddress(addr_mode=, address=0x489C), src_ep=1, dst=AddrModeAddress(addr_mode=, address=0xF994), dst_ep=1, source_route=None, extended_timeout=False, tsn=0, profile_id=260, cluster_id=5, data=Serialized[b'\x11\x98\x05\x94\xf9\xff'], tx_options=, radius=29, non_member_radius=0, lqi=76, rssi=None) 2023-10-17 19:40:36.610 DEBUG (MainThread) [zigpy.zcl] [0x489C:1:0x0005] Received ZCL frame: b'\x11\x98\x05\x94\xf9\xff' 2023-10-17 19:40:36.610 DEBUG (MainThread) [zigpy.zcl] [0x489C:1:0x0005] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=, is_manufacturer_specific=0, direction=, disable_default_response=1, reserved=0, *is_cluster=True, *is_general=False), tsn=152, command_id=5, *direction=) 2023-10-17 19:40:36.610 DEBUG (MainThread) [zigpy.zcl] [0x489C:1:0x0005] Decoded ZCL frame: Scenes:recall(group_id=0xF994, scene_id=255, transition_time=None) 2023-10-17 19:40:36.610 DEBUG (MainThread) [zigpy.zcl] [0x489C:1:0x0005] Received command 0x05 (TSN 152): recall(group_id=0xF994, scene_id=255, transition_time=None) 2023-10-17 19:40:36.611 DEBUG (MainThread) [zigpy.zcl] [0x489C:1:0x0005] No explicit handler for cluster command 0x05: recall(group_id=0xF994, scene_id=255, transition_time=None) ```

Additional information

No response

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

Daandeve commented 4 months ago

This issue is still relevant, the switch does not work properly with HA: 2024.5.2