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
777 stars 703 forks source link

[Device Support Request] TS0601 _TZE204_9mjy74mp (Moes TRV) #3406

Open PedroKTFC opened 1 month ago

PedroKTFC commented 1 month ago

Problem description

I've just bought a Moes ZigBee TRV (see here), However, when I try to add it to my ZHA ZigBee network, although it's discovered and added to the network as other ZigBee devices, the only entity that's available for it is update.name_firmware. I then discovered custom quirks and copied the file ts0601_trv.py and edited it to add this line for my TRV to the MoesHY368_Type1 thermostat class:

    ("_TZE204_9mjy74mp", "TS0601"),

This allowed me to see the current and set to temperatures of my TRV (which also update) and has an on/off switch. However, although it’s recognised as a thermostat, I can’t change the set to temperature, can’t switch it on or off and can’t change the mode.

Note I tried every other thermostat class in the file and they gave worse results.

Clearly the quirk needs updating for this thermostat. There's some support for it in zigbee2mqtt (see here} but I've no idea how to update the quirk (happy to try if someone can point me to a detailed guide).

Solution description

New or updated quirk for the valve.

Screenshots/Video

Screenshots/Video [Paste/upload your media here]

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": "0x0301", "input_clusters": [ "0x0000", "0x0001", "0x0004", "0x0005", "0x0006", "0x0201", "0x0204", "0xef00" ], "output_clusters": [ "0x000a", "0x0019" ] } }, "manufacturer": "_TZE204_9mjy74mp", "model": "TS0601", "class": "ts0601_trv.MoesHY368_Type1" }```

Diagnostic information

Diagnostic information ```json Unfortunately it's too long to paste here ```

Logs

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

Custom quirk

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

Additional information

No response

PedroKTFC commented 1 month ago

By complete luck I have found a quirk that provides some support for this valve. It allows me to change the temperature setting (which is really all I need) although it doesn't seem a perfect fit. I may try and have a look to see how to improve it (although the learning curve is Matterhorn steep!).

You can find it here and just add a row for this device to the MODELS_INFO section.