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
773 stars 703 forks source link

[Device Support Request] NIKO 552-72004 - Wireless battery-powered switch, 4-fold, Zigbee #3262

Open bdjPenguin opened 4 months ago

bdjPenguin commented 4 months ago

Problem description

https://www.niko.eu/en/products/niko-home-control/products-for-traditional-wiring/wireless-battery-powered-switch-4-fold-zigbee-productmodel-niko-fd091fe8-7983-4dc8-bb0a-cffaf91e3f04 Commutators are missing from the entities This model was not found in the existing documentation.

Solution description

I would like to see the 4 commutators in the HA interface. Only the battery status is available.

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=4703, 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": "0x0006", "input_clusters": [ "0x0000", "0x0001", "0x0003", "0x0b05", "0x1000", "0xfc00", "0xfc01" ], "output_clusters": [ "0x0003", "0x0004", "0x0006", "0x0008", "0x0019", "0x1000" ] }, "2": { "profile_id": "0x0104", "device_type": "0x0006", "input_clusters": [], "output_clusters": [ "0x0003", "0x0006", "0x0008" ] }, "3": { "profile_id": "0x0104", "device_type": "0x0006", "input_clusters": [], "output_clusters": [ "0x0003", "0x0006", "0x0008" ] }, "4": { "profile_id": "0x0104", "device_type": "0x0006", "input_clusters": [], "output_clusters": [ "0x0003", "0x0006", "0x0008" ] } }, "manufacturer": "NIKO NV", "model": "Battery switch, 4 button", "class": "zigpy.device.Device" } ```

Diagnostic information

