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
696 stars 641 forks source link

[Device Support Request] _TZ3000_gjrubzje #2397

Closed rea-ducks closed 5 months ago

rea-ducks commented 1 year ago

Problem description

Got a Tuya Switch module like https://zigbee.blakadder.com/Tuya_WHD02.html Home Assistant ZHA reports it as "TS0001 by _TZ3000_gjrubzje" It looks like there's a quirk loaded for it as HA repots "Quirk: zhaquirks.tuya.ts000x.Switch_1G_Metering"

But it's seen as light while it's a switch. So it might apply the wrong quirk. Also it reports power meassurement sensors I don't believe it really has. At least it's not advertised with it and the sensors also don't display any values.

Solution description

Recognize the device with correct device class and don't report any sensors it doesn't have.

Screenshots/Video

No response

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=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=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)", "endpoints": { "1": { "profile_id": "0x0104", "device_type": "0x0100", "input_clusters": [ "0x0000", "0x0003", "0x0004", "0x0005", "0x0006", "0x0702", "0x0b04", "0xe000", "0xe001" ], "output_clusters": [ "0x000a", "0x0019" ] } }, "manufacturer": "_TZ3000_gjrubzje", "model": "TS0001", "class": "zhaquirks.tuya.ts000x.Switch_1G_Metering" } ```

Diagnostic information

