Skip to content

Instantly share code, notes, and snippets.

@toanju
Last active January 3, 2025 11:02
Show Gist options
  • Select an option

  • Save toanju/e5564ebad2b8a07e8e6dfb4b62d8af1f to your computer and use it in GitHub Desktop.

Select an option

Save toanju/e5564ebad2b8a07e8e6dfb4b62d8af1f to your computer and use it in GitHub Desktop.
blueprint:
name: Parabolic Light Alarm Automation
description: Turn a light on based on a start time.
domain: automation
input:
alarm_start_time:
name: Start Time
description: Datetime helper for alarm to start. Use time only and Workday sensor to determine what days to run. This is when the automation will start.
selector:
entity:
filter:
- domain: input_datetime
workday_sensor:
name: Workday Sensor
description: Binary Sensor for determining whether it should run. Typically from Workday Integration
selector:
entity:
filter:
- domain: binary_sensor
alarm_script:
name: Script to trigger
description: Light Alarm Script
selector:
entity:
filter:
- domain: script
target_light:
name: Light
description: The light(s) with kelvin
selector:
entity:
filter:
- domain: light
light_timeout:
name: Timeout
description: Light will turn off after this time on last run. Set to `0` to keep the light on.
default: 0
selector:
number:
min: 0
max: 120
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
max: 60
start_kelvin_temp:
description: Start Kelvin value (warm) for 1st run
selector:
color_temp:
unit: kelvin
min: 2000
max: 6500
default: 2000
name: Starting Kelvin
target_kelvin_1:
description: >-
Target Kelvin value (cold) for the end of the first run
selector:
color_temp:
unit: kelvin
min: 2000
max: 6500
default: 2150
name: Target Kelvin 1
max_brightness_1:
name: Maximum Brightness 1
description: Finish value for first run
selector:
number:
min: 1
max: 100
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
max: 60
default: 10
target_kelvin_2:
description: >-
Target Kelvin value (cold) for second run
selector:
color_temp:
unit: kelvin
min: 2000
max: 6500
default: 2400
name: Target Kelvin 2
max_brightness_2:
name: Maximum Brightness 2
description: Finish value for second run
selector:
number:
min: 1
max: 100
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
max: 60
default: 5
target_kelvin_3:
description: >-
Target Kelvin value (cold) for third run
selector:
color_temp:
unit: kelvin
min: 2000
max: 6500
default: 2732
name: Target Kelvin 3
max_brightness_3:
name: Maximum Brightness 3
description: Finish value for third and final run
selector:
number:
min: 1
max: 100
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
max: 60
default: 5
trigger:
- platform: time
at: !input alarm_start_time
condition:
- condition: state
entity_id: !input workday_sensor
state: "on"
action:
- action: light.turn_on
data:
color_temp_kelvin: !input start_kelvin_temp
brightness_pct: 1
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
mode: parallel
max: 10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment