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] Tesla Smart Thermostatic Valve _TZE200_husqqvux TS0601 #1072

Closed ad1k4h closed 2 years ago

ad1k4h commented 2 years ago

Is your feature request related to a problem? Please describe. A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

I'm trying to add _TZE200_husqqvux TS0601 (Tesla Smart Thermostatic Valve) and cant see any functions like Climate entity. (No entities at all) - I Tried to write in the files by hand, but not seems to work.

Describe the solution you'd like A clear and concise description of what you want to happen. Plug and Play support

Device signature - this can be acquired by removing the device from ZHA and pairing it again from the add devices screen. Be sure to add the entire content of the log panel after pairing the device to a code block below this line.

{ "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=4098, maximum_buffer_size=82, maximum_incoming_transfer_size=82, server_mask=11264, maximum_outgoing_transfer_size=82, 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": 260, "device_type": "0x0051", "in_clusters": [ "0x0000", "0x0004", "0x0005", "0xef00" ], "out_clusters": [ "0x000a", "0x0019" ] } }, "manufacturer": "_TZE200_husqqvux", "model": "TS0601", "class": "zigpy.device.Device" }

Additional context Add any other context or screenshots about the feature request here.

MattWestb commented 2 years ago

I was adding 2 types of Tesla TSL-TRV-GS361A but with one other model ID for 2 weeks ago but your ID is not the same.

How do your TRV looks like ? Is it the same design ad the "old" one ?

Take one look on the tuya TRV Matrix https://github.com/zigpy/zigpy/discussions/653#discussioncomment-314395.

ad1k4h commented 2 years ago

I having thisimage

MattWestb commented 2 years ago

OK its one TSL-TRV-TV01ZG = one whit label of Zonnsmart TV01-ZG.

I adding it in the quirk and you can testing if its working OK.

I need some minutes :-))

ad1k4h commented 2 years ago

Thank you so much ^^ tell me if i can try. :)

MattWestb commented 2 years ago

Configuring local quirks in HA https://github.com/zigpy/zha-device-handlers/discussions/693#discussioncomment-857274 and adding the unziped valve.py in the local quirk folder and restarting HA.

If all is OK you is getting the name of the quirk in the device signature and device card like this Quirk: zhaquirks.tuya.valve.SiterwellGS361_Type1 but with your device type (and not my Siterwell). valve.zip.

Pleas reporting back how it working.

ad1k4h commented 2 years ago

Dude! Works like charm! Thank you!

MattWestb commented 2 years ago

Great !!

I making one PR for adding it in ZHA so it being in the next HA release if all is going well.

Then you is updating HA that have the quirk integrated you shall deleting the files in your local quirk folder for not getting problems later then the quirk is being updated in the future.

MattWestb commented 2 years ago

PR is done and waiting to being merged in dev and i have updating the tuya TRV matrix with your device :-))

ad1k4h commented 2 years ago

Thank you so much! Added both of my valves and works without any issues, so i can confirm, this is it. ;)

MattWestb commented 2 years ago

Its merged to the dev now so more then likely is being in the next release of HA :-))

mbrada commented 2 years ago

Thank you so much! Added both of my valves and works without any issues, so i can confirm, this is it. ;)

I have the same valve and the quirk helps :-), thx the author. I can now control the requested temperature but in HA the room temperature from thermostat sensor isn't updated. It stays on the same value from the moment I have added the device into HA. Can someone confirm the same behaviour?

MattWestb commented 2 years ago

Great that is working with your TRVs !!

I think its good asking in the original thread that was adding the quirk then the coder have one and is knowing how its working under the hood. https://github.com/zigpy/zha-device-handlers/pull/983

Also hi is very active implanting the same TRV in Z2M and have founding more functions that hi perhaps also implanting in the ZHA quirk then hi have time.

It can that the Tesla firmware is working different but is not very likely but till possible.

JosefKrieglstein commented 2 years ago

Hi, I bought 10 TESLA SMART devices, 5 of them are like above ("device_type": "0x0051"), 5 have different "device_type": "0x0301"

0x0051 don't show current temperature and battery, 0x0301 does.

