Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Device Support Request] - Moes Thermostat - TS0601 #2755

Open
DJ-Specter opened this issue Nov 16, 2023 · 33 comments
Open

[Device Support Request] - Moes Thermostat - TS0601 #2755

DJ-Specter opened this issue Nov 16, 2023 · 33 comments
Labels
Tuya Request/PR regarding a Tuya device

Comments

@DJ-Specter
Copy link

DJ-Specter commented Nov 16, 2023

Problem description

Hi,

I'm submitting this request following the conversation on this ticket:

https://community.home-assistant.io/t/popular-moes-thermostat-not-showing-entities-after-zha-pairing/641041/1

I bought a Moes thermostat (gas boiler + zigbee version), that pairs with Zigbee but doesn't show any proper entities.

I have a friend with what I thought was an identical model but it seems there are lots of subvariants of this one. Either way, it should definitely work.

I have also done all the troubleshooting outlined in this, including removing and re-pairing several times: https://community.home-assistant.io/t/guide-for-zigbee-interference-avoidance-and-network-range-coverage-optimization/515752

I'm not sure what other info is required here, but please don't hesitate to ask :)

EDIT: After learning a lot about quirks since I posted this, I'm adding the actual model number to the post for searchability as I can't see it anywhere - _TZE204_aoclfnxz

Thank you very very much in advance for any help!

Solution description

As far as I understand, something to do with quirks is required for this to work properly with Zigbee Home Assistant, and the device needs to be opted into ZHA. I think that's all that's necessary?

Screenshots/Video

Screenshots/Video

Thermostat Home Assistant

Device signature

Device signature
{
  "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.Router: 1>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.FullFunctionDevice|MainsPowered|RxOnWhenIdle|AllocateAddress: 142>, 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=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)",
  "endpoints": {
    "1": {
      "profile_id": "0x0104",
      "device_type": "0x0051",
      "input_clusters": [
        "0x0000",
        "0x0004",
        "0x0005",
        "0xef00"
      ],
      "output_clusters": [
        "0x000a",
        "0x0019"
      ]
    },
    "242": {
      "profile_id": "0xa1e0",
      "device_type": "0x0061",
      "input_clusters": [],
      "output_clusters": [
        "0x0021"
      ]
    }
  },
  "manufacturer": "_TZE204_aoclfnxz",
  "model": "TS0601",
  "class": "zigpy.device.Device"
}

Diagnostic information

Diagnostic information
{
  "home_assistant": {
    "installation_type": "Home Assistant OS",
    "version": "2023.11.2",
    "dev": false,
    "hassio": true,
    "virtualenv": false,
    "python_version": "3.11.6",
    "docker": true,
    "arch": "aarch64",
    "timezone": "Europe/London",
    "os_name": "Linux",
    "os_version": "6.1.21-v8",
    "supervisor": "2023.11.3",
    "host_os": "Home Assistant OS 11.1",
    "docker_version": "24.0.6",
    "chassis": "embedded",
    "run_as_root": true
  },
  "custom_components": {
    "hildebrandglow_dcc": {
      "version": "1.0.3",
      "requirements": [
        "pyglowmarkt==0.5.5"
      ]
    },
    "localtuya": {
      "version": "5.2.1",
      "requirements": []
    },
    "hacs": {
      "version": "1.33.0",
      "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.8",
      "pyserial==3.5",
      "pyserial-asyncio==0.6",
      "zha-quirks==0.0.106",
      "zigpy-deconz==0.21.1",
      "zigpy==0.59.0",
      "zigpy-xbee==0.19.0",
      "zigpy-zigate==0.11.0",
      "zigpy-znp==0.11.6",
      "universal-silabs-flasher==0.0.14",
      "pyserial-asyncio-fast==0.11"
    ],
    "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": 20963,
    "manufacturer": "_TZE204_aoclfnxz",
    "model": "TS0601",
    "name": "_TZE204_aoclfnxz TS0601",
    "quirk_applied": false,
    "quirk_class": "zigpy.device.Device",
    "quirk_id": null,
    "manufacturer_code": 4417,
    "power_source": "Mains",
    "lqi": 168,
    "rssi": -58,
    "last_seen": "2023-11-16T10:49:51",
    "available": true,
    "device_type": "Router",
    "signature": {
      "node_descriptor": "NodeDescriptor(logical_type=<LogicalType.Router: 1>, complex_descriptor_available=0, user_descriptor_available=0, reserved=0, aps_flags=0, frequency_band=<FrequencyBand.Freq2400MHz: 8>, mac_capability_flags=<MACCapabilityFlags.FullFunctionDevice|MainsPowered|RxOnWhenIdle|AllocateAddress: 142>, 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=False, *is_full_function_device=True, *is_mains_powered=True, *is_receiver_on_when_idle=True, *is_router=True, *is_security_capable=False)",
      "endpoints": {
        "1": {
          "profile_id": "0x0104",
          "device_type": "0x0051",
          "input_clusters": [
            "0x0000",
            "0x0004",
            "0x0005",
            "0xef00"
          ],
          "output_clusters": [
            "0x000a",
            "0x0019"
          ]
        },
        "242": {
          "profile_id": "0xa1e0",
          "device_type": "0x0061",
          "input_clusters": [],
          "output_clusters": [
            "0x0021"
          ]
        }
      },
      "manufacturer": "_TZE204_aoclfnxz",
      "model": "TS0601"
    },
    "active_coordinator": false,
    "entities": [],
    "neighbors": [
      {
        "device_type": "Coordinator",
        "rx_on_when_idle": "On",
        "relationship": "Parent",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0x0000",
        "permit_joining": "Unknown",
        "depth": "0",
        "lqi": "85"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "On",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0xA2BB",
        "permit_joining": "Unknown",
        "depth": "0",
        "lqi": "88"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "On",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0x6306",
        "permit_joining": "Unknown",
        "depth": "0",
        "lqi": "39"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "On",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0x8C83",
        "permit_joining": "Unknown",
        "depth": "1",
        "lqi": "42"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "On",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0xEA58",
        "permit_joining": "Unknown",
        "depth": "0",
        "lqi": "63"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "On",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0x7116",
        "permit_joining": "Unknown",
        "depth": "0",
        "lqi": "121"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "On",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0x49A8",
        "permit_joining": "Unknown",
        "depth": "0",
        "lqi": "54"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "On",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0x1E36",
        "permit_joining": "Unknown",
        "depth": "1",
        "lqi": "54"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "On",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0xC22D",
        "permit_joining": "Unknown",
        "depth": "1",
        "lqi": "151"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "On",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0xD0E7",
        "permit_joining": "Unknown",
        "depth": "0",
        "lqi": "121"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "On",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0xBCB6",
        "permit_joining": "Unknown",
        "depth": "1",
        "lqi": "106"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "On",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0xA389",
        "permit_joining": "Unknown",
        "depth": "1",
        "lqi": "51"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "On",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0xBF90",
        "permit_joining": "Unknown",
        "depth": "1",
        "lqi": "75"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "On",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0x1611",
        "permit_joining": "Unknown",
        "depth": "0",
        "lqi": "0"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "On",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0x282F",
        "permit_joining": "Unknown",
        "depth": "0",
        "lqi": "36"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "On",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0xC28E",
        "permit_joining": "Unknown",
        "depth": "0",
        "lqi": "81"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "On",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0x27E4",
        "permit_joining": "Unknown",
        "depth": "0",
        "lqi": "30"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "On",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0x8F41",
        "permit_joining": "Unknown",
        "depth": "2",
        "lqi": "88"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "On",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0x0321",
        "permit_joining": "Unknown",
        "depth": "1",
        "lqi": "33"
      },
      {
        "device_type": "Router",
        "rx_on_when_idle": "On",
        "relationship": "Sibling",
        "extended_pan_id": "**REDACTED**",
        "ieee": "**REDACTED**",
        "nwk": "0x1A2B",
        "permit_joining": "Unknown",
        "depth": "1",
        "lqi": "42"
      }
    ],
    "routes": [],
    "endpoint_names": [
      {
        "name": "SMART_PLUG"
      },
      {
        "name": "PROXY_BASIC"
      }
    ],
    "user_given_name": "Thermostat ",
    "device_reg_id": "0d0091547b465de705a470161d62295f",
    "area_id": "kitchen",
    "cluster_details": {
      "1": {
        "device_type": {
          "name": "SMART_PLUG",
          "id": 81
        },
        "profile_id": 260,
        "in_clusters": {
          "0x0004": {
            "endpoint_attribute": "groups",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0005": {
            "endpoint_attribute": "scenes",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0xef00": {
            "endpoint_attribute": null,
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x0000": {
            "endpoint_attribute": "basic",
            "attributes": {
              "0x0001": {
                "attribute_name": "app_version",
                "value": 74
              },
              "0x0004": {
                "attribute_name": "manufacturer",
                "value": "_TZE204_aoclfnxz"
              },
              "0x0005": {
                "attribute_name": "model",
                "value": "TS0601"
              }
            },
            "unsupported_attributes": {}
          }
        },
        "out_clusters": {
          "0x0019": {
            "endpoint_attribute": "ota",
            "attributes": {},
            "unsupported_attributes": {}
          },
          "0x000a": {
            "endpoint_attribute": "time",
            "attributes": {},
            "unsupported_attributes": {}
          }
        }
      },
      "242": {
        "device_type": {
          "name": "PROXY_BASIC",
          "id": 97
        },
        "profile_id": 41440,
        "in_clusters": {},
        "out_clusters": {
          "0x0021": {
            "endpoint_attribute": "green_power",
            "attributes": {},
            "unsupported_attributes": {}
          }
        }
      }
    }
  }
}```

</details>


### Logs

<details><summary>Logs</summary>

```python
[Paste the logs here]

