After doing more testing and trial/error, this is the automation I came up with that is doing exactly what I want. Note: The “heat_cool” parts I just added so I might need to tweak those even though I rarely use the “heat_cool” mode on the ecobee. I couldn’t get the code you gave me to work even after changing some things. The automation would only trigger once and I want the vents to always change if at ANY point, the temperature meets the criteria set in the triggers. I appreciate all the help and I definitely wouldn’t have been able to get this to work without you doing basically most of the work so thank you very much!
alias: Climate Control 5
description: ""
trigger:
- platform: template
value_template: >-
{{ min(states('sensor.office_temperature') | float(0),
states('sensor.upstairs_bedroom_temperature') | float(0)) >
min(states('sensor.living_room_temperature') | float(0),
states('sensor.master_bedroom_temperature') | float(0)) }}
- platform: template
value_template: >-
{{ max(states('sensor.office_temperature') | float(0),
states('sensor.upstairs_bedroom_temperature') | float(0)) <
max(states('sensor.living_room_temperature') | float(0),
states('sensor.master_bedroom_temperature') | float(0)) }}
- platform: template
value_template: >-
{{ max(states('sensor.office_temperature') | float(0),
states('sensor.upstairs_bedroom_temperature') | float(0)) <
min(states('sensor.living_room_temperature') | float(0),
states('sensor.master_bedroom_temperature') | float(0)) }}
- platform: template
value_template: >-
{{ min(states('sensor.office_temperature') | float(0),
states('sensor.upstairs_bedroom_temperature') | float(0)) >
max(states('sensor.living_room_temperature') | float(0),
states('sensor.master_bedroom_temperature') | float(0)) }}
condition: []
action:
- if:
- condition: or
conditions:
- condition: template
value_template: >-
{{ states('climate.ecobee') == 'cool' and
max(states('sensor.office_temperature') | float(0),
states('sensor.upstairs_bedroom_temperature') | float(0)) <
min(states('sensor.living_room_temperature') | float(0),
states('sensor.master_bedroom_temperature') | float(0)) }}
- condition: template
value_template: >-
{{ states('climate.ecobee') == 'heat' and
min(states('sensor.office_temperature') | float(0),
states('sensor.upstairs_bedroom_temperature') | float(0)) >
max(states('sensor.living_room_temperature') | float(0),
states('sensor.master_bedroom_temperature') | float(0)) }}
- condition: template
value_template: >-
{{ states('climate.ecobee') == 'heat_cool' and
min(states('sensor.office_temperature') | float(0),
states('sensor.upstairs_bedroom_temperature') | float(0)) >
max(states('sensor.living_room_temperature') | float(0),
states('sensor.master_bedroom_temperature') | float(0)) + 1 }}
- condition: template
value_template: >-
{{ states('climate.ecobee') == 'heat_cool' and
max(states('sensor.office_temperature') | float(0),
states('sensor.upstairs_bedroom_temperature') | float(0)) <
min(states('sensor.living_room_temperature') | float(0),
states('sensor.master_bedroom_temperature') | float(0)) - 1 }}
then:
- service: cover.set_cover_tilt_position
data:
tilt_position: 100
target:
device_id:
- 995c6caacc583617bf718569ad60d364
- 85d97da3e4b53ac396103826c33cccc9
- 17f1237c78a7fe66e862444c1419ed20
- fee8098b53d00382da374b6eb53237ba
else:
- service: cover.set_cover_tilt_position
data:
tilt_position: 0
target:
device_id:
- 995c6caacc583617bf718569ad60d364
- fee8098b53d00382da374b6eb53237ba
- 85d97da3e4b53ac396103826c33cccc9
- 17f1237c78a7fe66e862444c1419ed20
mode: restart