mirror of
https://github.com/steku/ha_cercadian_alarm.git
synced 2025-12-07 23:22:16 +00:00
240 lines
7.1 KiB
YAML
240 lines
7.1 KiB
YAML
blueprint:
|
|
name: Parabolic Alarm Automation
|
|
description: Turn a light on based on a start time, whether it is a workday and whether a person is home. This is to match the sunrise and allow for a natural wake up.
|
|
domain: automation
|
|
input:
|
|
pre_action:
|
|
name: 🎮 Pre Script Action
|
|
description: An action you want to perform before the lights turn on.
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
conditions:
|
|
name: Conditions
|
|
description: Set your own conditions for this automation. All conditions must pass unless you add your own OR block
|
|
default: []
|
|
selector:
|
|
condition:
|
|
alarm_start_time:
|
|
name: 🕒 Start Time
|
|
description:
|
|
Datetime helper or sensor for the alarm to start. Use time only and Workday sensor
|
|
to determine what days to run.
|
|
selector:
|
|
entity:
|
|
filter:
|
|
- domain:
|
|
- input_datetime
|
|
- domain: sensor
|
|
device_class: timestamp
|
|
multiple: false
|
|
offset_from_start_time:
|
|
name: 🏁 Offset From Start Time
|
|
description: Adjust the amount of time before or after the set Start Time value to start the transition. Enter seconds or HH:MM:SS format (e.g. "-00:05:00" to start 5 minutes before the Start Time. Useful if the start time comes from an alarm entity and you want to adjust where in the brightness cycle you are when the alarm goes off. See https://www.home-assistant.io/docs/automation/trigger/#sensors-of-datetime-device-class-with-offsets for caution about using positive offsets.
|
|
default: "-00:00:00"
|
|
selector:
|
|
text:
|
|
alarm_script:
|
|
name: 📄 Script to trigger
|
|
description: Light Alarm Script
|
|
selector:
|
|
entity:
|
|
filter:
|
|
- domain:
|
|
- script
|
|
multiple: false
|
|
target_light:
|
|
description: A single light or group
|
|
selector:
|
|
entity:
|
|
filter:
|
|
domain: light
|
|
name: Target Light
|
|
light_timeout:
|
|
name: ⏱️ Timeout
|
|
description: Light will turn off after this time on last run. Setting this to 0 will leave the light on.
|
|
default: 10
|
|
selector:
|
|
number:
|
|
min: 0.0
|
|
max: 60.0
|
|
step: 1.0
|
|
mode: slider
|
|
steps_per_minute:
|
|
name: 🏃♂️ Steps per minute for all runs
|
|
description:
|
|
Used for configuring percentage of each step for brightness and
|
|
color temperature
|
|
default: 12
|
|
selector:
|
|
number:
|
|
min: 1.0
|
|
max: 60.0
|
|
step: 1.0
|
|
mode: slider
|
|
start_brightness:
|
|
name: ⭐️ Start Brightness
|
|
description: Starting value for brightness
|
|
selector:
|
|
number:
|
|
min: 1.0
|
|
max: 100.0
|
|
step: 1.0
|
|
mode: slider
|
|
default: 1.0
|
|
start_kelvin_temp:
|
|
description: Start Kelvin value (warm) for 1st run
|
|
selector:
|
|
color_temp:
|
|
unit: kelvin
|
|
default: 2500
|
|
name: ☀️ Starting Kelvin
|
|
target_kelvin_1:
|
|
description: Target Kelvin value (cold) for the end of the first run
|
|
selector:
|
|
color_temp:
|
|
unit: kelvin
|
|
default: 3000
|
|
name: ☀️ Target Kelvin 1
|
|
max_brightness_1:
|
|
name: ⭐️ Maximum Brightness 1
|
|
description: Finish value for first run
|
|
selector:
|
|
number:
|
|
min: 1.0
|
|
max: 100.0
|
|
step: 1.0
|
|
mode: slider
|
|
default: 10
|
|
alarm_length_1:
|
|
name: ⏰ Alarm Length 1
|
|
description: This is the start to finish time for the first run
|
|
selector:
|
|
number:
|
|
min: 1.0
|
|
max: 60.0
|
|
step: 1.0
|
|
mode: slider
|
|
default: 10
|
|
target_kelvin_2:
|
|
description: Target Kelvin value (cold) for second run
|
|
selector:
|
|
color_temp:
|
|
unit: kelvin
|
|
default: 4000
|
|
name: 🌗 Target Kelvin 2
|
|
max_brightness_2:
|
|
name: ⭐️ Maximum Brightness 2
|
|
description: Finish value for second run
|
|
selector:
|
|
number:
|
|
min: 1.0
|
|
max: 100.0
|
|
step: 1.0
|
|
mode: slider
|
|
default: 50
|
|
alarm_length_2:
|
|
name: ⏰ Alarm length 2
|
|
description: This is the start to finish time for the second run
|
|
selector:
|
|
number:
|
|
min: 1.0
|
|
max: 60.0
|
|
step: 1.0
|
|
mode: slider
|
|
default: 10
|
|
target_kelvin_3:
|
|
description: Target Kelvin value (cold) for third run
|
|
selector:
|
|
color_temp:
|
|
unit: kelvin
|
|
default: 6500
|
|
name: 🌑 Target Kelvin 3
|
|
max_brightness_3:
|
|
name: ⭐️ Maximum Brightness 3
|
|
description: Finish value for third and final run
|
|
selector:
|
|
number:
|
|
min: 1.0
|
|
max: 100.0
|
|
step: 1.0
|
|
mode: slider
|
|
default: 100
|
|
alarm_length_3:
|
|
name: ⏰ Alarm Length 3
|
|
description: This is the start to finish time for the third run
|
|
selector:
|
|
number:
|
|
min: 1.0
|
|
max: 60.0
|
|
step: 1.0
|
|
mode: slider
|
|
default: 5
|
|
post_action:
|
|
name: 🎮 Post Script Action
|
|
description: An action you want to run after the script has finished
|
|
default: []
|
|
selector:
|
|
action: {}
|
|
source_url: https://github.com/steku/ha_cercadian_alarm/blob/main/parabolic_alarm.yaml
|
|
trigger:
|
|
- trigger: time
|
|
at:
|
|
entity_id: !input alarm_start_time
|
|
offset: !input offset_from_start_time
|
|
condition:
|
|
condition: and
|
|
conditions: !input conditions
|
|
action:
|
|
- choose:
|
|
- conditions: []
|
|
sequence: !input pre_action
|
|
- action: light.turn_on
|
|
data:
|
|
color_temp_kelvin: !input start_kelvin_temp
|
|
brightness_pct: !input start_brightness
|
|
entity_id: !input target_light
|
|
- delay:
|
|
seconds: 5
|
|
- action: !input alarm_script
|
|
data:
|
|
target_kelvin: !input target_kelvin_1
|
|
start_kelvin: !input start_kelvin_temp
|
|
max_brightness_pct: !input max_brightness_1
|
|
alarm_length: !input alarm_length_1
|
|
steps_per_minute: !input steps_per_minute
|
|
light_timeout: 0
|
|
target_light: !input target_light
|
|
- if:
|
|
- condition: state
|
|
state: "on"
|
|
entity_id: !input target_light
|
|
then:
|
|
- action: !input alarm_script
|
|
data:
|
|
target_kelvin: !input target_kelvin_2
|
|
start_kelvin: !input target_kelvin_1
|
|
max_brightness_pct: !input max_brightness_2
|
|
alarm_length: !input alarm_length_2
|
|
steps_per_minute: !input steps_per_minute
|
|
light_timeout: 0
|
|
target_light: !input target_light
|
|
- if:
|
|
- condition: state
|
|
state: "on"
|
|
entity_id: !input target_light
|
|
then:
|
|
- action: !input alarm_script
|
|
data:
|
|
target_kelvin: !input target_kelvin_3
|
|
start_kelvin: !input target_kelvin_2
|
|
max_brightness_pct: !input max_brightness_3
|
|
alarm_length: !input alarm_length_3
|
|
steps_per_minute: !input steps_per_minute
|
|
light_timeout: !input light_timeout
|
|
target_light: !input target_light
|
|
- choose:
|
|
- conditions: []
|
|
sequence: !input post_action
|
|
mode: single
|