Custom quirk

Custom quirk
[Paste your custom quirk here]

Additional information

No response

@DJ-Specter DJ-Specter changed the title [Device Support Request] [Device Support Request] - Moes Thermostat - TS0601 Nov 16, 2023
@TheJulianJES TheJulianJES added the Tuya Request/PR regarding a Tuya device label Nov 17, 2023
@glcos
Copy link

glcos commented Nov 20, 2023

I have the same device and managed to make it working using this quirk:
https://github.com/jacekk015/zha_quirks/blob/main/ts0601_thermostat_avatto.py

however this device has a number of issues not dependent on Home Assistant or the ZigBee protocol itself, see here
jacekk015/zha_quirks#29

@darknessblade
Copy link

darknessblade commented Dec 4, 2023

@glcos Thank you.

Have gotten this model as well [gotten it with the 11.11 sale, at a steep discount], with this the 3 most important features are now working for me

One question: Do you know if its possible to FULLY deactivate the build in programming/scedule

I have a Avatto one as well, of which this is possible. Having it only be In Manual modus.

https://www.aliexpress.com/item/1005002960679997.html?
And want to know if its possible on the MOES one as well

@glcos
Copy link

glcos commented Dec 4, 2023

One question: Do you know if its possible to FULLY deactivate the build in programming/scedule

@darknessblade I'm not sure I'm getting your question right, anyway I use the MOES one only in manual mode, and let Home Assistant to do the schedule and advanced programming such as temperature setting based on occupancy.

@darknessblade
Copy link

@glcos What I mean is: That you deactivate the Schedule modus completely, so its always in Manual modus. and the mode-change button essentially doesn't do anything.

It should be possible trough the advanced menu "screen off+ hold mode+clock"
Trough this I already deactivated the 2nd temp-sensor.
But I cannot find anywhere what each other variable means in the menu.

@darknessblade
Copy link

Not sure what caused it, but For some reason the thermostat wants to heat to over 9-90 times the surface temperature of the sun

moes temp

@darknessblade
Copy link

@glcos Contacted the seller for the advanced menu instructions, and It does not look like its possible to disable the build in scedule

Now I only needs to find out why HASS thinks I want to heat my room to a temperature hotter than the sun

moes

@darknessblade
Copy link

