Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save GaTechThomas/3f626c1bf28551b340c1cc88200905fa to your computer and use it in GitHub Desktop.
Save GaTechThomas/3f626c1bf28551b340c1cc88200905fa to your computer and use it in GitHub Desktop.
Homeassistant Blueprint - Sets a climate entity to a specifc temperatures at a set time everyday. If climate entity is off, it is normally not accepting temperature updated. This blueprints checks if climate entity is off and the temperature update will be set when thermostat is going back in heating mode.
blueprint:
name: Set thermostat temperature at specific times a day
description: Sets a climate entity to a specifc temperatures at a set time everyday. If climate entity is off, it is normally not accepting temperature updated. This blueprints checks if climate entity is off and the temperature update will be set when thermostat is going back in heating mode.
domain: automation
source_url: https://gist.github.com/GaTechThomas/3f626c1bf28551b340c1cc88200905fa
input:
time_to_set_morning:
name: Time for morning
description: When should the temperature be set
selector:
time:
temp_to_set_morning:
name: Temperature
description: Temperature to set for morning
default: 70
selector:
number:
min: 65
max: 75
unit_of_measurement: degrees
step: 1.0
time_to_set_afternoon:
name: Time for afternoon
description: When should the temperature be set
selector:
time:
temp_to_set_afternoon:
name: Temperature
description: Temperature to set for afternoon
default: 70
selector:
number:
min: 65
max: 75
unit_of_measurement: degrees
step: 1.0
time_to_set_evening:
name: Time for evening
description: When should the temperature be set
selector:
time:
temp_to_set_evening:
name: Temperature
description: Temperature to set for evening
default: 70
selector:
number:
min: 65
max: 75
unit_of_measurement: degrees
step: 1.0
time_to_set_night:
name: Time for night
description: When should the temperature be set
selector:
time:
temp_to_set_night:
name: Temperature
description: Temperature to set for night
default: 68
selector:
number:
min: 65
max: 75
unit_of_measurement: degrees
step: 1.0
climate_entity:
name: Thermostat
description: Climate entity which will get the temperature update
selector:
entity:
domain: climate
trigger:
- platform: time
at:
- !input time_to_set_morning
- !input time_to_set_afternoon
- !input time_to_set_evening
- !input time_to_set_night
mode: single
action:
- choose:
- conditions:
- condition: state
entity_id: !input climate_entity
state: "heat"
sequence:
- choose:
- conditions:
- condition: time
after: !input time_to_set_morning
before: !input time_to_set_afternoon
sequence:
- service: climate.set_temperature
entity_id: !input climate_entity
data:
temperature: !input temp_to_set_morning
- conditions:
- condition: time
after: !input time_to_set_afternoon
before: !input time_to_set_evening
sequence:
- service: climate.set_temperature
entity_id: !input climate_entity
data:
temperature: !input temp_to_set_afternoon
- conditions:
- condition: time
after: !input time_to_set_evening
before: !input time_to_set_night
sequence:
- service: climate.set_temperature
entity_id: !input climate_entity
data:
temperature: !input temp_to_set_evening
- conditions:
- condition: time
after: !input time_to_set_night
before: !input time_to_set_morning
sequence:
- service: climate.set_temperature
entity_id: !input climate_entity
data:
temperature: !input temp_to_set_night
- conditions:
- condition: state
entity_id: !input climate_entity
state: "off"
sequence:
- wait_for_trigger:
platform: state
entity_id: !input climate_entity
from: "off"
to: "heat"
#delay is necessary to prevents an override by other functions like window/doors sensor control which are restoring the prevoius temperature
- delay: 10
- choose:
- conditions:
- condition: time
after: !input time_to_set_morning
before: !input time_to_set_afternoon
sequence:
- service: climate.set_temperature
entity_id: !input climate_entity
data:
temperature: !input temp_to_set_morning
- conditions:
- condition: time
after: !input time_to_set_afternoon
before: !input time_to_set_evening
sequence:
- service: climate.set_temperature
entity_id: !input climate_entity
data:
temperature: !input temp_to_set_afternoon
- conditions:
- condition: time
after: !input time_to_set_evening
before: !input time_to_set_night
sequence:
- service: climate.set_temperature
entity_id: !input climate_entity
data:
temperature: !input temp_to_set_evening
- conditions:
- condition: time
after: !input time_to_set_night
before: !input time_to_set_morning
sequence:
- service: climate.set_temperature
entity_id: !input climate_entity
data:
temperature: !input temp_to_set_night
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment