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
749 stars 687 forks source link

[Device Support Request] TS0601 _TZE200_h4cgnbzg #1901

Closed chrisius89 closed 3 months ago

chrisius89 commented 1 year ago

Is your feature request related to a problem? Please describe. I've bought multiple trvs "hama smart thermostat". Two of them do not appear as trv in ZHA and are only of type "device".

After modifiying ts0601_trv_sas.py (according to https://github.com/zigpy/zha-device-handlers/issues/819#issuecomment-800488953) the trv is recognized and does show me current and wanted temperature, but im not able to control ist e.g. turn it off or modifiy the temperature.

Here are the zigbee signatures:

Device signature working ```yaml { "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=4098, maximum_buffer_size=82, maximum_incoming_transfer_size=82, server_mask=11264, maximum_outgoing_transfer_size=82, 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": 260, "device_type": "0x0301", "in_clusters": [ "0x0000", "0x0001", "0x0004", "0x0005", "0x0201", "0xef00" ], "out_clusters": [ "0x0001", "0x000a", "0x0019", "0x0201" ] } }, "manufacturer": "_TZE200_yw7cahqs", "model": "TS0601", "class": "zhaquirks.tuya.ts0601_trv_sas.Thermostat_TZE200_c88teujp" } ```
Device signature NOT working ```yaml { "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": 260, "device_type": "0x0301", "in_clusters": [ "0x0000", "0x0001", "0x0004", "0x0005", "0x0201", "0xef00" ], "out_clusters": [ "0x0001", "0x000a", "0x0019", "0x0201" ] } }, "manufacturer": "_TZE200_h4cgnbzg", "model": "TS0601", "class": "zhaquirks.tuya.ts0601_trv_sas.Thermostat_TZE200_c88teujp" } ```
Diagnostic information ```yaml { "home_assistant": { "installation_type": "Home Assistant Container", "version": "2022.9.7", "dev": false, "hassio": false, "virtualenv": false, "python_version": "3.10.5", "docker": true, "arch": "armv7l", "timezone": "Europe/Berlin", "os_name": "Linux", "os_version": "5.15.61-v7l+", "run_as_root": true }, "custom_components": { "wemportal": { "version": "1.3.9", "requirements": [ "scrapyscript==1.1.0", "scrapy==2.6.3", "fuzzywuzzy==0.18.0" ] }, "xiaomi_cloud_map_extractor": { "version": "v2.2.0", "requirements": [ "pillow", "pybase64", "python-miio", "requests", "pycryptodome" ] } }, "integration_manifest": { "domain": "zha", "name": "Zigbee Home Automation", "config_flow": true, "documentation": "https://www.home-assistant.io/integrations/zha", "requirements": [ "bellows==0.33.1", "pyserial==3.5", "pyserial-asyncio==0.6", "zha-quirks==0.0.79", "zigpy-deconz==0.18.1", "zigpy==0.50.3", "zigpy-xbee==0.15.0", "zigpy-zigate==0.9.2", "zigpy-znp==0.8.2" ], "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" ] } ], "codeowners": [ "@dmulcahey", "@adminiuga", "@puddly" ], "zeroconf": [ { "type": "_esphomelib._tcp.local.", "name": "tube*" }, { "type": "_zigate-zigbee-gateway._tcp.local.", "name": "*zigate*" } ], "dependencies": [ "file_upload" ], "after_dependencies": [ "onboarding", "usb", "zeroconf" ], "iot_class": "local_polling", "loggers": [ "aiosqlite", "bellows", "crccheck", "pure_pcapy3", "zhaquirks", "zigpy", "zigpy_deconz", "zigpy_xbee", "zigpy_zigate", "zigpy_znp" ], "is_built_in": true }, "data": { "ieee": "**REDACTED**", "nwk": 3161, "manufacturer": "_TZE200_h4cgnbzg", "model": "TS0601", "name": "_TZE200_h4cgnbzg TS0601", "quirk_applied": true, "quirk_class": "zhaquirks.tuya.ts0601_trv_sas.Thermostat_TZE200_c88teujp", "manufacturer_code": 4417, "power_source": "Battery or Unknown", "lqi": 183, "rssi": -71, "last_seen": "2022-11-06T21:46:41", "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": 260, "device_type": "0x0301", "in_clusters": [ "0x0000", "0x0001", "0x0004", "0x0005", "0x0201", "0xef00" ], "out_clusters": [ "0x0001", "0x000a", "0x0019", "0x0201" ] } } }, "active_coordinator": false, "entities": [ { "entity_id": "sensor.heizung_wohnzimmer_links_battery", "name": "_TZE200_h4cgnbzg TS0601" }, { "entity_id": "climate.heizung_wohnzimmer_links_thermostat", "name": "_TZE200_h4cgnbzg TS0601" }, { "entity_id": "sensor.heizung_wohnzimmer_links_thermostathvacaction", "name": "_TZE200_h4cgnbzg TS0601" } ], "neighbors": [], "endpoint_names": [ { "name": "THERMOSTAT" } ], "user_given_name": "Heizung Wohnzimmer Links", "device_reg_id": "e0e4ddbadbd01d5b3c3dfe189a9194b8", "area_id": "wohnzimmer", "cluster_details": { "1": { "device_type": { "name": "THERMOSTAT", "id": 769 }, "profile_id": 260, "in_clusters": { "0x0000": { "endpoint_attribute": "basic", "attributes": {}, "unsupported_attributes": {} }, "0x0004": { "endpoint_attribute": "groups", "attributes": {}, "unsupported_attributes": {} }, "0x0005": { "endpoint_attribute": "scenes", "attributes": {}, "unsupported_attributes": {} }, "0xef00": { "endpoint_attribute": "tuya_manufacturer", "attributes": { "0x0165": { "attribute_name": "system_mode", "value": 1 }, "0x0267": { "attribute_name": "occupied_heating_setpoint", "value": 180 }, "0x0266": { "attribute_name": "local_temperature", "value": 187 }, "0x0569": { "attribute_name": "battery_state", "value": 0 } }, "unsupported_attributes": {} }, "0x0001": { "endpoint_attribute": "power", "attributes": { "0x0021": { "attribute_name": "battery_percentage_remaining", "value": 200 } }, "unsupported_attributes": { "0x0020": { "attribute_name": "battery_voltage" }, "0x0021": { "attribute_name": "battery_percentage_remaining" }, "0x0031": { "attribute_name": "battery_size" }, "0x0033": { "attribute_name": "battery_quantity" } } }, "0x0201": { "endpoint_attribute": "thermostat", "attributes": { "0x0000": { "attribute_name": "local_temperature", "value": 1870 }, "0x0012": { "attribute_name": "occupied_heating_setpoint", "value": 1800 }, "0x0015": { "attribute_name": "min_heat_setpoint_limit", "value": 500 }, "0x0016": { "attribute_name": "max_heat_setpoint_limit", "value": 3000 }, "0x001b": { "attribute_name": "ctrl_sequence_of_oper", "value": 2 }, "0x001c": { "attribute_name": "system_mode", "value": 4 }, "0x001e": { "attribute_name": "running_mode", "value": 4 } }, "unsupported_attributes": { "0x0000": { "attribute_name": "local_temperature" }, "0x0002": { "attribute_name": "occupancy" }, "0x0003": { "attribute_name": "abs_min_heat_setpoint_limit" }, "0x0004": { "attribute_name": "abs_max_heat_setpoint_limit" }, "0x0005": { "attribute_name": "abs_min_cool_setpoint_limit" }, "0x0006": { "attribute_name": "abs_max_cool_setpoint_limit" }, "0x0007": { "attribute_name": "pi_cooling_demand" }, "0x0008": { "attribute_name": "pi_heating_demand" }, "0x0011": { "attribute_name": "occupied_cooling_setpoint" }, "0x0012": { "attribute_name": "occupied_heating_setpoint" }, "0x0013": { "attribute_name": "unoccupied_cooling_setpoint" }, "0x0014": { "attribute_name": "unoccupied_heating_setpoint" }, "0x0017": { "attribute_name": "min_cool_setpoint_limit" }, "0x0018": { "attribute_name": "max_cool_setpoint_limit" }, "0x001c": { "attribute_name": "system_mode" }, "0x001e": { "attribute_name": "running_mode" }, "0x0029": { "attribute_name": "running_state" } } } }, "out_clusters": { "0x000a": { "endpoint_attribute": "time", "attributes": {}, "unsupported_attributes": {} }, "0x0019": { "endpoint_attribute": "ota", "attributes": {}, "unsupported_attributes": {} }, "0x0001": { "endpoint_attribute": "power", "attributes": { "0x0021": { "attribute_name": "battery_percentage_remaining", "value": 200 } }, "unsupported_attributes": {} }, "0x0201": { "endpoint_attribute": "thermostat", "attributes": { "0x0000": { "attribute_name": "local_temperature", "value": 1870 }, "0x0012": { "attribute_name": "occupied_heating_setpoint", "value": 1800 }, "0x001c": { "attribute_name": "system_mode", "value": 4 }, "0x001e": { "attribute_name": "running_mode", "value": 4 } }, "unsupported_attributes": {} } } } } } } ```
soonic6 commented 1 year ago

@soonic6 can you reading all attribute on the basic cluster of both new and old version and look if you is getting the same values from then and if what is different ?

I believe that you can get all this information from the device's diagnosis

you man that ones: working (Küche): zha-84bcb125a6f47cc533527b469cf30367-_TZE200_h4cgnbzg TS0601-a61e884ccf40a10e0ea70e12e27a099f.json (1).txt

Problems: (Schlafzimmer): zha-84bcb125a6f47cc533527b469cf30367-_TZE200_h4cgnbzg TS0601-9be245fded1a5e220db897909bcf9a46.json (1).txt

but both aren't changeable target temperature from HA.

javicalle commented 1 year ago

The 'schlafzimmer' is unavailable and last_seen at 02/02. Could you try to pair it again and download the diagnosis once repaired?. Try removing the device from HA and wait for a couple of minutes before pairing it againg.

Some diferences: image image

soonic6 commented 1 year ago

i don't know, what i am doing wrong. i deleted both, waited 15minutes... then i paired both. "küche" got an empty Log, but "schlafzimmer" had still his whole history in the device Log.

Here are both Diagnostics: Küche: zha-84bcb125a6f47cc533527b469cf30367-_TZE200_h4cgnbzg TS0601-a61e884ccf40a10e0ea70e12e27a099f.json (1).txt

Schlafzimmer: zha-84bcb125a6f47cc533527b469cf30367-_TZE200_h4cgnbzg TS0601-9be245fded1a5e220db897909bcf9a46.json (1).txt

javicalle commented 1 year ago

Now both devices are similar in attributes: image

But there are less than before... maybe it need to keep awake during the whole pairing proccess?

Anyway, if the problem is related to the NoManufacturerCluster it would be necessary to validate before create a PR and then cross fingers that don't break old devices behavior.

MattWestb commented 1 year ago

@soonic6 Can you taking out the battery so the device is being dead and putting it back so the MCU is sending all commands its supporting and also populating the missing attributes ? I dont know if its helping here but its looks having problem reading the device properties then paring. Can you also looking one the network map after forcing it updating and waiting 2 minutes witch parent they is having if the coordinator or some good or bad routers ? Also the brand / model of the parent router can helping here. Then tuya TRVs is sleeping end devices they is sleeping most of the time so can being little lazy on responding but if the parent is bad behaving its not working at all with them.

scolastico commented 1 year ago

Im coming from the forum and have the same issue with a new _TZE200_h4cgnbzg. I also have some old ones which work as expected. Here my diagnostics if it helps:

https://www.diffchecker.com/u9WB2olC/

The “original text” (on the left side) is the new one which is read only. The “changed text” (on the right side) is the old one which works as expected.

javicalle commented 1 year ago

Devices are showing diferent manufacturer_code so my guess would be a NO_MANUFACTURER_ID issue.

My proposal would be:

  1. Enable the local quirk

  2. Copy the current ts0601_trv_sas.py file: https://github.com/zigpy/zha-device-handlers/blob/dev/zhaquirks/tuya/ts0601_trv_sas.py

  3. Update the ManufacturerThermostatCluster class like this (insert the new write_attributes method):

    .../...
    TEMPERATURE_ATTRS = {
        SASWELL_HEATING_SETPOINT_ATTR: "occupied_heating_setpoint",
        SASWELL_LOCAL_TEMP_ATTR: "local_temperature",
    }
    
    async def write_attributes(self, attributes, manufacturer=None):
        """Overwrite to force manufacturer code."""
    
        return await super().write_attributes(
            attributes, manufacturer=foundation.ZCLHeader.NO_MANUFACTURER_ID
        )
    
    def _update_attribute(self, attrid, value):
        super()._update_attribute(attrid, value)
        if attrid in self.TEMPERATURE_ATTRS:
            .../...
  4. Save changes, delete devices and restart HA

  5. Pair the devices again

Please test the quirk for both device 'versions' to be sure that doesn't break anything.

scolastico commented 1 year ago

@javicalle I would love to try that but do you have any clue where the file is stored on hassio os? I tryd to search for it (eg sudo find / -name "ts0601_trv_sas.py") but got no results.

javicalle commented 1 year ago

You need to configure your local quirk folder and put the file inside. There's a good guide to follow: https://github.com/zigpy/zha-device-handlers/discussions/693#discussioncomment-857274

soonic6 commented 1 year ago

So, now i removed the batterie from both TRVs and waited 10 minutes. Then i restarted HA and waited till its booted completly. Then i started the pairing process. First for "Küche", then "Schlafzimmer". Now, after 10 minutes here are the Logs from HA and both TRVs:

home-assistant.log

Küche: image zha-84bcb125a6f47cc533527b469cf30367-_TZE200_h4cgnbzg TS0601-a61e884ccf40a10e0ea70e12e27a099f.json (1).txt

Schlafzimmer: image zha-84bcb125a6f47cc533527b469cf30367-_TZE200_h4cgnbzg TS0601-9be245fded1a5e220db897909bcf9a46.json (1).txt

hope this will help.

MattWestb commented 1 year ago

@javicalle This TRV is using the new Telink chips is the Zigbee module that can behaving little different git the MCU shall working the same if its being on the same firmware as other ones.

scolastico commented 1 year ago

You need to configure your local quirk folder and put the file inside. There's a good guide to follow: #693 (comment)

With the file and the edit from you now all my thermostates are working as intended. I created the file, added the code restart hassio and re- added the non working and a working unit. The working unit seemed to had first some issues while reconnecting but i dont think its related to this. After the second try it also connected again to the mesh.

Thank you. :)

