Forked from quallenbezwinger/set_climate_on_different_times.yaml
Last active
March 22, 2021 04:32
-
-
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.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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