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
683 stars 634 forks source link

[Device Support Request] TS0601 _TZE200_upagmta9 #2577

Open MStapelfeldt opened 10 months ago

MStapelfeldt commented 10 months ago

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 ```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=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 ```json { "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=, 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": "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 ```python [Paste the logs here] ```

Custom quirk

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

Additional information

No response

javicalle commented 10 months ago

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

MattWestb commented 9 months ago

@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.

MStapelfeldt commented 9 months ago

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.

AlexNoop commented 9 months ago

hey ;)

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

How can I help?

Stevelande commented 9 months ago

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

01fr commented 6 months ago

Anyone managed to get the TS0601 _TZE204_upagmta9 working in ZHA?

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

ewoudwerkman commented 6 months ago

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:

Not sure how to implement this in zha.

01fr commented 6 months ago

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

MStapelfeldt commented 6 months ago

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.

RoboKaren commented 6 months ago

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.

JordanAco1 commented 6 months ago

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

dualmacops commented 5 months ago

@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" }

TheJulianJES commented 5 months ago

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

OZub commented 4 months ago

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

MStapelfeldt commented 4 months ago

@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...

01fr commented 2 months ago

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?

MacDada commented 2 months ago

has anyone found any use for them?

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