zha-device-handlers icon indicating copy to clipboard operation
zha-device-handlers copied to clipboard

[Device Support Request] TS0601 _TZE200_upagmta9

Open MStapelfeldt opened this issue 1 year ago • 17 comments

Problem description

I got a Zigbee device (https://de.aliexpress.com/item/1005004666251263.html) which is regonized, but without Values. I tried to add signature to ts0601_sensor.py but still no luck to get it working.

Solution description

Help with integration

Screenshots/Video

Screenshots/Video

[Paste/upload your media here]

Device signature

Device 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": "0x0302",
      "input_clusters": [
        "0x0000",
        "0x0001",
        "0x0004",
        "0x0005",
        "0x0402",
        "0x0408",
        "0xef00"
      ],
      "output_clusters": [
        "0x000a",
        "0x0019"
      ]
    }
  },
  "manufacturer": "_TZE200_upagmta9",
  "model": "TS0601",
  "class": "ts0601_sensor.TuyaSoilSensor"
}

Diagnostic information

Diagnostic information
{
  "home_assistant": {
    "installation_type": "Home Assistant OS",
    "version": "2023.9.0",
    "dev": false,
    "hassio": true,
    "virtualenv": false,
    "python_version": "3.11.5",
    "docker": true,
    "arch": "x86_64",
    "timezone": "Europe/Berlin",
    "os_name": "Linux",
    "os_version": "6.1.45",
    "supervisor": "2023.08.3",
    "host_os": "Home Assistant OS 10.5",
    "docker_version": "23.0.6",
    "chassis": "embedded",
    "run_as_root": true
  },
  "custom_components": {
    "hacs": {
      "version": "1.32.1",
      "requirements": [
        "aiogithubapi>=22.10.1"
      ]
    },
  },
  "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",
      "universal_silabs_flasher"
    ],
    "requirements": [
      "bellows==0.36.2",
      "pyserial==3.5",
      "pyserial-asyncio==0.6",
      "zha-quirks==0.0.103",
      "zigpy-deconz==0.21.0",
      "zigpy==0.57.1",
      "zigpy-xbee==0.18.1",
      "zigpy-zigate==0.11.0",
      "zigpy-znp==0.11.4",
      "universal-silabs-flasher==0.0.13"
    ],
    "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": "_uzg-01._tcp.local.",
        "name": "uzg-01*"
      },
      {
        "type": "_slzb-06._tcp.local.",
        "name": "slzb-06*"
      }
    ],
    "is_built_in": true
  },
  "data": {
    "ieee": "**REDACTED**",
    "nwk": 14628,
    "manufacturer": "_TZE200_upagmta9",
    "model": "TS0601",
    "name": "_TZE200_upagmta9 TS0601",
    "quirk_applied": true,
    "quirk_class": "ts0601_sensor.TuyaSoilSensor",
    "manufacturer_code": 4417,
    "power_source": "Battery or Unknown",
    "lqi": 196,
    "rssi": -51,
    "last_seen": "2023-09-08T23:21:45",
    "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": "0x0302",
          "input_clusters": [
            "0x0000",
            "0x0001",
            "0x0004",
            "0x0005",
            "0x0402",
            "0x0408",
            "0xef00"
          ],
          "output_clusters": [
            "0x000a",
            "0x0019"
          ]
        }
      },
      "manufacturer": "_TZE200_upagmta9",
      "model": "TS0601"
    },
    "active_coordinator": false,
    "entities": [
      {
        "entity_id": "sensor.schlafzimmer_temperatur_battery",
        "name": "_TZE200_upagmta9 TS0601"
      },
      {
        "entity_id": "sensor.schlafzimmer_temperatur_soil_moisture",
        "name": "_TZE200_upagmta9 TS0601"
      },
      {
        "entity_id": "sensor.schlafzimmer_temperatur_temperature",
        "name": "_TZE200_upagmta9 TS0601"
      }
    ],
    "neighbors": [],
    "routes": [],
    "endpoint_names": [
      {
        "name": "TEMPERATURE_SENSOR"
      }
    ],
    "user_given_name": "Schlafzimmer Temperatur",
    "device_reg_id": "92956b01bebc87d0228602992419c38a",
    "area_id": "schlafzimmer",
    "cluster_details": {
      "1": {
        "device_type": {
          "name": "TEMPERATURE_SENSOR",
          "id": 770
        },
        "profile_id": 260,
        "in_clusters": {
          "0x0000": {
            "endpoint_attribute": "basic",
            "attributes": {
              "0x0001": {
                "attribute_name": "app_version",
                "value": 72
              }
            },
            "unsupported_attributes": {}
          },
          "0x0004": {
            "endpoint_attribute": "groups",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0005": {
            "endpoint_attribute": "scenes",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0xef00": {
            "endpoint_attribute": "tuya_manufacturer",
            "attributes": {
              "0xef00": {
                "attribute_name": "mcu_version",
                "value": "1.0.0"
              }
            },
            "unsupported_attributes": {}
          },
          "0x0402": {
            "endpoint_attribute": "temperature",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0408": {
            "endpoint_attribute": "soil_moisture",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0001": {
            "endpoint_attribute": "power",
            "attributes": {
              "0x0033": {
                "attribute_name": "battery_quantity",
                "value": 2
              },
              "0x0034": {
                "attribute_name": "battery_rated_voltage",
                "value": 15
              },
              "0x0031": {
                "attribute_name": "battery_size",
                "value": 4
              }
            },
            "unsupported_attributes": {}
          }
        },
        "out_clusters": {
          "0x0019": {
            "endpoint_attribute": "ota",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x000a": {
            "endpoint_attribute": "time",
            "attributes": {},
            "unsupported_attributes": {}
          }
        }
      }
    }
  }
}