See following log [Due large file size and randomness in the spikes, I cut the section of the most recent spike with roughly 3 temp/set checks before the spike]

home-assistant log [CUT].log

@DJ-Specter
Copy link
Author

Thanks for all the time and research guys, I really appreciate it 😄

I don't think I put it anywhere in the original post so I edited to reflect what I now understand to be the specific model identifier: _TZE204_aoclfnxz

@darknessblade
Copy link

@DJ-Specter Do you have the same issue with those Solar-flare temperature spikes?

@DJ-Specter
Copy link
Author

I certainly do!

This request came off the back of my HA Community post: https://community.home-assistant.io/t/popular-moes-thermostat-not-showing-entities-after-zha-pairing/641041/19?u=dj-specter

@DJ-Specter
Copy link
Author

This also seems like a good opportunity to flag another post that much to my distress hasn't had any traction, but which I'm pretty sure must be related:

https://community.home-assistant.io/t/call-service-set-target-temperature-only-sets-temporarily/649184

@glcos
Copy link

glcos commented Dec 5, 2023

@DJ-Specter @darknessblade in my installation I don't see these spikes in temperature.
I use ZHA and a ZigBee coordinator based on Texas Instruments CC2652P

@darknessblade
Copy link

@glcos I use the "Sonoff Zigbee 3.0 plus type E" with ZHA.

Currently have changed the build in scedule to have everything set at 00:00 and 15C.
Did this as a test to see if this would have any effect on the spikes.

The weirdest part is that I have not touched or interacted with the Climate card/integration or panel. yet it still has spikes

@DJ-Specter
Copy link
Author

Does anyone know how long these kind of device support requests take to be actioned?

I'm wondering now about just using the smelly Smart Life app to unlock the full content of these and some TRVs I got, but I really don't want to.

@glcos
Copy link

glcos commented Dec 18, 2023

@darknessblade I received a new Avatto thermostat and tested, now I think I understand what you ment for disabling scheduling mode.
I want my thermostat to be in manual mode, but once in while for some reason it goes into this screen by itself:

avatto-thermostat

I could not find a way to completely disable scheduling or advanced programming mode and put it into manual.
I cannot understand if it's Home Assistant that is pushing this mode for some reason or it's the thermostat itself.

@darknessblade
Copy link

darknessblade commented Dec 27, 2023

Not sure waht causes that blank screen.
it might be because you turned the thermostat OFF trough the off button/turn of heating
which turns of the screen.

Also a small update regarding My moes thermostat

after updating the zigbee coordinator, it still gives the same spikes as I had before.

One benefit is that the thermostat does not instantly turn ON when it gets such a spike, since it turns on roughly 10 seconds after a temp-change trigger

@DJ-Specter
Copy link
Author

Do the spikes only happen when the mode is switched from heat to off, or vice versa?

Or are they when the temperature is changed, maybe? It's hard for me to see from the graphs, but I feel like it's possible to test.

I'm also convinced this is the thing that's causing my thermostat to gradually decrease the temperature it's set to, per the HA community ticket I linked above...

@darknessblade
Copy link

@DJ-Specter the spikes happen when the device is ON

Display/heat=ON
Set-temp=below current temp
Mode: Manual
Automatic mode= all times= 00:00/ 15C
Floor sensor=disabled

@darknessblade
Copy link

Caught the error in action:
thermostat error

It is only on HASS its side, as the thermostat itself does not show strange behavior or try to turn on even though hass thinks it is set to 2133C

@DJ-Specter
Copy link
Author

So is this a manufacturer problem then? How can we move forward to get it fixed?

@darknessblade
Copy link

darknessblade commented Jan 12, 2024

@DJ-Specter
The only way I can think of is that HASS needs to Ignore ALL inputs/data changes that are above 50C
Like in my Image 2133C. would be cut off to 50C.

This way the "bug" still is present, but the log data is more readable, as the spikes are cut off at 50C instead of UNCAPPED. which results in rare spikes of 1.3BILLION degrees Celsius.