Could it be updated that both will show also inputs "0x0201" and "0x0204" ?

Thanks

{ "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=4098, maximum_buffer_size=82, maximum_incoming_transfer_size=82, server_mask=11264, maximum_outgoing_transfer_size=82, 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": 260, "device_type": "0x0051", "in_clusters": [ "0x0000", "0x0004", "0x0005", "0xef00" ], "out_clusters": [ "0x000a", "0x0019" ] } }, "manufacturer": "_TZE200_husqqvux", "model": "TS0601", "class": "zigpy.device.Device" }

{ "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=4098, maximum_buffer_size=82, maximum_incoming_transfer_size=82, server_mask=11264, maximum_outgoing_transfer_size=82, 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": 260, "device_type": "0x0301", "in_clusters": [ "0x0000", "0x0001", "0x0004", "0x0005", "0x0201", "0x0204", "0xef00" ], "out_clusters": [ "0x000a", "0x0019" ] } }, "manufacturer": "_TZE200_husqqvux", "model": "TS0601", "class": "valve.ZonnsmartTV01_ZG" }

MattWestb commented 2 years ago

Your device have not trigger ZHA to loading the quirk:

"class": "zigpy.device.Device"

You signatures is good but then comparing them is one modified (extra / deleted caters) and i cant using it for saying way is not loading.

Can you pleas repairing the device with debug enabled so can getting the "raw data" the device is sending then its pairing.

