153 lines
4.2 KiB
YAML
153 lines
4.2 KiB
YAML
blueprint:
|
|
name: Alarm Clock
|
|
description: Alarm Clock with wake up light
|
|
domain: automation
|
|
source_url: https://git.thethomaas.net/TheThomaas/home-assistant-blueprints/raw/branch/main/alarm_clock.yaml
|
|
input:
|
|
alarm_time:
|
|
name: Alarm Time
|
|
description: Input containing the time of the alarm
|
|
selector:
|
|
entity:
|
|
domain: input_datetime
|
|
time_offset:
|
|
name: Time Offset
|
|
description: Offset to turn on the lights before the alarm
|
|
default: 5
|
|
selector:
|
|
number:
|
|
min: 0
|
|
max: 30
|
|
unit_of_measurement: minutes
|
|
turn_off_delay:
|
|
name: Lights turn off delay
|
|
description: Belay before the lights turn off after waking up
|
|
default: 10
|
|
selector:
|
|
number:
|
|
min: 0
|
|
max: 30
|
|
unit_of_measurement: minutes
|
|
binary_condition:
|
|
name: Alarm today
|
|
description: Trigger the alarm today ?
|
|
selector:
|
|
entity:
|
|
domain: binary_sensor
|
|
presence_condition:
|
|
name: Presence Conditions
|
|
description: Everything that can have a state 'home'
|
|
selector:
|
|
entity:
|
|
domain:
|
|
- input_select
|
|
- person
|
|
target_light:
|
|
name: Target Light
|
|
description: Light that will be turned on
|
|
selector:
|
|
entity:
|
|
domain: light
|
|
alarmed_turned_off:
|
|
name: Alarm Turned Off
|
|
description: Everything that can have a state on/off
|
|
selector:
|
|
entity:
|
|
domain: binary_sensor
|
|
# has_woken_up:
|
|
# name: Person has woken up
|
|
# description: Everything that can have a state on/off
|
|
# selector:
|
|
# entity:
|
|
# domain: binary_sensor
|
|
sleep_mode:
|
|
name: Sleep Mode
|
|
description: Switch to turn off before the alarm
|
|
selector:
|
|
entity:
|
|
domain: switch
|
|
# presence:
|
|
# name: presence
|
|
# selector:
|
|
# entity:
|
|
# domain: input_boolean
|
|
additional_section:
|
|
name: Additional Actions
|
|
description: Additional actions before and after the lights turn on
|
|
input:
|
|
before_wake_up:
|
|
name: Before wake up action
|
|
description: Actions before the lights turn on
|
|
selector:
|
|
action:
|
|
after_wake_up:
|
|
name: After wake up action
|
|
description: Actions after the lights turn on
|
|
selector:
|
|
action:
|
|
|
|
trigger_variables:
|
|
alarm_time: !input alarm_time
|
|
time_offset: !input time_offset
|
|
|
|
variables:
|
|
binary_condition: !input binary_condition
|
|
presence_condition: !input presence_condition
|
|
target_light: !input target_light
|
|
# has_woken_up: !input has_woken_up
|
|
sleep_mode: !input sleep_mode
|
|
# presence: !input presence
|
|
|
|
trigger:
|
|
- platform: template
|
|
value_template: >
|
|
{% set Hour, Minute = states("sensor.time").split(":") %}
|
|
{% set seconds = Hour | int * 3600 + Minute | int * 60 %}
|
|
{% set offset = time_offset * 60 %}
|
|
|
|
{% set time2 = state_attr(alarm_time, 'timestamp') | timestamp_custom('%H:%M') %}
|
|
{% set Hour2, Minute2 = time2.split(":") %}
|
|
{% set seconds2 = Hour2 | int * 3600 + Minute2 | int * 60 %}
|
|
|
|
{{ seconds2 - offset == seconds }}
|
|
|
|
condition:
|
|
- condition: state
|
|
entity_id: !input binary_condition
|
|
state: 'on'
|
|
- condition: template
|
|
value_template: >
|
|
{{ states(presence_condition) in ['Home', 'home'] }}
|
|
# - condition: state
|
|
# entity_id: !input has_woken_up
|
|
# state: 'off'
|
|
# for:
|
|
# hours: 8
|
|
|
|
action:
|
|
- sequence: !input before_wake_up
|
|
- service: switch.turn_off
|
|
entity_id: !input 'sleep_mode'
|
|
# - service: input_boolean.turn_on
|
|
# target:
|
|
# entity_id: !input 'presence'
|
|
- service: light.turn_on
|
|
entity_id: !input 'target_light'
|
|
data:
|
|
brightness_pct: 100
|
|
transition: "{{ time_offset * 60 }}"
|
|
- wait_for_trigger:
|
|
- platform: state
|
|
entity_id: !input alarmed_turned_off
|
|
to: "on"
|
|
# - wait_template: "{{ is_state(has_woken_up, 'on') }}"
|
|
- delay:
|
|
minutes: !input turn_off_delay
|
|
- service: light.turn_off
|
|
entity_id: !input 'target_light'
|
|
data:
|
|
transition: 60
|
|
- sequence: !input after_wake_up
|
|
# - service: input_boolean.turn_off
|
|
# target:
|
|
# entity_id: !input 'presence' |