swingerman / ha-dual-smart-thermostat

The `dual_smart_thermostat` is an enhaced verion of generic thermostat implemented in Home Assistant. It uses several sensors and dedicated switches connected to a heater and air conditioning under the hood.
https://github.com/swingerman/ha-dual-thermostat
Apache License 2.0
108 stars 19 forks source link

[feat] Limit heat_cool mode adjustments #232

Open gorstj opened 3 weeks ago

gorstj commented 3 weeks ago

Is it possible to limit the maximum adjustment of each component of the heat_cool mode

Currently we can limit the minimum and the maximum through min_temp: 14 max_temp: 18

This essentially stops someone disabling the heating by setting a very low temperature (e.g. 10) or disabling the A/C by setting a high temp (e.g. 35).

However, is it possible to have a setting that prevents someone setting a very low A/C temperature e.g. limit it to 20 (don't want someone setting it below 20) Or limit the heating temperature to e.g. 21 (don't want someone heating to above 21)

Hope this makes sense and I am not missing an obvious config entry!

swingerman commented 2 weeks ago

I understand what you mean. It's possible to implement such a setting, but the UI of the thermostat card will not reflect it for the user. As far as I know, none of the thermostat cards supports this. So the user can think that the thermostat has a bug since it's hard to understand from the UI why one cannot set the AC to a lower value. However, this component has a hvac_action_reason public state attribute. And there are error toasters in the UI that could provide such feedback.

What d o you think?

gorstj commented 2 weeks ago

I think this could be an optional config and just silently limit in the background even if the UI doesn’t reflect the limit.

I suspect my household members will set the A/C to 15 ‘to cool it down quicker’ so not having an error is probably a good thing!

Could be a config entry like:

min_cooling_temp: 20 max_heating_temp: 21

p.s. just looked up what a toast notification is. I think this will be an elegant way of notifying the user e.g. if cooling temp is set at 15 it will pop up “Cooling temp set too low (15°C). This will be ignored and configured limit (20°C) used.”

p.s. 2 - I’m just starting to use this for testing to create zones for my dumb ducted AC. Therefore, happy to do any testing as I haven’t connected the virtual thermostats to anything yet other than helper toggles.