MattWestb commented 1 year ago

@scolastico Can you posting IEEE: of your device from the device card (at least the 6 first digit) ? I like to see if your device is having the normal Zigbee chip or the new one.

scolastico commented 1 year ago

The new unit (which wasn't working): a4:c1:38 The old unit: 2c:11:65

MattWestb commented 1 year ago

The new is Telink and the old that was working before is Silabs chip in the Zigbee module. So you is having both version working well that great !!!

Now we need geeing @soonic6 devices working 2.

MattWestb commented 1 year ago

@scolastico Witch Coordinator is you using ? Also the same question for @soonic6.

scolastico commented 1 year ago

Raspbee (ZHA) from deCONZ by dresden elektronik

MattWestb commented 1 year ago

Thanks !

soonic6 commented 1 year ago

@MattWestb SONOFF Zigbee 3.0 USB Dongle Plus

ZNP = Texas Instruments Z-Stack ZNP protocol: CC253x, CC26x2, CC13x2 von ZHA Zigbee info IEEE: 00:12:4b:00:26:b7: ab:2a Nwk: 0x0000 Device Type: Coordinator LQI: Unbekannt RSSI: Unbekannt Zuletzt gesehen: 2023-02-11T08:07:46 Energiequelle: Mains

MattWestb commented 1 year ago

Thanks @soonic6 ! @puddly Is it something in the ZNP that is making the fix above not working then its looks like deCONZ is OK and ZNP is not. Have not getting any EZSP user reporting if its working or not.

@javicalle Looks its working OK on deCONZ and one user have both versions so you can getting feedback if trying fixing it in tuyaINIT and see that is not braking other things.

lublak commented 1 year ago

@MattWestb i can report. I have a skyconnect which is based on EZSP. My hama not working. After donwloading the py file. Edit it and put it into zha and works now fine! :) I can control and read it! Based on this: https://github.com/zigpy/zha-device-handlers/issues/1901#issuecomment-1423242237

