Skip to content

Instantly share code, notes, and snippets.

@ondrejbaranek
Last active December 6, 2022 00:13
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save ondrejbaranek/6fafd0a62a6650c8a849e6320713d8fc to your computer and use it in GitHub Desktop.
Save ondrejbaranek/6fafd0a62a6650c8a849e6320713d8fc to your computer and use it in GitHub Desktop.
Set climate entity temperature based on time in 4 rooms
blueprint:
name: TRV temperature schedule
description: Set TRV temperature based on 6 timeframes and for 4 rooms (TRVs)
domain: automation
input:
room1:
name: Room 1
selector:
entity:
domain: climate
room2:
name: Room 2
selector:
entity:
domain: climate
room3:
name: Room 3
selector:
entity:
domain: climate
room4:
name: Room 4
selector:
entity:
domain: climate
room4_thermostat:
name: Room 4 Thermostat
selector:
entity:
domain: climate
time_p1:
name: Time Period 1
default: '05:30:00'
selector:
time:
time_p2:
name: Time Period 2
default: '10:00:00'
selector:
time:
time_p3:
name: Time Period 3
default: '13:30:00'
selector:
time:
time_p4:
name: Time Period 4
default: '17:30:00'
selector:
time:
time_p5:
name: Time Period 5
default: '22:00:00'
selector:
time:
time_p6:
name: Time Period 6
default: '23:59:00'
selector:
time:
temp_room1_p1:
name: Temp
description: Temp to set for Room 1, period 1.
default: 23
selector:
number:
min: 15
max: 25
step: 1
mode: slider
temp_room1_p2:
name: Temp
description: Temp to set for Room 1, period 2.
default: 23
selector:
number:
min: 15
max: 25
step: 1
mode: slider
temp_room1_p3:
name: Temp
description: Temp to set for Room 1, period 3.
default: 23
selector:
number:
min: 15
max: 25
step: 1
mode: slider
temp_room1_p4:
name: Temp
description: Temp to set for Room 1, period 4.
default: 23
selector:
number:
min: 15
max: 25
step: 1
mode: slider
temp_room1_p5:
name: Temp
description: Temp to set for Room 1, period 5.
default: 23
selector:
number:
min: 15
max: 25
step: 1
mode: slider
temp_room1_p6:
name: Temp
description: Temp to set for Room 1, period 6.
default: 23
selector:
number:
min: 15
max: 25
step: 1
mode: slider
temp_room2_p1:
name: Temp
description: Temp to set for Room 2, period 1.
default: 23
selector:
number:
min: 15
max: 25
step: 1
mode: slider
temp_room2_p2:
name: Temp
description: Temp to set for Room 2, period 2.
default: 23
selector:
number:
min: 15
max: 25
step: 1
mode: slider
temp_room2_p3:
name: Temp
description: Temp to set for Room 2, period 3.
default: 23
selector:
number:
min: 15
max: 25
step: 1
mode: slider
temp_room2_p4:
name: Temp
description: Temp to set for Room 2, period 4.
default: 23
selector:
number:
min: 15
max: 25
step: 1
mode: slider
temp_room2_p5:
name: Temp
description: Temp to set for Room 2, period 5.
default: 23
selector:
number:
min: 15
max: 25
step: 1
mode: slider
temp_room2_p6:
name: Temp
description: Temp to set for Room 2, period 6.
default: 23
selector:
number:
min: 15
max: 25
step: 1
mode: slider
temp_room3_p1:
name: Temp
description: Temp to set for Room 3, period 1.
default: 23
selector:
number:
min: 15
max: 25
step: 1
mode: slider
temp_room3_p2:
name: Temp
description: Temp to set for Room 3, period 2.
default: 23
selector:
number:
min: 15
max: 25
step: 1
mode: slider
temp_room3_p3:
name: Temp
description: Temp to set for Room 3, period 3.
default: 23
selector:
number:
min: 15
max: 25
step: 1
mode: slider
temp_room3_p4:
name: Temp
description: Temp to set for Room 3, period 4.
default: 23
selector:
number:
min: 15
max: 25
step: 1
mode: slider
temp_room3_p5:
name: Temp
description: Temp to set for Room 3, period 5.
default: 23
selector:
number:
min: 15
max: 25
step: 1
mode: slider
temp_room3_p6:
name: Temp
description: Temp to set for Room 3, period 6.
default: 23
selector:
number:
min: 15
max: 25
step: 1
mode: slider
temp_room4_p1:
name: Temp
description: Temp to set for Room 4, period 1.
default: 23
selector:
number:
min: 15
max: 25
step: 1
mode: slider
temp_room4_p2:
name: Temp
description: Temp to set for Room 4, period 2.
default: 23
selector:
number:
min: 15
max: 25
step: 1
mode: slider
temp_room4_p3:
name: Temp
description: Temp to set for Room 4, period 3.
default: 23
selector:
number:
min: 15
max: 25
step: 1
mode: slider
temp_room4_p4:
name: Temp
description: Temp to set for Room 4, period 4.
default: 23
selector:
number:
min: 15
max: 25
step: 1
mode: slider
temp_room4_p5:
name: Temp
description: Temp to set for Room 4, period 5.
default: 23
selector:
number:
min: 15
max: 25
step: 1
mode: slider
temp_room4_p6:
name: Temp
description: Temp to set for Room 4, period 6.
default: 23
selector:
number:
min: 15
max: 25
step: 1
mode: slider
variables:
time_p1: !input time_p1
time_p2: !input time_p2
time_p3: !input time_p3
time_p4: !input time_p4
time_p5: !input time_p5
time_p6: !input time_p6
temp_room1_p1: !input temp_room1_p1
temp_room1_p2: !input temp_room1_p2
temp_room1_p3: !input temp_room1_p3
temp_room1_p4: !input temp_room1_p4
temp_room1_p5: !input temp_room1_p5
temp_room1_p6: !input temp_room1_p6
temp_room2_p1: !input temp_room2_p1
temp_room2_p2: !input temp_room2_p2
temp_room2_p3: !input temp_room2_p3
temp_room2_p4: !input temp_room2_p4
temp_room2_p5: !input temp_room2_p5
temp_room2_p6: !input temp_room2_p6
temp_room3_p1: !input temp_room3_p1
temp_room3_p2: !input temp_room3_p2
temp_room3_p3: !input temp_room3_p3
temp_room3_p4: !input temp_room3_p4
temp_room3_p5: !input temp_room3_p5
temp_room3_p6: !input temp_room3_p6
temp_room4_p1: !input temp_room4_p1
temp_room4_p2: !input temp_room4_p2
temp_room4_p3: !input temp_room4_p3
temp_room4_p4: !input temp_room4_p4
temp_room4_p5: !input temp_room4_p5
temp_room4_p6: !input temp_room4_p6
trigger:
- platform: time
at:
- !input time_p1
- !input time_p2
- !input time_p3
- !input time_p4
- !input time_p5
- !input time_p6
action:
- choose:
- conditions:
- condition: time
before: !input time_p2
after: !input time_p1
sequence:
- service: climate.set_temperature
data:
entity_id: !input room1
temperature: "{{ temp_room1_p1 }}"
- service: climate.set_temperature
data:
entity_id: !input room2
temperature: "{{ temp_room2_p1 }}"
- service: climate.set_temperature
data:
entity_id: !input room3
temperature: "{{ temp_room3_p1 }}"
- service: climate.set_temperature
data:
entity_id: !input room4
temperature: "{{ temp_room4_p1 }}"
- service: climate.set_temperature
data:
entity_id: !input room4_thermostat
temperature: "{{ temp_room4_p1 }}"
- conditions:
- condition: time
before: !input time_p3
after: !input time_p2
sequence:
- service: climate.set_temperature
data:
entity_id: !input room1
temperature: "{{ temp_room1_p2 }}"
- service: climate.set_temperature
data:
entity_id: !input room2
temperature: "{{ temp_room2_p2 }}"
- service: climate.set_temperature
data:
entity_id: !input room3
temperature: "{{ temp_room3_p2 }}"
- service: climate.set_temperature
data:
entity_id: !input room4
temperature: "{{ temp_room4_p2 }}"
- service: climate.set_temperature
data:
entity_id: !input room4_thermostat
temperature: "{{ temp_room4_p2 }}"
- conditions:
- condition: time
before: !input time_p4
after: !input time_p3
sequence:
- service: climate.set_temperature
data:
entity_id: !input room1
temperature: "{{ temp_room1_p3 }}"
- service: climate.set_temperature
data:
entity_id: !input room2
temperature: "{{ temp_room2_p3 }}"
- service: climate.set_temperature
data:
entity_id: !input room3
temperature: "{{ temp_room3_p3 }}"
- service: climate.set_temperature
data:
entity_id: !input room4
temperature: "{{ temp_room4_p3 }}"
- service: climate.set_temperature
data:
entity_id: !input room4_thermostat
temperature: "{{ temp_room4_p3 }}"
- conditions:
- condition: time
before: !input time_p5
after: !input time_p4
sequence:
- service: climate.set_temperature
data:
entity_id: !input room1
temperature: "{{ temp_room1_p4 }}"
- service: climate.set_temperature
data:
entity_id: !input room2
temperature: "{{ temp_room2_p4 }}"
- service: climate.set_temperature
data:
entity_id: !input room3
temperature: "{{ temp_room3_p4 }}"
- service: climate.set_temperature
data:
entity_id: !input room4
temperature: "{{ temp_room4_p4 }}"
- service: climate.set_temperature
data:
entity_id: !input room4_thermostat
temperature: "{{ temp_room4_p4 }}"
- conditions:
- condition: time
before: !input time_p6
after: !input time_p5
sequence:
- service: climate.set_temperature
data:
entity_id: !input room1
temperature: "{{ temp_room1_p5 }}"
- service: climate.set_temperature
data:
entity_id: !input room2
temperature: "{{ temp_room2_p5 }}"
- service: climate.set_temperature
data:
entity_id: !input room3
temperature: "{{ temp_room3_p5 }}"
- service: climate.set_temperature
data:
entity_id: !input room4
temperature: "{{ temp_room4_p5 }}"
- service: climate.set_temperature
data:
entity_id: !input room4_thermostat
temperature: "{{ temp_room4_p5 }}"
- conditions:
- condition: time
before: !input time_p1
after: !input time_p6
sequence:
- service: climate.set_temperature
data:
entity_id: !input room1
temperature: "{{ temp_room1_p6 }}"
- service: climate.set_temperature
data:
entity_id: !input room2
temperature: "{{ temp_room2_p6 }}"
- service: climate.set_temperature
data:
entity_id: !input room3
temperature: "{{ temp_room3_p6 }}"
- service: climate.set_temperature
data:
entity_id: !input room4
temperature: "{{ temp_room4_p6 }}"
- service: climate.set_temperature
data:
entity_id: !input room4_thermostat
temperature: "{{ temp_room4_p6 }}"
mode: single
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment