According to this documentation the climate.set_temperature service supports setting the hvac_mode. But when I try it with my Ecobee device it doesn’t work.
This post reports a similar issue for another thermostat
Here’s my action:
service: climate.set_temperature
data:
temperature: 74
hvac_mode: cool
target:
entity_id: climate.my_ecobee3
enabled: true
I’m testing using “Run Actions”, so it’s not related to the trigger. Here’s the Trace:
Executed: August 13, 2022 at 4:45:47 PM
Result:
params:
domain: climate
service: set_temperature
service_data:
temperature: 74
hvac_mode: cool
entity_id:
- climate.my_ecobee3
target:
entity_id:
- climate.my_ecobee3
running_script: false
limit: 10
But my thermostat ends up in heat_cool mode with max temp 79 and min temp 63. It is overriding the thermostat settings, just not to the requested state - before running the action it was in heat_cool with limits 63 and 74. I don’t know where those limits came from. When I change the target temp to 73 the new max temp becomes 78, so it’s like it’s setting the max to target + 5.
Finally, if I do it from Services in Developer Tools instead of Run Action from my Automation I get the exact same result:
service: climate.set_temperature
data:
temperature: 73
hvac_mode: cool
target:
entity_id: climate.my_ecobee3
As a workaround I’m calling set_hvac_mode first followed by set_temperature without any hvac_mode, which works, but it seems like there is either a bug or the documentation is wrong