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
720 stars 669 forks source link

[Device Support Request] Tuya 214C Ultrasonic water meter with valve #3301

Open netsoft-ruidias opened 1 month ago

netsoft-ruidias commented 1 month ago

Problem description

This is a Smart Ultrasonic Water Flow Meter with Tuya Zigbee App Control. The device can be paired with ZHA, but no sensors are available.

The device: https://www.alibaba.com/product-detail/Smart-Ultrasonic-Water-Flow-Meter-With_1600722839075.html

Device model: "TS0601" Manufacturer: "_TZE200_vuwtqx0t"

Solution description

Add support for this device

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": 4417, "maximum_buffer_size": 66, "maximum_incoming_transfer_size": 66, "server_mask": 10752, "maximum_outgoing_transfer_size": 66, "descriptor_capability_field": 0 }, "endpoints": { "1": { "profile_id": "0x0104", "device_type": "0x0051", "input_clusters": [ "0x0000", "0x0004", "0x0005", "0xef00" ], "output_clusters": [ "0x000a", "0x0019" ] } }, "manufacturer": "_TZE200_vuwtqx0t", "model": "TS0601", "class": "zigpy.device.Device" } ```

Additional information

No response

NdS-Research-Facilities commented 3 weeks ago

same for https://www.aliexpress.com/item/1005007353486146.html 213E device is similar:

NodeDescriptor(
    logical_type=<LogicalType.EndDevice: 2>,
    complex_descriptor_available=0,
    user_descriptor_available=0,
    reserved=0,
    aps_flags=0,
    frequency_band=<FrequencyBand.Freq2400MHz: 8>,
    mac_capability_flags=<MACCapabilityFlags.AllocateAddress: 128>,
    manufacturer_code=4417,
    maximum_buffer_size=66,
    maximum_incoming_transfer_size=66,
    server_mask=10752,
    maximum_outgoing_transfer_size=66,
    descriptor_capability_field=<DescriptorCapability.NONE: 0>,
    *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
NdS-Research-Facilities commented 3 weeks ago
"data": {
    "ieee": "**REDACTED**",
    "nwk": 55451,
    "manufacturer": "_TZE200_zlwr0raf",
    "model": "TS0601",
    "name": "_TZE200_zlwr0raf TS0601",
    "quirk_applied": false,
    "quirk_class": "zigpy.device.Device",
    "quirk_id": null,
    "manufacturer_code": 4417,
    "power_source": "Battery or Unknown",
    "lqi": 112,
    "rssi": -72,
    "last_seen": "2024-08-20T21:03:01",
    "available": true,
    "device_type": "EndDevice",
    "signature": {
      "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.EndDevice: 2>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.AllocateAddress: 128>, manufacturer_code=4417, maximum_buffer_size=66, maximum_incoming_transfer_size=66, server_mask=10752, maximum_outgoing_transfer_size=66, descriptor_capability_field=<DescriptorCapability.NONE: 0>, *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": "0x0051",
          "input_clusters": [
            "0x0000",
            "0x0004",
            "0x0005",
            "0xef00"
          ],
          "output_clusters": [
            "0x000a",
            "0x0019"
          ]
        }
      },
      "manufacturer": "_TZE200_zlwr0raf",
      "model": "TS0601"
    },
    "active_coordinator": false,
    "entities": [
      {
        "entity_id": "update.tze200_zlwr0raf_ts0601_firmware",
        "name": "_TZE200_zlwr0raf TS0601"
      }
    ]
NdS-Research-Facilities commented 3 weeks ago

part of solution might be here: https://github.com/Koenkk/zigbee2mqtt/issues/21255