My reason for 50C, is because nobody would use a set temp above 30C ""under normal use"". [Unless people use it for a Infared sauna, trough the floor sensor with the electric heating panel].

As I am not well versed in coding, I am not sure if its possible to do this with the custom quirks.


I have contacted the manufacturer/seller to see if I can get the Xcell files/custom cluster information. [will update when I get a response]

@darknessblade
Copy link

@DJ-Specter tried contacting the manufacturer/seller, for the tuya cluster information, but they do not want to give this information.

Would it be possible to hardlock the max reported set-temp to 50C, in the custom quirk? where it ignores anything above said value

@DJ-Specter
Copy link
Author

DJ-Specter commented Jan 20, 2024 via email

@darknessblade
Copy link

darknessblade commented Jan 20, 2024

@DJ-Specter

True, luckily the thermostat has a roughly 10 second delay before activating the relay. so the 1MS "false positive" update isn't the biggest issue in terms of function, its only annoying for logging purposes, as it KILLS the graph.

In my opinion they should HARD-limit all thermostats recording/messages to a default limit.
This will prevent the same from happening on any future different thermostat.

It is indeed a shame that MOES doesn't want to share the Tuya cluster info.

Last dev/shop {AVATTO}, I contacted for a different panel, did share it without issue. [though in my case they did promise it being functional with homeassistant under ZHA], so that may have played a factor.

@jacekk015
Copy link
Contributor

Fixed quirk at repo:
https://github.com/jacekk015/zha_quirks

All target room temp spikes over 50 degrees are not reported to HA.

@DJ-Specter
Copy link
Author

Whoa, out of nowhere, a new hero swoops in!

Amazing, thank you so much dude! I've just added it and will keep an eye on my temps over the next week and report back.

@darknessblade
Copy link

Fixed quirk at repo: https://github.com/jacekk015/zha_quirks

All target room temp spikes over 50 degrees are not reported to HA.

added it to my HASS,

It looks to be working slightly better than the one I used before, Instead of spikes I now get dips to 0-4C.
even if its slightly annoying it still has issues like this, its still better than spikes of 100MIL C

in 7 hours I got 3 dips

Will report back in 72 hours if I get massive spikes or dips again.

@jacekk015
Copy link
Contributor

Those spikes are seen in your previous log, so device send it, unfortunately.

