Setting thermostat min_temp and max_temp values for heat vs cool mode

I am using Ecobee4 thermostats connected via the HomeKit integration. It works great in most regards, with faster and more consistent results than the Ecobee cloud integration. One issue that presents itself with daily use is that the available temperature set point range in Home Assistant cannot mirror the range set in the Ecobee, because the Ecobee range is specific to Heating and Cooling modes and in Home Assistant it is mode agnostic.

The thermostats have been configured with minimum and maximum values for heat mode and for cool mode. Home Assistant supports a min_temp and max_temp value on these devices, and when used it allows a user to quickly drag their finger without going too high or low. It reduces the range of the UI dial, giving greater touch device precision, and it avoids messages from Ecobee alerting that Home Assistant has selected a setpoint not within range. These ranges are different because you would not want an air conditioner set for the same low temperature you might set the heat to when on vacation in the winter, and the range helps enforce choices that might damage HVAC equipment or the home.

In Home Assistant these thermostats have a wide range defined as the min_temp and max_temp by default.

It is possible to define a min_temp and max_temp using customize.yaml, and this override does work but it is not heat/cool mode specific and would require manually changing every time the mode on the thermostats are changed.

Is there a way to override the min_temp and max_temp entity attributes for these climate entities that is conditional based upon the current mode/state (heat vs cool) of the entity? I don’t expect the values can be pulled in from the thermostat, but I would like to mirror those values in a mode-specific way in Home Assistant.

3 Likes