MattWestb commented 1 year ago

Thanks for reporting @lublak !! So deCONZ and EZSP is wworking OK and one TI is not :-((

Can you posting the first 6 numbers of you device then its the manufacture and the last is serial number. Or you can using this and reporting if its Silabs or Telink https://macvendors.com/.

lublak commented 1 year ago

@MattWestb Its a Telink Semiconductor (Taipei) Co. Ltd. "manufacturer": "_TZE200_h4cgnbzg", "manufacturer_code": 4417, first 6 numbers: a4:c1:38

MattWestb commented 1 year ago

Thanks @lublak !! I hope the devs is getting time looking on this for getting it working with all devices on all coordinators.

moritzbeck13 commented 1 year ago

I can confirm that this works with a ConBee 2 coordinator. What needs to be done to get this merged?

GamerClassN7 commented 1 year ago

Hi, Is there any progres rguaering adding support for this TRV. Yesterdy i tryed to pair my , with horrible results :( image image

Also itryed every possible quirk i could find :( whithout any results :(

Thanks for any information :)

tommyguuuun commented 1 year ago

Hi, Is there any progres rguaering adding support for this TRV. Yesterdy i tryed to pair my , with horrible results :( image image

Also itryed every possible quirk i could find :( whithout any results :(

Thanks for any information :)

Exact same behavior for me so far. The only thing really missing is the "off" state. I used iobroker before and it worked like a charm there...

jacekk015 commented 1 year ago

@GamerClassN7 @tommyguuuun That TRV should be supported by custom quirk: ts0601_trv_moes.py at https://github.com/jacekk015/zha_quirks

moritzbeck13 commented 1 year ago

Yes, the custom quirk works fine, but it doesn't seem to be merged into Home Assistant yet or it doesn't work when not specified manually.

jacekk015 commented 1 year ago

@moritzbeck01 To be merged, quirks need to have Pythons tests written. I don't have knowledge and time to write code for 11 quirks from my repo. Moreover, there are plenty of quirk versions here and there. There was one try to merge the code, but it failed on the tests.

GamerClassN7 commented 1 year ago

@GamerClassN7 @tommyguuuun That TRV should be supported by custom quirk: ts0601_trv_moes.py at https://github.com/jacekk015/zha_quirks

Hello 👋 thanks for response t trued several quirks but no of them had full fukncionality :(

jacekk015 commented 1 year ago

@GamerClassN7 What doesn't work in my quirk? You know that I can't buy all those TRV's to test it. Often users want just basic functionality and after that there's no one to take time for testing.

soonic6 commented 1 year ago

That TRV should be supported by custom quirk: ts0601_trv_moes.py

are you sure? i thought it was the trv_saswell.py ?

soonic6 commented 1 year ago

okay, i can confirm that the trv_saswell.py works for changing temperatur for the TZE200_h4cgnbzg.

but i got 6 nameless switches in the GUI (the same for TZE200_yw7cahqs). image

what are thoes switches for? is it possible to implement names for those into the quirk?

moritzbeck13 commented 1 year ago

With https://github.com/zigpy/zha-device-handlers/issues/1901#issuecomment-1423242237 everything works fine for me.

soonic6 commented 1 year ago

moritzbeck01

are you using ZHA? Do the switches have labes, or just switch - switch7?

moritzbeck13 commented 1 year ago

are you using ZHA?

Yes

Do the switches have labes

Yes

tommyguuuun commented 1 year ago

@GamerClassN7 @tommyguuuun That TRV should be supported by custom quirk: ts0601_trv_moes.py at https://github.com/jacekk015/zha_quirks

Hello 👋 thanks for response t trued several quirks but no of them had full fukncionality :(

Yes, i loaded this quirk and stuff like target temperature etc works - but for mode, there is only heat. No „off“ or „automatic“, what is supported by the TRV and also was available in the ioBroker integration..

moritzbeck13 commented 1 year ago

Off is supported for me and automatic is neither supported by the TRV nor does it make sense for a TRV.

soonic6 commented 1 year ago

@tommyguuuun

don't get me wrong, but this issue is about the h4cgnbzg and confuses other user. please use an own issue.

@moritzbeck01 Off is supported for me and automatic is neither supported by the TRV nor does it make sense for a TRV.

he is talking about another TRV

soonic6 commented 1 year ago

With #1901 (comment) everything works fine for me.

hm... what did i do wrong... changing temperature is working, but i don't get any switches now. also the HVAC Modes are unknown.

moritzbeck13 commented 1 year ago

Have you enabled and specified custom quirks? Have you deleted and repaired the device?

soonic6 commented 1 year ago

Have you enabled and specified custom quirks? Have you deleted and repaired the device?

yes, the custom quirk is loaded, without i wasn't able changing the temperatures. i was doing it, like in comment 1901. editing the quirk, copying, deleted the device, restart HA, re-pair the device. image

image

moritzbeck13 commented 1 year ago

This is what it looks like for me as well. What are you missing?

soonic6 commented 1 year ago

This is what it looks like for me as well. What are you missing?

i thought there were a working "HVAC action" and named switches like in https://github.com/zigpy/zha-device-handlers/issues/1901#issuecomment-1637024775

moritzbeck13 commented 1 year ago

That is the wrong quirk I think. The HVAC Mode (Off/Heat) is under the thermostat menu, as always with Home Assistant. The only thing I'm missing is the child lock, no clue what the other switches are supposed to be for.

GamerClassN7 commented 1 year ago

@GamerClassN7 What doesn't work in my quirk? You know that I can't buy all those TRV's to test it. Often users want just basic functionality and after that there's no one to take time for testing.

I didn't mean to offend you or anything 😔 I am not experienced with quirk debugging but if you specify what you need I can try to provide necessary information. ;)

GamerClassN7 commented 1 year ago

okay, i can confirm that the trv_saswell.py works for changing temperatur for the TZE200_h4cgnbzg.

but i got 6 nameless switches in the GUI (the same for TZE200_yw7cahqs). image

what are thoes switches for? is it possible to implement names for those into the quirk?

Yeah 👍 I see I am not alone in my struggle 😭

soonic6 commented 1 year ago

Yeah 👍 I see I am not alone in my struggle

try what i did here: https://github.com/zigpy/zha-device-handlers/issues/1901#issuecomment-1637041380

-delete your device -activate custom quirk -download the quirk from from https://github.com/zigpy/zha-device-handlers/issues/1901#issuecomment-1423242237 -edit from line 92 like in my screenshot from https://github.com/zigpy/zha-device-handlers/issues/1901#issuecomment-1637041380 -delete the other custom quirk -restart HA -re-pair your devices.

jacekk015 commented 1 year ago

That TRV should be supported by custom quirk:

ts0601_trv_moes.py

are you sure? i thought it was the trv_saswell.py ?

Correct - it should be trv_saswell.py