2023-12-05 10:14:49.413 DEBUG (MainThread) [zigpy.application] Received a packet: ZigbeePacket(timestamp=datetime.datetime(2023, 12, 5, 9, 14, 49, 413554, tzinfo=datetime.timezone.utc), src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xEA98), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), dst_ep=1, source_route=None, extended_timeout=False, tsn=25, profile_id=260, cluster_id=61184, data=Serialized[b'\tU\x02t\xb9\x10\x02\x00\x04\x00\xaa\x04\x00'], tx_options=<TransmitOptions.NONE: 0>, radius=0, non_member_radius=0, lqi=152, rssi=-62)
2023-12-05 10:14:49.414 DEBUG (MainThread) [zigpy.zcl] [0xEA98:1:0xef00] Received ZCL frame: b'\tU\x02t\xb9\x10\x02\x00\x04\x00\xaa\x04\x00'
2023-12-05 10:14:49.414 DEBUG (MainThread) [zigpy.zcl] [0xEA98:1:0xef00] Decoded ZCL frame header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.CLUSTER_COMMAND: 1>, is_manufacturer_specific=0, direction=<Direction.Client_to_Server: 1>, disable_default_response=0, reserved=0, *is_cluster=True, *is_general=False), tsn=85, command_id=2, *direction=<Direction.Client_to_Server: 1>)
2023-12-05 10:14:49.415 DEBUG (MainThread) [zigpy.zcl] [0xEA98:1:0xef00] Decoded ZCL frame: AvattoManufCluster:set_data_response(param=Command(status=116, tsn=185, command_id=528, function=0, data=[4, 0, 170, 4, 0]))
2023-12-05 10:14:49.415 DEBUG (MainThread) [zigpy.zcl] [0xEA98:1:0xef00] Received command 0x02 (TSN 85): set_data_response(param=Command(status=116, tsn=185, command_id=528, function=0, data=[4, 0, 170, 4, 0]))
2023-12-05 10:14:49.415 DEBUG (MainThread) [zhaquirks.tuya] [0xea98:1:0xef00] Received value [0, 170, 4, 0] for attribute 0x0210 (command 0x0002)
2023-12-05 10:14:49.416 DEBUG (MainThread) [homeassistant.components.zha.core.cluster_handlers] [0xEA98:1:0x0201]: Attribute report 'AvattoThermostat'[occupied_heating_setpoint] = 1114214400
2023-12-05 10:14:49.416 DEBUG (MainThread) [homeassistant.components.zha.core.cluster_handlers] [0xEA98:1:0x0201]: Attribute report 'AvattoThermostat'[occupied_heating_setpoint] = 1114214400
2023-12-05 10:14:49.418 DEBUG (MainThread) [zigpy.zcl] [0xEA98:1:0xef00] Sending reply header: ZCLHeader(frame_control=FrameControl(frame_type=<FrameType.GLOBAL_COMMAND: 0>, is_manufacturer_specific=False, direction=<Direction.Client_to_Server: 1>, disable_default_response=1, reserved=0, *is_cluster=False, *is_general=True), tsn=85, command_id=<GeneralCommand.Default_Response: 11>, *direction=<Direction.Client_to_Server: 1>)
2023-12-05 10:14:49.418 DEBUG (MainThread) [zigpy.zcl] [0xEA98:1:0xef00] Sending reply: Default_Response(command_id=2, status=<Status.SUCCESS: 0>)
2023-12-05 10:14:49.419 DEBUG (MainThread) [bellows.zigbee.application] Sending packet ZigbeePacket(timestamp=datetime.datetime(2023, 12, 5, 9, 14, 49, 419008, tzinfo=datetime.timezone.utc), src=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0x0000), src_ep=1, dst=AddrModeAddress(addr_mode=<AddrMode.NWK: 2>, address=0xEA98), dst_ep=1, source_route=None, extended_timeout=False, tsn=85, profile_id=260, cluster_id=61184, data=Serialized[b'\x18U\x0b\x02\x00'], tx_options=<TransmitOptions.ACK: 1>, radius=0, non_member_radius=0, lqi=None, rssi=None)
2023-12-05 10:14:49.419 DEBUG (MainThread) [bellows.ezsp.protocol] Send command sendUnicast: (<EmberOutgoingMessageType.OUTGOING_DIRECT: 0>, 0xea98, EmberApsFrame(profileId=260, clusterId=61184, sourceEndpoint=1, destinationEndpoint=1, options=<EmberApsOption.APS_OPTION_RETRY|APS_OPTION_ENABLE_ROUTE_DISCOVERY: 320>, groupId=0, sequence=85), 64, b'\x18U\x0b\x02\x00')
2023-12-05 10:14:49.419 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.tze204_moes_ts0601_thermostat: Attribute 'occupied_heating_setpoint' = 1114214400 update
2023-12-05 10:14:49.420 DEBUG (MainThread) [homeassistant.components.zha.entity] climate.tze204_moes_ts0601_thermostat: Attribute 'occupied_heating_setpoint' = 1114214400 update

@darknessblade
Copy link

Can verify I am only getting DIPS that drop the set_temp to 0-8C

Still slightly annoying, but still better than spikes of 100MIL+, especially for logging data

From the logs: {Isolated the section of the DIP}

Log Temp dip.txt

@jacekk015
Copy link
Contributor

jacekk015 commented Mar 12, 2024

You know that you have a broken device. There's no cure for that.
Those 3 commands below were sent under half of the second.
Your Zigbee mesh is probably totally overloaded with those messages.
I can't make the quirk to omit the 15 degrees setting - it's still in the usable range.
We can play more and count time and omit incoming messages within 1 second, but that's on the HA side.
Zigbee Mesh will still be utilizing a ton of trash messages.

2024-03-12 13:04:05.141 DEBUG (MainThread) [zhaquirks.tuya] [0xb993:1:0xef00] Received value [0, 0, 0, 15] for attribute 0x0210 (command 0x0002)
2024-03-12 13:04:05.194 DEBUG (MainThread) [zhaquirks.tuya] [0xb993:1:0xef00] Received value [0, 0, 0, 0] for attribute 0x0210 (command 0x0002)
2024-03-12 13:04:05.242 DEBUG (MainThread) [zhaquirks.tuya] [0xb993:1:0xef00] Received value [0, 0, 0, 15] for attribute 0x0210 (command 0x0002)

I use the "Sonoff Zigbee 3.0 plus type E" with ZHA.

Did you upgrade the firmware of the dongle or are you on stock version?
I did upgrade my Sonoff-E with, I think, version 7.3.1 at
https://darkxst.github.io/silabs-firmware-builder/

@darknessblade
Copy link

You know that you have a broken device. There's no cure for that. Those 3 commands below were sent under half of the second. Your Zigbee mesh is probably totally overloaded with those messages. I can't make the quirk to omit the 15 degrees setting - it's still in the usable range. We can play more and count time and omit incoming messages within 1 second, but that's on the HA side. Zigbee Mesh will still be utilizing a ton of trash messages.

2024-03-12 13:04:05.141 DEBUG (MainThread) [zhaquirks.tuya] [0xb993:1:0xef00] Received value [0, 0, 0, 15] for attribute 0x0210 (command 0x0002)
2024-03-12 13:04:05.194 DEBUG (MainThread) [zhaquirks.tuya] [0xb993:1:0xef00] Received value [0, 0, 0, 0] for attribute 0x0210 (command 0x0002)
2024-03-12 13:04:05.242 DEBUG (MainThread) [zhaquirks.tuya] [0xb993:1:0xef00] Received value [0, 0, 0, 15] for attribute 0x0210 (command 0x0002)

I use the "Sonoff Zigbee 3.0 plus type E" with ZHA.

Did you upgrade the firmware of the dongle or are you on stock version? I did upgrade my Sonoff-E with, I think, version 7.3.1 at https://darkxst.github.io/silabs-firmware-builder/

I upgraded the firmware from the stock firmware, I am running "Firmware: 7.3.1.0 build 176"
I am not running it in DUAL modus [Zigbee+threads]


In what sense would the device be broken?
And what can I do to resolve this?


I have roughly 90 zigbee devices in my network. Of which 12 are switches with Neutral "functioning as repeaters".
According to the ''current'' logs: Zigbee channel 20 utilization is 97.98%!
The thermostat is the Highlighted one [top right] [Connection: 125/60]

"Wifi_analyzer does not show any overlapping Wifi networks in the range of the zigbee channel"


zigbee


@jacekk015
Copy link
Contributor

In what sense would the device be broken?

ZHA is in reader mode. It just hears what is sent to HA.
If your device send's 3 different commands, under half of the second, with temp changes that's the device fault.
ZHA doesn't ask anything itself.

You can't even blame repeater or etc. because those commands are different: 15, 0 and 15 degrees back.

Zigbee channel 20 utilization is 97.98%!
If that's only on the restart of HA that's normal.

@darknessblade
Copy link

darknessblade commented Mar 12, 2024

In what sense would the device be broken?

ZHA is in reader mode. It just hears what is sent to HA. If your device send's 3 different commands, under half of the second, with temp changes that's the device fault. ZHA doesn't ask anything itself.

You can't even blame repeater or etc. because those commands are different: 15, 0 and 15 degrees back.

AAH OK, I can try connecting it to TUYA [have a Zigbee hub, I only use for updates]
Will have to check then what the TUYA IOT platform shows regarding logs.

Have checked it with my zigbee hub and it still gives the same issues the TUYA-IOT platform shows this in the logs.
So Yes it is indeed the device that is defective.

Have also contacted aliexpress/the store for a solution, "since its a CHOICE store" its was dealt with by aliexpress, currently awaiting results/their verdict from the "higher support team"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Tuya Request/PR regarding a Tuya device
Projects
None yet
Development

No branches or pull requests

5 participants