Diagnostic information ```json { "home_assistant": { "installation_type": "Home Assistant OS", "version": "2023.5.2", "dev": false, "hassio": true, "virtualenv": false, "python_version": "3.10.11", "docker": true, "arch": "x86_64", "timezone": "Europe/Berlin", "os_name": "Linux", "os_version": "6.1.25", "supervisor": "2023.04.1", "host_os": "Home Assistant OS 10.1", "docker_version": "23.0.3", "chassis": "vm", "run_as_root": true }, "custom_components": { "hacs": { "version": "1.32.1", "requirements": [ "aiogithubapi>=22.10.1" ] }, "frigate": { "version": "4.0.0", "requirements": [ "pytz==2022.7" ] }, "localtuya": { "version": "5.0.0", "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.2", "pyserial==3.5", "pyserial-asyncio==0.6", "zha-quirks==0.0.99", "zigpy-deconz==0.21.0", "zigpy==0.55.0", "zigpy-xbee==0.18.0", "zigpy-zigate==0.11.0", "zigpy-znp==0.11.1" ], "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": 27727, "manufacturer": "_TZ3000_gjrubzje", "model": "TS0001", "name": "_TZ3000_gjrubzje TS0001", "quirk_applied": true, "quirk_class": "zhaquirks.tuya.ts000x.Switch_1G_Metering", "manufacturer_code": 4417, "power_source": "Mains", "lqi": 58, "rssi": null, "last_seen": "2023-05-14T15:02:24", "available": true, "device_type": "Router", "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=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)", "endpoints": { "1": { "profile_id": "0x0104", "device_type": "0x0100", "input_clusters": [ "0x0000", "0x0003", "0x0004", "0x0005", "0x0006", "0x0702", "0x0b04", "0xe000", "0xe001" ], "output_clusters": [ "0x000a", "0x0019" ] } }, "manufacturer": "_TZ3000_gjrubzje", "model": "TS0001" }, "active_coordinator": false, "entities": [ { "entity_id": "button.tz3000_gjrubzje_ts0001_identify", "name": "_TZ3000_gjrubzje TS0001" }, { "entity_id": "light.tz3000_gjrubzje_ts0001_light", "name": "_TZ3000_gjrubzje TS0001" }, { "entity_id": "select.tz3000_gjrubzje_ts0001_power_on_state", "name": "_TZ3000_gjrubzje TS0001" }, { "entity_id": "select.tz3000_gjrubzje_ts0001_backlight_mode", "name": "_TZ3000_gjrubzje TS0001" }, { "entity_id": "sensor.tz3000_gjrubzje_ts0001_rms_current", "name": "_TZ3000_gjrubzje TS0001" }, { "entity_id": "sensor.tz3000_gjrubzje_ts0001_rms_voltage", "name": "_TZ3000_gjrubzje TS0001" }, { "entity_id": "sensor.tz3000_gjrubzje_ts0001_power_factor", "name": "_TZ3000_gjrubzje TS0001" }, { "entity_id": "sensor.tz3000_gjrubzje_ts0001_active_power", "name": "_TZ3000_gjrubzje TS0001" }, { "entity_id": "sensor.tz3000_gjrubzje_ts0001_summation_delivered", "name": "_TZ3000_gjrubzje TS0001" } ], "neighbors": [], "routes": [], "endpoint_names": [ { "name": "ON_OFF_LIGHT" } ], "user_given_name": null, "device_reg_id": "b7393412cf075bf5f5b35a367331b0a5", "area_id": null, "cluster_details": { "1": { "device_type": { "name": "ON_OFF_LIGHT", "id": 256 }, "profile_id": 260, "in_clusters": { "0x0000": { "endpoint_attribute": "basic", "attributes": { "0x0000": { "attribute_name": "zcl_version", "value": 3 }, "0x0001": { "attribute_name": "app_version", "value": 70 }, "0x0004": { "attribute_name": "manufacturer", "value": "_TZ3000_gjrubzje" }, "0x0005": { "attribute_name": "model", "value": "TS0001" }, "0x0007": { "attribute_name": "power_source", "value": 1 }, "0xfffe": { "attribute_name": "attr_reporting_status", "value": 0 } }, "unsupported_attributes": {} }, "0x0003": { "endpoint_attribute": "identify", "attributes": {}, "unsupported_attributes": {} }, "0x0004": { "endpoint_attribute": "groups", "attributes": {}, "unsupported_attributes": {} }, "0x0005": { "endpoint_attribute": "scenes", "attributes": {}, "unsupported_attributes": {} }, "0x0006": { "endpoint_attribute": "on_off", "attributes": { "0x0000": { "attribute_name": "on_off", "value": 0 }, "0x4001": { "attribute_name": "on_time", "value": 0 }, "0x4002": { "attribute_name": "off_wait_time", "value": 0 }, "0x8001": { "attribute_name": "backlight_mode", "value": 0 }, "0x8002": { "attribute_name": "power_on_state", "value": 2 } }, "unsupported_attributes": { "0x4003": { "attribute_name": "start_up_on_off" } } }, "0x0702": { "endpoint_attribute": "smartenergy_metering", "attributes": { "0x0000": { "attribute_name": "current_summ_delivered", "value": 0 }, "0x0200": { "attribute_name": "status", "value": 0 }, "0x0300": { "attribute_name": "unit_of_measure", "value": 0 }, "0x0301": { "attribute_name": "multiplier", "value": 1 }, "0x0302": { "attribute_name": "divisor", "value": 100 }, "0x0303": { "attribute_name": "summation_formatting", "value": 0 }, "0x0306": { "attribute_name": "metering_device_type", "value": 0 } }, "unsupported_attributes": { "0x0400": { "attribute_name": "instantaneous_demand" }, "0x0100": { "attribute_name": "current_tier1_summ_delivered" }, "0x0102": { "attribute_name": "current_tier2_summ_delivered" }, "0x0104": { "attribute_name": "current_tier3_summ_delivered" }, "0x010a": { "attribute_name": "current_tier6_summ_delivered" }, "0x0106": { "attribute_name": "current_tier4_summ_delivered" }, "0x0304": { "attribute_name": "demand_formatting" }, "0x0108": { "attribute_name": "current_tier5_summ_delivered" } } }, "0x0b04": { "endpoint_attribute": "electrical_measurement", "attributes": { "0x0505": { "attribute_name": "rms_voltage", "value": 0 }, "0x0508": { "attribute_name": "rms_current", "value": 0 }, "0x050b": { "attribute_name": "active_power", "value": 0 }, "0x0602": { "attribute_name": "ac_current_multiplier", "value": 1 }, "0x0603": { "attribute_name": "ac_current_divisor", "value": 1000 } }, "unsupported_attributes": { "0x0300": { "attribute_name": "ac_frequency" }, "0x0601": { "attribute_name": "ac_voltage_divisor" }, "0x0302": { "attribute_name": "ac_frequency_max" }, "0x0600": { "attribute_name": "ac_voltage_multiplier" }, "0x0604": { "attribute_name": "ac_power_multiplier" }, "0x0605": { "attribute_name": "ac_power_divisor" }, "0x0401": { "attribute_name": "ac_frequency_divisor" }, "0x0507": { "attribute_name": "rms_voltage_max" }, "0x0400": { "attribute_name": "ac_frequency_multiplier" }, "0x0000": { "attribute_name": "measurement_type" }, "0x050a": { "attribute_name": "rms_current_max" }, "0x050d": { "attribute_name": "active_power_max" }, "0x0403": { "attribute_name": "power_divisor" }, "0x050f": { "attribute_name": "apparent_power" }, "0x0402": { "attribute_name": "power_multiplier" } } }, "0xe000": { "endpoint_attribute": "tuya_is_pita_0", "attributes": {}, "unsupported_attributes": {} }, "0xe001": { "endpoint_attribute": "tuya_external_switch_type", "attributes": { "0xd030": { "attribute_name": "external_switch_type", "value": 0 } }, "unsupported_attributes": {} } }, "out_clusters": { "0x000a": { "endpoint_attribute": "time", "attributes": {}, "unsupported_attributes": {} }, "0x0019": { "endpoint_attribute": "ota", "attributes": {}, "unsupported_attributes": { "0xfffe": { "attribute_name": "attr_reporting_status" } } } } } } } } ```

Logs

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

Custom quirk

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

Additional information

No response

MattWestb commented 11 months ago

This device is one normal simple switch and have no power measuring if looking on Z2M commits https://github.com/Koenkk/zigbee-herdsman-converters/commit/4e69fea28832205ddf5c5cd3d90f4545ff58f9e6#diff-7ae23d3c13c2d7f7e37106590684c791aba8093f8be813b7c74a4f1484017c3bL1961-L1972. If having other information pleas posting it in the issue.

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