Koenkk / zigbee2mqtt

Zigbee 🐝 to MQTT bridge 🌉, get rid of your proprietary Zigbee bridges 🔨
https://www.zigbee2mqtt.io
GNU General Public License v3.0
12.22k stars 1.69k forks source link

Aqara Thermostat E1 (SRTS-A01). Add hvac_action report to the converter #19952

Closed DaN66O closed 5 months ago

DaN66O commented 12 months ago

Is your feature request related to a problem? Please describe

This TRV does not know how to report hvac_action, because of this, it is difficult to work with it in Home Assistant. Knowing temperature and current_temperature, is it possible to create an hvac_action variable in the converter based on the readings of the target temperature and the current temperature and add it to the climate supported_features?

Describe the solution you'd like

Based on the readings of the target temperature and the current temperature, create the hvac_action variable and add it to the climate supported_features.

Describe alternatives you've considered

Based on the values of temperature and current_temperature, create the variable hvac_action in the Home Assistant and then create a new climat

Additional context

no information available

github-actions[bot] commented 6 months ago

This issue is stale because it has been open 180 days with no activity. Remove stale label or comment or this will be closed in 30 days

niorko commented 1 month ago

Is it even possible? Radiator valve could ask for heating sooner then the temperature drops or vice versia. Calculating hvac_action is not possible I guess, or is it?

DaN66O commented 1 month ago

This is where they tried to solve it programmatically in the home assistant https://github.com/Koenkk/zigbee2mqtt/issues/13993#issuecomment-1382697913 I thought it could be solved in the converter.

niorko commented 1 month ago

This is where they tried to solve it programmatically in the home assistant #13993 (comment) I thought it could be solved in the converter.

hvac_action_template: > {% if state_attr('climate.real_trv', 'preset_mode') == 'manual' and state_attr('climate.real_trv', 'system_mode') == 'heat' and state_attr('climate.real_trv', 'temperature') > state_attr('climate.real_trv', 'current_temperature') + 1 %} heating {% else %} idle {% endif %}

His calculation is not right :-(. It determines hvac_action based on the current temperature and target temperature. If target tempersture is higher, then it is consideted as "heating".

I did similar approach and if you use BetterThermostat it does the same thing - but you can set threshold. It is really far from what I want, but could work.

DaN66O commented 1 month ago

The whole point of my question was not to make new thermostats but to implement it in a standard converter. p.s. I don't use BetterThermostat for the same reason.