Diagnostic information ```json { "home_assistant": { "installation_type": "Home Assistant OS", "version": "2024.7.2", "dev": false, "hassio": true, "virtualenv": false, "python_version": "3.12.4", "docker": true, "arch": "aarch64", "timezone": "Europe/Brussels", "os_name": "Linux", "os_version": "6.6.31-haos-raspi", "supervisor": "2024.06.2", "host_os": "Home Assistant OS 12.4", "docker_version": "26.1.4", "chassis": "embedded", "run_as_root": true }, "custom_components": {}, "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.39.1", "pyserial==3.5", "zha-quirks==0.0.117", "zigpy-deconz==0.23.2", "zigpy==0.64.1", "zigpy-xbee==0.20.1", "zigpy-zigate==0.12.1", "zigpy-znp==0.12.2", "universal-silabs-flasher==0.0.20", "pyserial-asyncio-fast==0.11" ], "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.0003136829998311441 }, "211b661d0bfe4a583d7c582aa12559a6": { "wait_import_platforms": -0.000526942000078634, "wait_base_component": -0.0022899880000295525, "config_entry_setup": 21.44053972200004 } }, "data": { "ieee": "**REDACTED**", "nwk": 48455, "manufacturer": "NIKO NV", "model": "Battery switch, 4 button", "name": "NIKO NV Battery switch, 4 button", "quirk_applied": false, "quirk_class": "zigpy.device.Device", "quirk_id": null, "manufacturer_code": 4703, "power_source": "Battery or Unknown", "lqi": 128, "rssi": -68, "last_seen": "2024-07-18T12:37:22", "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=4703, 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": "0x0006", "input_clusters": [ "0x0000", "0x0001", "0x0003", "0x0b05", "0x1000", "0xfc00", "0xfc01" ], "output_clusters": [ "0x0003", "0x0004", "0x0006", "0x0008", "0x0019", "0x1000" ] }, "2": { "profile_id": "0x0104", "device_type": "0x0006", "input_clusters": [], "output_clusters": [ "0x0003", "0x0006", "0x0008" ] }, "3": { "profile_id": "0x0104", "device_type": "0x0006", "input_clusters": [], "output_clusters": [ "0x0003", "0x0006", "0x0008" ] }, "4": { "profile_id": "0x0104", "device_type": "0x0006", "input_clusters": [], "output_clusters": [ "0x0003", "0x0006", "0x0008" ] } }, "manufacturer": "NIKO NV", "model": "Battery switch, 4 button" }, "active_coordinator": false, "entities": [ { "entity_id": "sensor.cuisine_switch_batterie_batterie_2", "name": "NIKO NV Battery switch, 4 button" }, { "entity_id": "button.cuisine_switch_batterie_identifier_2", "name": "NIKO NV Battery switch, 4 button" }, { "entity_id": "update.cuisine_switch_batterie_micrologiciel_2", "name": "NIKO NV Battery switch, 4 button" } ], "neighbors": [], "routes": [], "endpoint_names": [ { "name": "REMOTE_CONTROL" }, { "name": "REMOTE_CONTROL" }, { "name": "REMOTE_CONTROL" }, { "name": "REMOTE_CONTROL" } ], "user_given_name": "Cuisine Switch Batterie", "device_reg_id": "79f7097100cf579f0c400065721987ea", "area_id": "cuisine", "cluster_details": { "1": { "device_type": { "name": "REMOTE_CONTROL", "id": 6 }, "profile_id": 260, "in_clusters": { "0x0000": { "endpoint_attribute": "basic", "attributes": { "0x0004": { "attribute_name": "manufacturer", "value": "NIKO NV" }, "0x0005": { "attribute_name": "model", "value": "Battery switch, 4 button" } }, "unsupported_attributes": {} }, "0x0001": { "endpoint_attribute": "power", "attributes": { "0x003e": { "attribute_name": "battery_alarm_state", "value": 0 }, "0x0021": { "attribute_name": "battery_percentage_remaining", "value": 200 }, "0x0033": { "attribute_name": "battery_quantity", "value": 1 }, "0x0031": { "attribute_name": "battery_size", "value": 2 }, "0x0020": { "attribute_name": "battery_voltage", "value": 32 } }, "unsupported_attributes": {} }, "0x0003": { "endpoint_attribute": "identify", "attributes": {}, "unsupported_attributes": {} }, "0x0b05": { "endpoint_attribute": "diagnostic", "attributes": {}, "unsupported_attributes": {} }, "0x1000": { "endpoint_attribute": "lightlink", "attributes": {}, "unsupported_attributes": {} }, "0xfc00": { "endpoint_attribute": "manufacturer_specific", "attributes": {}, "unsupported_attributes": {} }, "0xfc01": { "endpoint_attribute": "manufacturer_specific", "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": 553936736 } }, "unsupported_attributes": {} }, "0x1000": { "endpoint_attribute": "lightlink", "attributes": {}, "unsupported_attributes": {} } } }, "2": { "device_type": { "name": "REMOTE_CONTROL", "id": 6 }, "profile_id": 260, "in_clusters": {}, "out_clusters": { "0x0003": { "endpoint_attribute": "identify", "attributes": {}, "unsupported_attributes": {} }, "0x0006": { "endpoint_attribute": "on_off", "attributes": {}, "unsupported_attributes": {} }, "0x0008": { "endpoint_attribute": "level", "attributes": {}, "unsupported_attributes": {} } } }, "3": { "device_type": { "name": "REMOTE_CONTROL", "id": 6 }, "profile_id": 260, "in_clusters": {}, "out_clusters": { "0x0003": { "endpoint_attribute": "identify", "attributes": {}, "unsupported_attributes": {} }, "0x0006": { "endpoint_attribute": "on_off", "attributes": {}, "unsupported_attributes": {} }, "0x0008": { "endpoint_attribute": "level", "attributes": {}, "unsupported_attributes": {} } } }, "4": { "device_type": { "name": "REMOTE_CONTROL", "id": 6 }, "profile_id": 260, "in_clusters": {}, "out_clusters": { "0x0003": { "endpoint_attribute": "identify", "attributes": {}, "unsupported_attributes": {} }, "0x0006": { "endpoint_attribute": "on_off", "attributes": {}, "unsupported_attributes": {} }, "0x0008": { "endpoint_attribute": "level", "attributes": {}, "unsupported_attributes": {} } } } } } } ```

Logs

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

Custom quirk

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

Additional information

No response

klegrand commented 3 months ago

hi bdjPingiun,

I've the same issue with a Niko Zigbee battery powered switch. For a reason I can't find the trigger when I push the button. Did you solved it?

Thx

bdjPenguin commented 3 months ago

Hello, I didn't have any solution up to now. I'm still expecting a similar behaviour as the "Tradfri Remote Control" from Ikea. Unfortunately, no success up to now.

klegrand commented 3 months ago

Hi bdjPinguin,

I currently solved it and it is working fine now.

I used the developer tools and then 'Events' and in the Listen to Events enter 'zha_events' and click on start listening. Then push a button and you see the result. Copy the data part (without data word) which identify the specific button and copy this in your button automation by using the following 'Manual Event', enter zha_event in the Event Type box and paste the previous data part in the Event data part.

Test it out and that's it !

Good luck...

jankdb commented 1 month ago

Having the same issues are reported. Looking forward to the support.