31 Commits

Author SHA1 Message Date
18ebe99a41 conditions and advanced target 2025-11-10 10:54:26 -05:00
c04b71095c conditions and advanced target 2025-11-10 10:53:05 -05:00
1be86b7d48 conditions and advanced target 2025-11-10 10:36:54 -05:00
d32bb93747 conditions and advanced target 2025-11-10 10:36:08 -05:00
c0137387b3 conditions and advanced target 2025-11-10 10:29:44 -05:00
1a63451f87 conditions and advanced target 2025-11-10 10:24:09 -05:00
43c777f75c conditions and advanced target 2025-11-10 10:19:29 -05:00
6c4b80af50 conditions and advanced target 2025-11-10 10:12:32 -05:00
cf0ae4043f conditions and advanced target 2025-11-10 10:11:35 -05:00
bcef0c5e1a conditions and advanced target 2025-11-10 09:43:08 -05:00
3fe5bef2ba conditions and advanced target 2025-11-10 09:36:50 -05:00
8171597885 conditions and advanced target 2025-11-10 09:31:47 -05:00
9ff1580896 conditions and advanced target 2025-11-10 09:19:42 -05:00
7181024497 revert multiples as they are treated like "ands" in the condtions (#11) 2025-04-29 15:56:49 -04:00
7bb03ddf05 Add minimum brightness and pre-post actions (#9)
* Add  pre-post actions
  * post will only be executed if light is not turned off to disable the automation
* Add minimum starting brightness for light
* Make Workday sensor optional by using multiple
2025-04-22 10:15:33 -04:00
1ba56d49fc Update parabolic_alarm.yaml 2025-04-18 12:31:02 -04:00
cc19261f50 Merge pull request #8 from shbatm/shbatm-patch-1
Allow Datetime Sensors and Offset for Start Time
2025-04-18 12:30:05 -04:00
d8665a518f Change offset to text 2025-04-16 14:57:15 -05:00
4f10220e5b Change to offset value instead of calculated 2025-04-16 14:25:25 -05:00
343b710ab9 Update parabolic_alarm.yaml 2025-04-16 14:10:42 -05:00
2f9adcfac8 Update parabolic_alarm.yaml 2025-04-16 13:19:47 -05:00
e91adc42ea Correct formatting for Offset 2025-04-16 13:10:57 -05:00
938f68ec39 Fix offset formatting 2025-04-16 12:56:04 -05:00
1b34146670 Add option to finish at the givent time 2025-04-16 12:43:39 -05:00
34f66f8ff8 Allow using alarm sensor as trigger time 2025-04-16 12:25:01 -05:00
0a6e879aad Merge pull request #6 from steku/remove-transition
Remove transition
2025-03-28 08:31:19 -04:00
9682c6c5e8 Update timeout description 2025-03-28 08:30:24 -04:00
3e1b33702a Update timeout description 2025-03-26 09:05:54 -04:00
78cb28e6a0 remove transistion 2025-03-26 08:43:12 -04:00
59574d5b49 Merge pull request #4 from jeells102/main
Update parabolic_alarm.yaml
2025-03-19 09:24:36 -04:00
ce05c4791c Update parabolic_alarm.yaml
Fixed typo in person state as it should have been "home" and not "Home"
2025-03-11 10:24:53 +00:00
2 changed files with 121 additions and 75 deletions

View File

@ -1,152 +1,198 @@
blueprint:
name: Parabolic Alarm Automation
description: Turn a light on based on detected motion
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 unles you add your own OR block
default: []
selector:
condition:
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.
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
workday_sensor:
name: Workday Sensor
description: Binary Sensor for determining whether it should run. Typically from Workday Integration
- 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:
entity:
filter:
- domain: binary_sensor
text:
alarm_script:
name: Script to trigger
name: 📄 Script to trigger
description: Light Alarm Script
selector:
entity:
filter:
- domain: script
- domain:
- script
multiple: false
target_light:
name: Lights
description: The light(s) with kelvin
description: A single light or group
selector:
entity:
filter:
- domain: light
domain: light
name: Target Light
light_timeout:
name: Timeout
description: Light will turn off after this time on last run
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: 1
max: 60
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
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
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
name: ☀️ Starting Kelvin
target_kelvin_1:
description: >-
Target Kelvin value (cold) for the end of the first run
description: Target Kelvin value (cold) for the end of the first run
selector:
color_temp:
unit: kelvin
default: 3000
name: Target Kelvin 1
name: ☀️ Target Kelvin 1
max_brightness_1:
name: Maximum Brightness 1
name: ⭐️ Maximum Brightness 1
description: Finish value for first run
selector:
number:
min: 1
max: 100
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
name: Alarm Length 1
description: This is the start to finish time for the first run
selector:
number:
min: 1
max: 60
min: 1.0
max: 60.0
step: 1.0
mode: slider
default: 10
target_kelvin_2:
description: >-
Target Kelvin value (cold) for second run
description: Target Kelvin value (cold) for second run
selector:
color_temp:
unit: kelvin
default: 4000
name: Target Kelvin 2
name: 🌗 Target Kelvin 2
max_brightness_2:
name: Maximum Brightness 2
name: ⭐️ Maximum Brightness 2
description: Finish value for second run
selector:
number:
min: 1
max: 100
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
name: Alarm length 2
description: This is the start to finish time for the second run
selector:
number:
min: 1
max: 60
min: 1.0
max: 60.0
step: 1.0
mode: slider
default: 10
target_kelvin_3:
description: >-
Target Kelvin value (cold) for third run
description: Target Kelvin value (cold) for third run
selector:
color_temp:
unit: kelvin
default: 6500
name: Target Kelvin 3
name: 🌑 Target Kelvin 3
max_brightness_3:
name: Maximum Brightness 3
name: ⭐️ Maximum Brightness 3
description: Finish value for third and final run
selector:
number:
min: 1
max: 100
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
name: Alarm Length 3
description: This is the start to finish time for the third run
selector:
number:
min: 1
max: 60
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:
- platform: time
at: !input alarm_start_time
- trigger: time
at:
entity_id: !input alarm_start_time
offset: !input offset_from_start_time
condition:
- condition: state
entity_id: !input workday_sensor
state: "on"
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: 1
brightness_pct: !input start_brightness
entity_id: !input target_light
- delay:
seconds: 5
@ -159,7 +205,6 @@ action:
steps_per_minute: !input steps_per_minute
light_timeout: 0
target_light: !input target_light
- if:
- condition: state
state: "on"
@ -188,5 +233,7 @@ action:
steps_per_minute: !input steps_per_minute
light_timeout: !input light_timeout
target_light: !input target_light
mode: parallel
max: 10
- choose:
- conditions: []
sequence: !input post_action
mode: single

View File

@ -112,12 +112,11 @@ sequence:
seconds: "{{ individual_step }}"
- if:
- condition: template
value_template: "{{ is_state(target_light, 'on') }}"
value_template: "{{ not is_state(target_light, 'off') }}"
then:
- data:
brightness: "{{ brightness }}"
color_temp_kelvin: "{{ kelvin }}"
transition: "{{ individual_step - 1 }}"
target:
entity_id: "{{ target_light }}"
action: light.turn_on
@ -127,7 +126,7 @@ sequence:
- condition: template
value_template: "{{ light_timeout != 0 }}"
- condition: template
value_template: "{{ is_state(target_light, 'on') }}"
value_template: "{{ not is_state(target_light, 'off') }}"
then:
- delay:
minutes: "{{ light_timeout }}"