And pleas put ``` on the line before and after the code block so its not losing the formatting.

Then the quirk is loading its changing the device type to thermostat an adding the extra cluster that your is missing than all is working as expected.

Edit: The missing / added line is 25 ;-)

MattWestb commented 2 years ago

Sorry for asking for more testing but its looks that ZHA is have getting problem adding more devices in one row and is not initiating them OK https://github.com/zigpy/zigpy/issues/809 and your problem looks being the same the device is paired but the system is not doing all things OK and the quirk is not being loaded for the device that is not OK.

Can you deleting the not OK devices ("class": "zigpy.device.Device") and then restarting HA and trying adding the device and see if its being OK = "class": "valve.ZonnsmartTV01_ZG" ?

If its possible also making debug logging then doing the paring can help the devs finding the problem.

And what coordinator is you using ? TI, deCONZ or EZSP ?

JosefKrieglstein commented 2 years ago

No problem, I don't know to which thread I should answer... It is strange. I found another issue, but no time to document it. I have GW: Silvercrest (originally TUYA) with this hack: https://paulbanks.org/projects/lidl-zigbee/ha.html EZSP. I deleted not working devices many times ... In total I have 10, they are bought 2 times in Czech Republic so it could have different FW (on display it looks same FW version). I have last two not working as I described. I'm working with device 5c:02:72:ff:fe:fe:cf:e2, it was pair 3 times with 0x0051, and 4th pair with 0x0301 device ID. But with different icon in overview 5c-02-72-ff-fe-fe-cf-e2 left device like 8 others, right device strange. I did delete + pair again without change. another issue is that it not changing temperatures, standby/heat button working correctly, adjust of temperature also, but reading temperature and battery is from pairing time, it never change. This reading issue is valid for all my devices! I'm not at home to try it again. I'm begginer with HA. I changed configuration to debug as you described (it was last think at home what i did), and now button load full home assistant log do nothing log - ZigBee .

MattWestb commented 2 years ago

O one tuya TBGW that we was hacking nicely !!! ( 12 points to Italy / Denmark / Sweden / Austria and Australia doing that !!) Do you have updating the firmware in the Zigbee module or is it running the original tuya firmware ?

If the device is paring OK and ZHA is configurating it OK you shall getting the TRV with heating and off like in your left picture and you is having "class": "valve.ZonnsmartTV01_ZG" in the device signature and on the device card.

Then ZHA is making it wrong is the quirk that is needed for "transforming" the device to one "normal" TRV is not loaded OK or not working OK and you is getting the original type 0x0051 and its looks like the right picture and is getting "class": "zigpy.device.Device" in the device signature and device card and also the unknown cluster 61184 errors.

Then its working OK the quirk is changing it to one 0x0301 type and all shall working OK.

Then you have time deleting the device from the device card and waiting one minute and then trying pairing it a gen (ZHA is re sending the delete command more time so if you is too fast you can getting it half added and not working OK). If its not working deleting it and restarting HA so its being clean from the old settings then starting and then trying pairing it.

And one more question is the good working TRVs reporting the room temperature OK (I think they is reporting every hour if not changing some settings on them) then one user looks having problem with that ?

For my is no problem posting in the old device support thread but best is open one new but its up to the maintainer to moderating that so better staying here for the moment.

But dont waiting toooooo long getting your last TV working then its starting being cold outside ;-))

radorado31 commented 2 years ago

Its merged to the dev now so more then likely is being in the next release of HA :-))

Hello Matt. Please how do i know if i already have this update in my HA? what actually needs to be updated... the Core and with this the ZHA integration is also automatically updated? Sorry for that basic question, i just dont know whats the flow and how things work in this area. Thats why i would rather wait for official update then trying to use "quirks" which might be complicated for me

thank you

MattWestb commented 2 years ago

The PR is merged in to ZHA dev and is also merged in HA 2021-11 beta and is being released as GA (General Availability) on 3 of November.

So i think is easiest waiting some more days and installing the GA instead and not trying out the beta if you is not having very cold in your home then is beta for you ;-))

radorado31 commented 2 years ago

Great, thanks for the good news Matt , i will wait few more days.... Just for my understanding of the flow - so if I update the HA (i guess the "core" ?) ,this will always automatically upgrade my integrations, including ZHA? Or how to know which version of ZHA am I running? I already did try some google search by my self to get the answer how things work, but no luck :/

Thank you for answering my rookie questions :)

MattWestb commented 2 years ago

Correct !!

HA is Home Assistant Core and the release notes is shoeing the "Bumped" version of ZHA in it (use F3 for seartching for ZHA and you is finding it if expanding all changes, the same for the GA release).

Then you can clicking on the issue link to the ZHA bump and there you gave the release note for ZHA.

The same for ZHA quirks and you can look wot is included in the Reese. https://github.com/zigpy/zha-device-handlers/releases/tag/0.0.63

radorado31 commented 2 years ago

cool, I appreciate this comprehensive info, finally got some picture how it works in background...was already afraid that i will need to update the FW on my zigbee usb dongle and re-pair all devices, but thankfully not :) thank you and have a nice day (y)

radorado31 commented 2 years ago

Hello All

I confirm that after latest release of HA, the TZE200 is added into ZHA together with current temperature & target temperature. However the problem with not reading current temperature persists. Was anybody able to make it work? I have found out that it at least always report the current temperature at the moment me when device is added to ZHA. But after that it just show the same temp

ress23 commented 2 years ago

Hello All

I confirm that after latest release of HA, the TZE200 is added into ZHA together with current temperature & target temperature. However the problem with not reading current temperature persists. Was anybody able to make it work? I have found out that it at least always report the current temperature at the moment me when device is added to ZHA. But after that it just show the same temp

I have the same issue with my Moes TV01.

Would you mind testing one thing? If you set a temp offset (on the TRV, press and hold Menu button, then select offset), is the current temp updated in HA? This is the only way I've been able to get data from the TRV to HA.

JosefKrieglstein commented 2 years ago

Hi, Yes you're right, when I adjust offset, TRV send new current temperature value. But it should be same periodic like target temperature value. Current state: "current temperature" and "heating" values are not updated, "current temperature" value is updated periodically. BR Josef

ress23 commented 2 years ago

Right, exact same issue as me and @radorado31 then.

Seems like zhaquirks.tuya.ts0601_trv.ZonnsmartTV01_ZG is causing the problem.

mirecekd commented 2 years ago

check my answer and simple PR here:

https://community.home-assistant.io/t/moes-tv01-trv-temp-sensor-issues/356903/4

I confirm that after latest release of HA, the TZE200 is added into ZHA together with current temperature & target temperature. However the problem with not reading current temperature persists. Was anybody able to make it work? I have found out that it at least always report the current temperature at the moment me when device is added to ZHA. But after that it just show the same temp