Newly added custom quirk for TS0601 by _TZE204_aoclfnxz not recognized (solved)

Hi all,

I am trying to get my Moes Zigbee thermostat working with zha but after adding the device, I only see “TS0601 by _TZE204_aoclfnxz” as device info along with two entities: LQI and RSSI.

I read that one has to add a quirk file for this sensor since it does not fully adhere to the Zigbee standard. So I downloaded this quirk to /config/custom_zha_quirks/ts0601_electric_heating.py and added the following to /config/configuration.yaml:

zha:
  custom_quirks_path: /config/custom_zha_quirks
  database_path: /config/zigbee.db 
  enable_quirks: true

After restarting the system, I get a new __pycache__ folder in my custom_zha_quirks directory but when I remove my thermostat and add it again, the newly added quirks are not picked up.

Here is the debugging that I have done. The quirk that I downloaded lists my device:

    signature = {
        #  endpoint=1 profile=260 device_type=81 device_version=1 input_clusters=[0, 4, 5, 61184],
        #  output_clusters=[10, 25]
        MODELS_INFO: [
            ("_TZE200_aoclfnxz", "TS0601"),

The system logs show the following when pairing my device:

2023-11-02 23:55:32.988 DEBUG (MainThread) [zigpy.application] Device is initialized <Device model='TS0601' manuf='_TZE204_aoclfnxz' nwk=0x8B0F ieee=a4:c1:38:70:48:83:c8:ff is_initialized=True>
2023-11-02 23:55:32.990 DEBUG (MainThread) [zigpy.quirks.registry] Checking quirks for _TZE204_aoclfnxz TS0601 (a4:c1:38:70:48:83:c8:ff)
2023-11-02 23:55:32.991 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'zhaquirks.xiaomi.aqara.opple_switch.XiaomiOpple2ButtonSwitchFace2'>
2023-11-02 23:55:32.991 DEBUG (MainThread) [zigpy.quirks.registry] Fail because endpoint list mismatch: {1, 2, 242} {1, 242}
2023-11-02 23:55:32.991 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'zhaquirks.xiaomi.aqara.opple_switch.XiaomiOpple2ButtonSwitchFace1'>
2023-11-02 23:55:32.991 DEBUG (MainThread) [zigpy.quirks.registry] Fail because endpoint list mismatch: {1, 2, 41, 42, 242, 51, 21, 31} {1, 242}
2023-11-02 23:55:32.991 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'zhaquirks.xbee.xbee_io.XBeeSensor'>
2023-11-02 23:55:32.992 DEBUG (MainThread) [zigpy.quirks.registry] Fail because endpoint list mismatch: {232, 230} {1, 242}
2023-11-02 23:55:32.992 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'zhaquirks.xbee.xbee3_io.XBee3Sensor'>
2023-11-02 23:55:32.992 DEBUG (MainThread) [zigpy.quirks.registry] Fail because endpoint list mismatch: {232, 230} {1, 242}
2023-11-02 23:55:32.992 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'zhaquirks.tuya.ts0201.MoesTemperatureHumidtySensorWithScreen'>
2023-11-02 23:55:32.992 DEBUG (MainThread) [zigpy.quirks.registry] Fail because endpoint list mismatch: {1} {1, 242}
2023-11-02 23:55:32.992 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'zhaquirks.smartthings.tag_v4.SmartThingsTagV4'>
2023-11-02 23:55:32.992 DEBUG (MainThread) [zigpy.quirks.registry] Fail because endpoint list mismatch: {1} {1, 242}
2023-11-02 23:55:32.993 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'zhaquirks.smartthings.multi.SmartthingsMultiPurposeSensor'>
2023-11-02 23:55:32.993 DEBUG (MainThread) [zigpy.quirks.registry] Fail because endpoint list mismatch: {1} {1, 242}
2023-11-02 23:55:32.993 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'zhaquirks.netvox.z308e3ed.Z308E3ED'>
2023-11-02 23:55:32.993 DEBUG (MainThread) [zigpy.quirks.registry] Fail because endpoint list mismatch: {1} {1, 242}
2023-11-02 23:55:32.993 DEBUG (MainThread) [zigpy.quirks.registry] Considering <class 'zhaquirks.gledopto.soposhgu10.SoposhGU10'>
2023-11-02 23:55:32.993 DEBUG (MainThread) [zigpy.quirks.registry] Fail because endpoint list mismatch: {11, 13} {1, 242}
2023-11-02 23:55:32.996 INFO (MainThread) [homeassistant.components.zha.core.endpoint] Creating cluster handler for cluster id: 4 class: <class 'homeassistant.components.zha.core.cluster_handlers.general.Groups'>
2023-11-02 23:55:32.996 INFO (MainThread) [homeassistant.components.zha.core.endpoint] Creating cluster handler for cluster id: 5 class: <class 'homeassistant.components.zha.core.cluster_handlers.general.Scenes'>
2023-11-02 23:55:32.997 INFO (MainThread) [homeassistant.components.zha.core.endpoint] Creating cluster handler for cluster id: 61184 class: <class 'homeassistant.components.zha.core.cluster_handlers.manufacturerspecific.TuyaClusterHandler'>
2023-11-02 23:55:32.997 INFO (MainThread) [homeassistant.components.zha.core.endpoint] Creating cluster handler for cluster id: 0 class: <class 'homeassistant.components.zha.core.cluster_handlers.general.BasicClusterHandler'>

And I again get the same two sensors as before and the device info does not say anything about quirks which is not too surprising because according to the log, the file I downloaded was not considered during pairing.

I am wondering whether the file I downloaded does not work or causes an error? Where would I find information about that. I found a similar question from a year ago but there is no answer either.

Thanks, Thomas

Well, no.

<Device model='TS0601' manuf='_TZE204_aoclfnxz'
MODELS_INFO: [
            ("_TZE200_aoclfnxz", "TS0601"),

Notice the 200 vs. 204 :wink:

Oh silly me, totally overlooked that detail. Thanks a lot!

Thanks @koying for pointing out my quirk does NOT list my device (I was so blind!). After looking around a bit more, I found the following comment with a quirk file for my thermostat that does work. If the link does not go directly to the comment with the quirk file, look for @bsfaxi’s comment on Aug 23, it is buried somewhat in that thread.
The quirk file supports the most important functions like setting the temperature and turning the thermostat on and off. Schedules or setting the time are not supported.

This quirk you mentioned, does it allow you to set temperature in half degrees as well? With my thermostat and this quirk I can only set whole degrees.

It only allows to set the temperature in full degress C. I am not sure whether that restriction is coming from the quirk or the device itself. Although I fear it is the latter.

I am not to happy with the Moes thermostat and am currently looking at the sonoff NSPanel which can be used with esphome. Looks more promising but only uploaded the custom firmware and not yet installed it to control the heating.

After having played around with the sonoff NSPanel in combination with the blackymas blueprint, I dropped any of the Tuya thermostats that I had been playing with. Even if you get the Tuya thermostats to run nicely with 0.5C settings, the NSPanel blows them away in terms of beauty and even more so in terms of functionality. Of course the NSPanels cost more, but the delta is minuscule for the added functionality! Only thing is you have to flash them but that really is not that hard.

What do I need to use NSPanel as a thermostat?
I got electric floor heating with a floor temperature sensor.

I want to get rid of the terrible Tuya thermostat I got now, it has caused so much trouble for me.