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

[Device Support Request] smoke detector TS0601 _TZE200_ntcy3xu1 not working but the quirk gets recognized #2248

Closed pbvdven closed 1 week ago

pbvdven commented 1 year ago

Is your feature request related to a problem? Please describe. My smoke detector wont show any useful entities. the only one that it show is iaszone and its always clear i looked in the quirk zhaquirks.tuya.ts0601_smoke.TuyaSmokeDetector0601 but my devices seems already added but not working as expected.

image

Describe the solution you'd like working entities.

Device signature ```yaml Paste the device signature here. { "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=4417, maximum_buffer_size=66, maximum_incoming_transfer_size=66, server_mask=10752, maximum_outgoing_transfer_size=66, 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": 260, "device_type": "0x0402", "in_clusters": [ "0x0000", "0x0004", "0x0005", "0x0500", "0xef00" ], "out_clusters": [ "0x000a", "0x0019" ] } }, "manufacturer": "_TZE200_ntcy3xu1", "model": "TS0601", "class": "zhaquirks.tuya.ts0601_smoke.TuyaSmokeDetector0601" } ```
Diagnostic information ```yaml Paste the diagnostic information here. { "home_assistant": { "installation_type": "Home Assistant Supervised", "version": "2023.3.1", "dev": false, "hassio": true, "virtualenv": false, "python_version": "3.10.10", "docker": true, "arch": "x86_64", "timezone": "Europe/Amsterdam", "os_name": "Linux", "os_version": "5.10.0-21-amd64", "supervisor": "2023.01.1", "host_os": "Debian GNU/Linux 11 (bullseye)", "docker_version": "23.0.1", "chassis": "desktop", "run_as_root": true }, "custom_components": { "helium": { "version": "0.3.8", "requirements": [ "beautifulsoup4>=4.9.0", "jsonpath>=0.82", "xmltodict>=0.12.0", "httpx>=0.16.1" ] }, "watchman": { "version": "0.5.1", "requirements": [ "prettytable==3.0.0" ] }, "webrtc": { "version": "v3.1.0", "requirements": [] }, "sonoff": { "version": "3.4.0", "requirements": [ "pycryptodome>=3.6.6" ] }, "auth_header": { "version": "1.4", "requirements": [] }, "smartir": { "version": "1.17.6", "requirements": [ "aiofiles==0.6.0" ] }, "ezviz_cloud": { "version": "0.1.0.6", "requirements": [ "pyezviz==0.2.0.12" ] }, "hacs": { "version": "1.31.0", "requirements": [ "aiogithubapi>=22.10.1" ] }, "buienalarm": { "version": "1.9", "requirements": [ "pybuienalarm==0.1.1" ] }, "localtuya": { "version": "4.0.2", "requirements": [] }, "browser_mod": { "version": "2.2.0", "requirements": [] }, "ui_lovelace_minimalist": { "version": "v1.2.0", "requirements": [ "aiofiles==0.8.0", "aiogithubapi>=22.2.4" ] }, "dahua": { "version": "0.5.0", "requirements": [] }, "frigate": { "version": "4.0.0-beta4", "requirements": [ "pytz==2022.7" ] }, "fglair_heatpump_controller": { "version": "0.1.8", "requirements": [ "pyfujitseu==0.9.3.2" ] }, "blueiris": { "version": "1.0.15", "requirements": [] }, "alarmo": { "version": "v1.9.7", "requirements": [] }, "jumbo": { "version": "0.8.0", "requirements": [ "python-jumbo-api==0.8.0" ] }, "dash_cast": { "version": "1.0.0", "requirements": [] }, "home_connect_alt": { "version": "0.6.0", "requirements": [ "home-connect-async==0.7.7" ] }, "dwains_dashboard": { "version": "3.3.0", "requirements": [] }, "climate_group": { "version": "0.4.2", "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.34.9", "pyserial==3.5", "pyserial-asyncio==0.6", "zha-quirks==0.0.93", "zigpy-deconz==0.19.2", "zigpy==0.53.2", "zigpy-xbee==0.16.2", "zigpy-zigate==0.10.3", "zigpy-znp==0.9.3" ], "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": 13599, "manufacturer": "_TZE200_ntcy3xu1", "model": "TS0601", "name": "_TZE200_ntcy3xu1 TS0601", "quirk_applied": true, "quirk_class": "zhaquirks.tuya.ts0601_smoke.TuyaSmokeDetector0601", "manufacturer_code": 4417, "power_source": "Battery or Unknown", "lqi": 255, "rssi": -50, "last_seen": "2023-03-03T17:59:19", "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=4417, maximum_buffer_size=66, maximum_incoming_transfer_size=66, server_mask=10752, maximum_outgoing_transfer_size=66, 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": 260, "device_type": "0x0402", "in_clusters": [ "0x0000", "0x0004", "0x0005", "0x0500", "0xef00" ], "out_clusters": [ "0x000a", "0x0019" ] } } }, "active_coordinator": false, "entities": [ { "entity_id": "binary_sensor.tze200_ntcy3xu1_ts0601_iaszone", "name": "_TZE200_ntcy3xu1 TS0601" } ], "neighbors": [], "routes": [], "endpoint_names": [ { "name": "IAS_ZONE" } ], "user_given_name": null, "device_reg_id": "ec94fca84f9da8a972ccff95e00debf9", "area_id": null, "cluster_details": { "1": { "device_type": { "name": "IAS_ZONE", "id": 1026 }, "profile_id": 260, "in_clusters": { "0x0000": { "endpoint_attribute": "basic", "attributes": { "0x0001": { "attribute_name": "app_version", "value": 72 }, "0x0004": { "attribute_name": "manufacturer", "value": "_TZE200_ntcy3xu1" }, "0x0005": { "attribute_name": "model", "value": "TS0601" } }, "unsupported_attributes": {} }, "0x0004": { "endpoint_attribute": "groups", "attributes": {}, "unsupported_attributes": {} }, "0x0005": { "endpoint_attribute": "scenes", "attributes": {}, "unsupported_attributes": {} }, "0x0500": { "endpoint_attribute": "ias_zone", "attributes": { "0x0001": { "attribute_name": "zone_type", "value": 40 }, "0x0002": { "attribute_name": "zone_status", "value": 0 } }, "unsupported_attributes": {} }, "0xef00": { "endpoint_attribute": "tuya_manufacturer", "attributes": { "0x0401": { "attribute_name": "smoke_detected", "value": 1 } }, "unsupported_attributes": {} } }, "out_clusters": { "0x000a": { "endpoint_attribute": "time", "attributes": {}, "unsupported_attributes": {} }, "0x0019": { "endpoint_attribute": "ota", "attributes": {}, "unsupported_attributes": {} } } } } } } ```
Additional logs ``` Paste any additional debug logs here. Don't remove the extra line breaks outside the ``` marks. ```

Additional context Add any other context or screenshots about the feature request here.

digistep commented 1 year ago

Same situation for the TS0601 / _TZE200_m9skfctm

0anton commented 1 year ago

Same here for zhaquirks.tuya.ts0601_smoke - device paired, but only one laszone sensor added, which is dysfunctional. Device does not communicate with the controller in any form. Re-pairing does not help.

IEEE: xxx
Nwk: xxx
Device Type: EndDevice
LQI: 135
RSSI: Unknown
Last Seen: 2023-03-09T18:01:26
Power Source: Battery or Unknown
Quirk: zhaquirks.tuya.ts0601_smoke.TuyaSmokeDetector0601

image

no single data point at any sensor

0anton commented 1 year ago

I've found the same device working fine with Z2M MicrosoftTeams-image (7)

The device reports in Z2M (in contrast to ZHA) sensors: battery, alarm, tamper.

Translation code in Z2M apparently provided by:

Is it possible to port it to ZHA?

b2un0 commented 1 year ago

same for me. have 4 of theme. here is a pairing log:

home-assistant_zha_2023-04-24T12-37-16.094Z.log

diagnostic ```json { "home_assistant": { "installation_type": "Home Assistant Container", "version": "2023.4.6", "dev": false, "hassio": false, "virtualenv": false, "python_version": "3.10.10", "docker": true, "arch": "aarch64", "timezone": "Europe/Berlin", "os_name": "Linux", "os_version": "6.1.21-v8+", "run_as_root": true }, "custom_components": { "zha_toolkit": { "version": "v0.8.38", "requirements": [ "packaging>=20.8", "pytz" ] }, "xiaomi_miio_fan": { "version": "2022.8.0.0", "requirements": [ "construct==2.10.56", "python-miio>=0.5.12" ] }, "localtuya": { "version": "5.0.0", "requirements": [] }, "avanza_stock": { "version": "1.2.0", "requirements": [ "pyavanza==0.6.0" ] }, "hacs": { "version": "1.32.1", "requirements": [ "aiogithubapi>=22.10.1" ] }, "auto_backup": { "version": "1.3.2", "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.1", "pyserial==3.5", "pyserial-asyncio==0.6", "zha-quirks==0.0.97", "zigpy-deconz==0.20.0", "zigpy==0.54.1", "zigpy-xbee==0.17.0", "zigpy-zigate==0.10.3", "zigpy-znp==0.10.0" ], "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": 32738, "manufacturer": "_TZE200_ntcy3xu1", "model": "TS0601", "name": "_TZE200_ntcy3xu1 TS0601", "quirk_applied": true, "quirk_class": "zhaquirks.tuya.ts0601_smoke.TuyaSmokeDetector0601", "manufacturer_code": 4417, "power_source": "Battery or Unknown", "lqi": 192, "rssi": -52, "last_seen": "2023-04-24T14:37:13", "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=4417, maximum_buffer_size=66, maximum_incoming_transfer_size=66, server_mask=10752, maximum_outgoing_transfer_size=66, 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": 260, "device_type": "0x0402", "in_clusters": [ "0x0000", "0x0004", "0x0005", "0x0500", "0xef00" ], "out_clusters": [ "0x000a", "0x0019" ] } } }, "active_coordinator": false, "entities": [ { "entity_id": "binary_sensor.tze200_ntcy3xu1_ts0601_iaszone", "name": "_TZE200_ntcy3xu1 TS0601" } ], "neighbors": [], "routes": [], "endpoint_names": [ { "name": "IAS_ZONE" } ], "user_given_name": null, "device_reg_id": "844bdf944ad187555ffa52b945539cfb", "area_id": null, "cluster_details": { "1": { "device_type": { "name": "IAS_ZONE", "id": 1026 }, "profile_id": 260, "in_clusters": { "0x0000": { "endpoint_attribute": "basic", "attributes": {}, "unsupported_attributes": {} }, "0x0004": { "endpoint_attribute": "groups", "attributes": {}, "unsupported_attributes": {} }, "0x0005": { "endpoint_attribute": "scenes", "attributes": {}, "unsupported_attributes": {} }, "0x0500": { "endpoint_attribute": "ias_zone", "attributes": { "0x0001": { "attribute_name": "zone_type", "value": 40 }, "0x0002": { "attribute_name": "zone_status", "value": 0 } }, "unsupported_attributes": {} }, "0xef00": { "endpoint_attribute": "tuya_manufacturer", "attributes": {}, "unsupported_attributes": {} } }, "out_clusters": { "0x000a": { "endpoint_attribute": "time", "attributes": {}, "unsupported_attributes": {} }, "0x0019": { "endpoint_attribute": "ota", "attributes": {}, "unsupported_attributes": {} } } } } } } ```
git-peterk commented 1 year ago

You can give a try to this custom quirk, hope that works for you too: https://github.com/zigpy/zha-device-handlers/issues/1838#issuecomment-1712805018

ViperRNMC commented 1 year ago

You can give a try to this custom quirk, hope that works for you too: #1838 (comment)

Thanks, only need to change model info to TZE200 in the py file. Can now see tamper and battery.

yoshz commented 9 months ago

Same problem with _TZE200_m9skfctm. The smoke_detected attribute is not logged when I press the test button, nor is the "clear" logged.

@git-peterk That quirk just adds tampering and battery state and doesn't change anything to the smoke_detected attribute.

My guess is that these smoke detectors are just a peace of Chinese crap.

hellebauer commented 7 months ago

_TZE200_aycxwiau (Woox Smoke Detector R7049)

No luck with above model. Pairing works, but nothing works beyond that.

TGMivo commented 6 months ago

I have the TZE200_rccxox8p also no luck Pairing works, but see only LQI and RSSI

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.