Logs

Logs
[Paste the logs here]

Custom quirk

Custom quirk
[Paste your custom quirk here]

Additional information

No response

MStapelfeldt avatar Sep 08 '23 21:09 MStapelfeldt

Attach the signature without the local quirk applied. I would try to add it in this quirk: https://github.com/zigpy/zha-device-handlers/blob/7745c838f98ac126d64ae4edad62556763b13d2e/zhaquirks/tuya/ts0601_sensor.py#L126

javicalle avatar Sep 09 '23 07:09 javicalle

@dawrut You shall open one issue at https://www.zigbee2mqtt.io/advanced/support-new-devices/01_support_new_devices.html as you is running Z2M and not ZHA.

MattWestb avatar Sep 12 '23 14:09 MattWestb

Attach the signature without the local quirk aoolied. I would try to add it in this quirk:

https://github.com/zigpy/zha-device-handlers/blob/7745c838f98ac126d64ae4edad62556763b13d2e/zhaquirks/tuya/ts0601_sensor.py#L126

Dammit, I wrote answer but somehow it wasn't submitted.

I added the signiture to ts0601_sensor.py, the line you suggestet and also tried all other signature definitions, without luck.

MStapelfeldt avatar Sep 12 '23 15:09 MStapelfeldt

hey ;)

Same issue for me ! with ZHA and signature in ts0601_sensor.py

How can I help?

AlexNoop avatar Sep 16 '23 05:09 AlexNoop

https://de.aliexpress.com/item/1005005627336725.html?spm=a2g0o.order_list.order_list_main.5.17da5c5fF6CUMQ&gatewayAdapt=glo2deu Same issue here. I tried. ("_TZE200_upagmta9", "TS0601"), in class TuyaTempHumiditySensor_Square(CustomDevice): """Custom device representing tuya temp and humidity sensor with e-ink screen."""

z2m

Stevelande avatar Oct 04 '23 13:10 Stevelande

Anyone managed to get the TS0601 _TZE204_upagmta9 working in ZHA?

this is the small tuya zigbee temperature and humidity sensor with screen.

01fr avatar Dec 20 '23 06:12 01fr

For zigbee2mqtt they seem to have solved this issue. See https://github.com/Koenkk/zigbee2mqtt/issues/19137 According to this comment https://github.com/Koenkk/zigbee2mqtt/issues/19137#issuecomment-1810843051 the Tuya device requires an extra command send from the controller after the interview:

  • if you issue a cluster 0xef00 command 0x03 the device send all values and goes to sleep.
  • send a temperature F° Command from frontend UI, which is confirmed on screen sensor switching to °F, then sending the cluster 0xef00 command 0x03 the sensor goes to sleep

Not sure how to implement this in zha.

ewoudwerkman avatar Dec 20 '23 08:12 ewoudwerkman

We need the help of the experts. Can someone help? :)

01fr avatar Dec 23 '23 19:12 01fr

I wasn't able to get it working and the extra command after interview requires more knowledge then I have. (I'm just a regular C++/PHP/VB/C#/Ruby developer, no phyton 😅) I brought some other devices without screen which was more easy and will look to buy known supported once if I need some with display.

MStapelfeldt avatar Dec 23 '23 19:12 MStapelfeldt

Have the same little temp/humidity sensor. Can pair it but then it freezes up and no values come in. Sucks as it's inexpensive, I hope the next release of ZHA can get it working, it looks like there's a ton of work on TUYA devices over on the "other side" that ZHA can pull from.

RoboKaren avatar Dec 31 '23 04:12 RoboKaren

It would be great to have support for this device given the fact this it has native support for Zigbee.

Adding in to ZHA is not an issue, no entities showing is the problem

image

JordanAco1 avatar Jan 04 '24 11:01 JordanAco1

@javicalle The device 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": "_TZE204_upagmta9", "model": "TS0601", "class": "zigpy.device.Device" }

dualmacops avatar Jan 25 '24 13:01 dualmacops

For zigbee2mqtt they seem to have solved this issue. See Koenkk/zigbee2mqtt#19137 According to this comment Koenkk/zigbee2mqtt#19137 (comment) the Tuya device requires an extra command send from the controller after the interview:

  • if you issue a cluster 0xef00 command 0x03 the device send all values and goes to sleep.

Haven't tested this at all, but linking my comment from the other thread (for the same exact device): https://github.com/zigpy/zha-device-handlers/issues/2694#issuecomment-1916001737

TheJulianJES avatar Jan 30 '24 03:01 TheJulianJES

same issue here. is there any hope for a fix? image

OZub avatar Feb 23 '24 12:02 OZub

@dmulcahey should be one of the people responsible. But there is no one assigned to this issue. So I don't have much hope they try to change it...

MStapelfeldt avatar Feb 23 '24 14:02 MStapelfeldt

Given that there is solution to integrate these thermometers in HA, has anyone found any use for them? Is it possible to convert them from Zigbeee to bluetooth?

01fr avatar Apr 21 '24 14:04 01fr

has anyone found any use for them?

well… they are thermometers… they report temperature… what other use can they be?

MacDada avatar Apr 21 '24 14:04 MacDada

Just wondering if anyone managed to get these devices working on ZHA?

01fr avatar Jul 28 '24 09:07 01fr