Open lernerich opened 3 months ago
Despite the fact that two binary sensors appear on the ZHA, the second non-functional sensor is not the tamper. The tamper has a manufacturer-specific cluster (0xFC11). In another sensor's quirk (Sonoff SNZB-06), this cluster is named as follows: SONOFF_CLUSTER_FC11_ID = 0xFC11 There, a custom cluster replaces the original ManufacturerSpecificCluster. With the same technique, it is possible to read the sensor state, as an attribute, in the system. But I was unable to configure a sensor in Home Assistant with these binary values.
Problem description
The device successfully pairs, and the primary binary sensor operates as expected. However, the secondary binary sensor (tamper switch) does not function correctly; it remains in a "closed" state regardless of tampering or not.
Solution description
The tamper switch (rectius: secondary binary sensor) should detect and report any tampering by changing state from "closed" to "open" when triggered (or other proper states).
Screenshots/Video
Screenshots/Video
[Paste/upload your media here]Device signature
Device signature
```json { "node_descriptor": { "logical_type": 2, "complex_descriptor_available": 0, "user_descriptor_available": 0, "reserved": 0, "aps_flags": 0, "frequency_band": 8, "mac_capability_flags": 128, "manufacturer_code": 4742, "maximum_buffer_size": 82, "maximum_incoming_transfer_size": 255, "server_mask": 11264, "maximum_outgoing_transfer_size": 255, "descriptor_capability_field": 0 }, "endpoints": { "1": { "profile_id": "0x0104", "device_type": "0x0402", "input_clusters": [ "0x0000", "0x0001", "0x0003", "0x0020", "0x0500", "0xfc11", "0xfc57" ], "output_clusters": [ "0x0003", "0x0006", "0x0019" ] } }, "manufacturer": "eWeLink", "model": "SNZB-04P", "class": "zigpy.device.Device" } ```Diagnostic information
Diagnostic information
```json { "home_assistant": { "installation_type": "Home Assistant OS", "version": "2024.8.0", "dev": false, "hassio": true, "virtualenv": false, "python_version": "3.12.4", "docker": true, "arch": "aarch64", "timezone": "America/Sao_Paulo", "os_name": "Linux", "os_version": "6.6.31-haos-raspi", "supervisor": "2024.08.0", "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", "zha", "universal_silabs_flasher" ], "requirements": [ "universal-silabs-flasher==0.0.22", "zha==0.0.28" ], "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.00015310700000270572 }, "01J4MX3T2ZWXTQZGSP313K7SVA": { "wait_import_platforms": -0.0360018159999953, "wait_base_component": -0.0025521059999960016, "config_entry_setup": 19.607021302000007 } }, "data": { "ieee": "**REDACTED**", "nwk": 54364, "manufacturer": "eWeLink", "model": "SNZB-04P", "name": "eWeLink SNZB-04P", "quirk_applied": false, "quirk_class": "zigpy.device.Device", "quirk_id": null, "manufacturer_code": 4742, "power_source": "Battery or Unknown", "lqi": 140, "rssi": -65, "last_seen": "2024-08-21T18:23:26", "available": true, "device_type": "EndDevice", "signature": { "node_descriptor": { "logical_type": 2, "complex_descriptor_available": 0, "user_descriptor_available": 0, "reserved": 0, "aps_flags": 0, "frequency_band": 8, "mac_capability_flags": 128, "manufacturer_code": 4742, "maximum_buffer_size": 82, "maximum_incoming_transfer_size": 255, "server_mask": 11264, "maximum_outgoing_transfer_size": 255, "descriptor_capability_field": 0 }, "endpoints": { "1": { "profile_id": "0x0104", "device_type": "0x0402", "input_clusters": [ "0x0000", "0x0001", "0x0003", "0x0020", "0x0500", "0xfc11", "0xfc57" ], "output_clusters": [ "0x0003", "0x0006", "0x0019" ] } }, "manufacturer": "eWeLink", "model": "SNZB-04P" }, "active_coordinator": false, "entities": [ { "entity_id": "binary_sensor.ewelink_snzb_04p_abrindo", "name": "eWeLink SNZB-04P" }, { "entity_id": "binary_sensor.ewelink_snzb_04p_abrindo_2", "name": "eWeLink SNZB-04P" }, { "entity_id": "button.ewelink_snzb_04p_identificar", "name": "eWeLink SNZB-04P" }, { "entity_id": "sensor.ewelink_snzb_04p_bateria", "name": "eWeLink SNZB-04P" }, { "entity_id": "update.ewelink_snzb_04p_firmware", "name": "eWeLink SNZB-04P" } ], "neighbors": [], "routes": [], "endpoint_names": [ { "name": "IAS_ZONE" } ], "user_given_name": null, "device_reg_id": "1875942e58a791505f1be3a3675bef62", "area_id": null, "cluster_details": { "1": { "device_type": { "name": "IAS_ZONE", "id": 1026 }, "profile_id": 260, "in_clusters": { "0x0000": { "endpoint_attribute": "basic", "attributes": { "0x0004": { "attribute_name": "manufacturer", "value": "eWeLink" }, "0x0005": { "attribute_name": "model", "value": "SNZB-04P" } }, "unsupported_attributes": {} }, "0x0001": { "endpoint_attribute": "power", "attributes": { "0x0021": { "attribute_name": "battery_percentage_remaining", "value": 200 }, "0x0020": { "attribute_name": "battery_voltage", "value": 30 } }, "unsupported_attributes": { "0x0033": { "attribute_name": "battery_quantity" }, "0x0031": { "attribute_name": "battery_size" }, "0xfffe": { "attribute_name": "reporting_status" }, "0x0010": { "attribute_name": "mains_alarm_mask" } } }, "0x0003": { "endpoint_attribute": "identify", "attributes": {}, "unsupported_attributes": {} }, "0x0020": { "endpoint_attribute": "poll_control", "attributes": { "0x0000": { "attribute_name": "checkin_interval", "value": 13200 } }, "unsupported_attributes": {} }, "0x0500": { "endpoint_attribute": "ias_zone", "attributes": { "0x0010": { "attribute_name": "cie_addr", "value": "e8:e0:7e:ff:fe:7a:f6:75" }, "0x0000": { "attribute_name": "zone_state", "value": 1 }, "0x0002": { "attribute_name": "zone_status", "value": 0 }, "0x0001": { "attribute_name": "zone_type", "value": 21 } }, "unsupported_attributes": {} }, "0xfc57": { "endpoint_attribute": "manufacturer_specific", "attributes": {}, "unsupported_attributes": {} }, "0xfc11": { "endpoint_attribute": "manufacturer_specific", "attributes": {}, "unsupported_attributes": {} } }, "out_clusters": { "0x0003": { "endpoint_attribute": "identify", "attributes": {}, "unsupported_attributes": {} }, "0x0006": { "endpoint_attribute": "on_off", "attributes": {}, "unsupported_attributes": { "0x0000": { "attribute_name": "on_off" }, "0x4003": { "attribute_name": "start_up_on_off" } } }, "0x0019": { "endpoint_attribute": "ota", "attributes": { "0x0002": { "attribute_name": "current_file_version", "value": 8704 } }, "unsupported_attributes": {} } } } } } } ```Logs
Logs
```python [Paste the logs here] ```Custom quirk
Custom quirk
```python [Paste your custom quirk here] ```Additional information
The official Sonoff webpage shows the tamper alert doesn't work in ZHA: https://sonoff.tech/product/gateway-and-sensors/snzb-04p/