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
731 stars 673 forks source link

[BUG] IKEA Buttons having Battery and Pairing Issues On QuirkV2 #3016

Closed RSZEE closed 1 week ago

RSZEE commented 7 months ago

Bug description

Whenever my IKEA devices disconnect for no reason (even with a new battery), when I repair them they take 7 tries or evenmore and the battery percentage never shows up. I've noticed that this has happened after my devices changed their quirks to V2

Steps to reproduce

ZHA -> IKEA E1812 Button -> Battery OR ZHA -> Add Devices

Expected behavior

To pair properly and to show the battery percentage.

Screenshots/Video

Screenshots/Video ![image](https://github.com/zigpy/zha-device-handlers/assets/152068050/78e750c4-d488-40c5-9607-ecfd91cc5dd3) ![image](https://github.com/zigpy/zha-device-handlers/assets/152068050/5b329f7e-a3d7-4ce1-aaa4-63a372dead3b)

Device signature

Device signature ```json 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 { "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=4476, 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": "0x0104", "device_type": "0x0820", "input_clusters": [ "0x0000", "0x0001", "0x0003", "0x0009", "0x0020", "0x1000" ], "output_clusters": [ "0x0003", "0x0004", "0x0006", "0x0008", "0x0019", "0x1000" ] } }, "manufacturer": "IKEA of Sweden", "model": "TRADFRI SHORTCUT Button", "class": "zhaquirks.ikea.shortcutbtn.IkeaTradfriShortcutBtn2" } ```

Diagnostic information

Diagnostic information ```json { "home_assistant": { "installation_type": "Home Assistant Supervised", "version": "2024.2.2", "dev": false, "hassio": true, "virtualenv": false, "python_version": "3.12.1", "docker": true, "arch": "x86_64", "timezone": "Europe/London", "os_name": "Linux", "os_version": "6.5.0-21-generic", "supervisor": "2024.02.1", "host_os": "Ubuntu 22.04.4 LTS", "docker_version": "25.0.3", "chassis": "laptop", "run_as_root": true }, "custom_components": { "aarlo": { "version": "0.7.4b19", "requirements": [ "unidecode", "cloudscraper>=1.2.71", "paho-mqtt" ] }, "localtuya": { "version": "5.2.1", "requirements": [] }, "hacs": { "version": "1.33.0", "requirements": [ "aiogithubapi>=22.10.1" ] }, "ui_lovelace_minimalist": { "version": "v1.3.6", "requirements": [ "aiofiles==0.8.0", "aiogithubapi>=22.2.4" ] }, "scrypted": { "version": "0.0.8", "requirements": [] }, "webrtc": { "version": "v3.3.0", "requirements": [] }, "tapo": { "version": "2.13.0", "requirements": [ "plugp100==4.0.3" ] }, "browser_mod": { "version": "2.3.0", "requirements": [] }, "zha_toolkit": { "version": "v1.0.0", "requirements": [ "pytz" ] }, "tapo_control": { "version": "5.4.13", "requirements": [ "pytapo==3.3.18" ] }, "skyq": { "version": "v2.11.7", "requirements": [ "pyskyqremote==0.3.26" ] }, "govee": { "version": "0.2.2", "requirements": [ "govee-api-laggat==0.2.2", "dacite==1.6.0" ] } }, "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", "universal_silabs_flasher" ], "requirements": [ "bellows==0.38.0", "pyserial==3.5", "pyserial-asyncio==0.6", "zha-quirks==0.0.111", "zigpy-deconz==0.23.0", "zigpy==0.62.3", "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": "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": 30447, "manufacturer": "IKEA of Sweden", "model": "TRADFRI SHORTCUT Button", "name": "IKEA of Sweden TRADFRI SHORTCUT Button", "quirk_applied": true, "quirk_class": "zhaquirks.ikea.shortcutbtn.IkeaTradfriShortcutBtn2", "quirk_id": null, "manufacturer_code": 4476, "power_source": "Battery or Unknown", "lqi": 81, "rssi": null, "last_seen": "2024-03-02T11:44:24", "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=4476, 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": "0x0104", "device_type": "0x0820", "input_clusters": [ "0x0000", "0x0001", "0x0003", "0x0009", "0x0020", "0x1000" ], "output_clusters": [ "0x0003", "0x0004", "0x0006", "0x0008", "0x0019", "0x1000" ] } }, "manufacturer": "IKEA of Sweden", "model": "TRADFRI SHORTCUT Button" }, "active_coordinator": false, "entities": [ { "entity_id": "sensor.top_floor_switch_battery", "name": "IKEA of Sweden TRADFRI SHORTCUT Button" }, { "entity_id": "update.top_floor_switch_firmware", "name": "IKEA of Sweden TRADFRI SHORTCUT Button" }, { "entity_id": "button.top_floor_switch_identify", "name": "IKEA of Sweden TRADFRI SHORTCUT Button" } ], "neighbors": [], "routes": [], "endpoint_names": [ { "name": "NON_COLOR_CONTROLLER" } ], "user_given_name": "Top Floor Switch", "device_reg_id": "ea4790d2c2bf6840e85a9d146e10ec70", "area_id": "top_floor", "cluster_details": { "1": { "device_type": { "name": "NON_COLOR_CONTROLLER", "id": 2080 }, "profile_id": 260, "in_clusters": { "0x0000": { "endpoint_attribute": "basic", "attributes": { "0x0004": { "attribute_name": "manufacturer", "value": "IKEA of Sweden" }, "0x0005": { "attribute_name": "model", "value": "TRADFRI SHORTCUT Button" }, "0x4000": { "attribute_name": "sw_build_id", "value": "24.4.6" } }, "unsupported_attributes": {} }, "0x0001": { "endpoint_attribute": "power", "attributes": { "0x0021": { "attribute_name": "battery_percentage_remaining", "value": 180 }, "0x0033": { "attribute_name": "battery_quantity", "value": 1 }, "0x0034": { "attribute_name": "battery_rated_voltage", "value": 30 }, "0x0031": { "attribute_name": "battery_size", "value": 10 }, "0x0020": { "attribute_name": "battery_voltage", "value": 29 } }, "unsupported_attributes": {} }, "0x0003": { "endpoint_attribute": "identify", "attributes": {}, "unsupported_attributes": {} }, "0x0009": { "endpoint_attribute": "alarms", "attributes": {}, "unsupported_attributes": {} }, "0x0020": { "endpoint_attribute": "poll_control", "attributes": { "0x0000": { "attribute_name": "checkin_interval", "value": 13200 } }, "unsupported_attributes": {} }, "0x1000": { "endpoint_attribute": "lightlink", "attributes": {}, "unsupported_attributes": {} } }, "out_clusters": { "0x0003": { "endpoint_attribute": "identify", "attributes": {}, "unsupported_attributes": {} }, "0x0004": { "endpoint_attribute": "groups", "attributes": {}, "unsupported_attributes": {} }, "0x0006": { "endpoint_attribute": "on_off", "attributes": {}, "unsupported_attributes": {} }, "0x0008": { "endpoint_attribute": "level", "attributes": {}, "unsupported_attributes": {} }, "0x0019": { "endpoint_attribute": "ota", "attributes": { "0x0002": { "attribute_name": "current_file_version", "value": 604241926 } }, "unsupported_attributes": {} }, "0x1000": { "endpoint_attribute": "lightlink", "attributes": {}, "unsupported_attributes": {} } } } } } } ```

Logs

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

Additional information

No response

MattWestb commented 7 months ago

All IKEA controllers is working good if having one good router as parent. So the interesting is your coordinator and its firmware version and all your router in the network.

RSZEE commented 7 months ago

I have a Sonoff Zigbee 3.0 P as my dongle. this is only happening with ikea buttons

MattWestb commented 7 months ago

Firmware version and other routers in the network (The TI chip cant handle real Zigbee 3 SEDs if not running current production firmware) ?

RSZEE commented 6 months ago

Firmware: Z-Stack 20210708

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