Skip to content

Instantly share code, notes, and snippets.

@drvenabili
Created January 24, 2025 08:01
Show Gist options
  • Save drvenabili/f17d568c94e1fce217dd54ec9198c235 to your computer and use it in GitHub Desktop.
Save drvenabili/f17d568c94e1fce217dd54ec9198c235 to your computer and use it in GitHub Desktop.
blueprint:
name: Climate schedule
description: Set the target temperature.
domain: automation
input:
climate_id:
name: Thermostat
description: The thermostat to control.
selector:
entity:
domain:
- climate
multiple: false
cooling_temp:
name: Cool Set Point
description: The target temperature when cooling.
selector:
number:
min: 0.0
max: 100.0
mode: slider
step: 1.0
heating_temp:
name: Heat Set Point
description: The target temperature when heating.
selector:
number:
min: 0.0
max: 100.0
mode: slider
step: 1.0
at_time:
name: Time
description: The time to update this device.
selector:
time: {}
retry_timeout:
name: Retry Timeout
description: Duration (in minutes) to retry if the device is offline.
default: 0
selector:
number:
min: 0.0
max: 240.0
mode: slider
step: 1.0
on_monday:
name: Monday
default: true
selector:
boolean: {}
on_tuesday:
name: Tuesday
default: true
selector:
boolean: {}
on_wednesday:
name: Wednesday
default: true
selector:
boolean: {}
on_thursday:
name: Thursday
default: true
selector:
boolean: {}
on_friday:
name: Friday
default: true
selector:
boolean: {}
on_saturday:
name: Saturday
default: true
selector:
boolean: {}
on_sunday:
name: Sunday
default: true
selector:
boolean: {}
source_url: https://community.home-assistant.io/t/daily-thermostat-schedule/395834
variables:
retry_timeout: !input retry_timeout
weekly_schedule:
- !input on_monday
- !input on_tuesday
- !input on_wednesday
- !input on_thursday
- !input on_friday
- !input on_saturday
- !input on_sunday
trigger:
- platform: time
at: !input at_time
condition: '{{ weekly_schedule[now().weekday()] }}'
action:
- repeat:
sequence:
- service: climate.set_temperature
entity_id: !input climate_id
data:
temperature: !input heating_temp
- delay: 00:01:00
until:
- or:
- '{{ repeat.index > retry_timeout }}'
- condition: state
entity_id: !input climate_id
attribute: temperature
state: !input heating_temp
mode: single
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment