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
752 stars 689 forks source link

[Device Support Request] aqara Smart Radiator Thermostat E1, external sensor #2687

Closed MarkL1969 closed 1 month ago

MarkL1969 commented 1 year ago

Problem description

The TRV has the option to use an external sensor for temperature. (well, the temperature from an external sensor can be past over the the TRV). It's working for a while using Z2M and there was a quirk offering that for ZHA too: jymdman

Nwk: 0x3633 Device Type: EndDevice Eigenart: zhaquirks.xiaomi.aqara.thermostat_agl001.AGL001

Solution description

It would be perfect, if it was possible to offer switching to external sensor and passing over temperature to the TRV where integrated into the "official release".

Screenshots/Video

Screenshots/Video [Paste/upload your media here]

Device signature

Device signature ```json [Paste the device signature here] ```

Diagnostic information

Diagnostic information ```json [Paste the diagnostic information here] ```

Logs

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

Custom quirk

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

Additional information

Sorry if some information or "protocol" is missing - I'm a newbie to this...

hraschan commented 1 year ago

Implementation of this would be highly appreciated!

sroettering commented 11 months ago

What exactly does it mean for the E1 to use an external sensor? Does it query the sensor itself or is it just passed a temperature value that it can use? I'm also very interested in this feature and could try to add it to the current quirk. But I need to understand it first. I have several thermostats and temperature sensors from aqara but no hub so I can't try it myself.

MarkL1969 commented 11 months ago

The E1 accepts temperature values coming from external sensors, so the algorithms of the E1 will use those passed on values instead of the values coming from its internal sensor. This means that the temperature values have to be constantly written to the E1 - otherwise it will switch back to using its internal sensor. There ist a solution on how to solve this using a blueprint (as soon as the E1 quirk enables the use of external sensor values): https://community.home-assistant.io/t/z2m-aqara-trv-e1-link-external-temperature-sensor/609689/3

mb1248 commented 11 months ago

In z2m it works the following way:

The sensor attrib is set to external with send two buffers to the attrib 0xfff2. The buffers holds a command. In this case activate 'internal' or 'external' temperature value. The buffer is a straight forward calculation https://github.com/Koenkk/zigbee-herdsman-converters/blob/master/src/devices/xiaomi.ts#L424 I would assume, that the sensor attrib via 0x027e will then return 1 when set to 'external' mode.

A temperature value from an external source could then send to sensor_temp, again via 0xfff2. The buffer containing again a custom command and the temperature value is here: https://github.com/Koenkk/zigbee-herdsman-converters/blob/master/src/devices/xiaomi.ts#L483

When we have a quirk that calculate the command buffer. It should be easy to use zha toolkit to send the temperature value from any source to the thermostat.

mb1248 commented 11 months ago

Found an older not merged implementation: #2237

hraschan commented 11 months ago

@sroettering Can you get a quirk running with the current information?

sroettering commented 11 months ago

I will try maybe around christmas, thanks for the information

Lopicl commented 7 months ago

Hi, has there been any update on this? I was going to open an issue, but found this one which is exactly what I am looking for. I am available for testing in case.

sroettering commented 7 months ago

Sadly I did not have time for this yet :( If someone wants to give it a try, please go ahead. You are probably faster than me right now.

Lopicl commented 7 months ago

Sadly I did not have time for this yet :( If someone wants to give it a try, please go ahead. You are probably faster than me right now.

Don't worry! :) I found out that in PR #2802 there is a working quirk and an automation to set an external sensor, I have already tried it out and it is working.

github-actions[bot] commented 1 month ago

There hasn't been any activity on this issue recently. Due to the high number of incoming GitHub notifications, we have to clean some of the old issues, as many of them have already been resolved with the latest updates. Please make sure to update to the latest version and check if that solves the issue. Let us know if that works for you by adding a comment 👍 This issue has now been marked as stale and will be closed if no further activity occurs. Thank you for your contributions.