Make more use of script variables
This commit is contained in:
@ -299,6 +299,10 @@ script:
|
||||
{% endif %}
|
||||
- delay:
|
||||
seconds: 1
|
||||
- variables:
|
||||
bedtime: "{{ state_attr('input_datetime.kallen_bedtime','timestamp') }}"
|
||||
low: "{{ states('sensor.overnight_lowest_temperature') | int }}"
|
||||
threshold: "{{ states('input_number.kallen_fan_threshold') | int }}"
|
||||
- if:
|
||||
- condition: state
|
||||
entity_id: input_boolean.kallen_briefing_times_override
|
||||
@ -307,7 +311,7 @@ script:
|
||||
- service: input_datetime.set_datetime
|
||||
entity_id: input_datetime.kallen_nightly_briefing
|
||||
data:
|
||||
time: "{{ (state_attr('input_datetime.kallen_bedtime','timestamp') - 1200) | timestamp_custom('%H:%M', false) }}"
|
||||
time: "{{ (bedtime - 1200) | timestamp_custom('%H:%M', false) }}"
|
||||
- if:
|
||||
- condition: state
|
||||
entity_id: input_boolean.kallen_bedroom_climate_override
|
||||
@ -320,7 +324,7 @@ script:
|
||||
option: >
|
||||
{% if is_state('input_boolean.kallen_overnight','on') %}
|
||||
N/A
|
||||
{% elif (states('sensor.overnight_lowest_temperature') | int) >= (states('input_number.kallen_fan_threshold') | int) %}
|
||||
{% elif low >= threshold %}
|
||||
Fan
|
||||
{% else %}
|
||||
White Noise
|
||||
@ -331,9 +335,9 @@ script:
|
||||
data:
|
||||
time: >
|
||||
{% if is_state('input_boolean.hot_day','on') %}
|
||||
{{ (state_attr('input_datetime.kallen_bedtime','timestamp') - 3600) | timestamp_custom('%H:%M', false) }}
|
||||
{{ bedtime - 3600 | timestamp_custom('%H:%M', false) }}
|
||||
{% else %}
|
||||
{{ state_attr('input_datetime.kallen_bedtime','timestamp') | timestamp_custom('%H:%M', false) }}
|
||||
{{ bedtime | timestamp_custom('%H:%M', false) }}
|
||||
{% endif %}
|
||||
- if:
|
||||
- condition: state
|
||||
@ -344,7 +348,7 @@ script:
|
||||
target:
|
||||
entity_id: input_datetime.kallen_bedtime
|
||||
data:
|
||||
time: "{{ (state_attr('input_datetime.kallen_bedtime','timestamp') + 3600) | timestamp_custom('%H:%M', false) }}"
|
||||
time: "{{ bedtime + 3600 | timestamp_custom('%H:%M', false) }}"
|
||||
- service: input_datetime.set_datetime
|
||||
target:
|
||||
entity_id: input_datetime.kallen_nightly_briefing
|
||||
@ -367,15 +371,22 @@ script:
|
||||
house_scheduling_morning:
|
||||
alias: 'House Scheduling Morning'
|
||||
sequence:
|
||||
- variables:
|
||||
kallen_school_start: "{{ state_attr('input_datetime.kallen_school_day_start','timestamp') }}"
|
||||
tina_work_start: "{{ state_attr('input_datetime.tina_workday_start','timestamp') }}"
|
||||
tina_work_end: "{{ state_attr('input_datetime.tina_workday_end','timestamp') }}"
|
||||
high: "{{ states('sensor.todays_high_temp') | int }}"
|
||||
- service: input_datetime.set_datetime
|
||||
entity_id: input_datetime.audible_notification_on
|
||||
data:
|
||||
time: >
|
||||
{% if is_state('input_boolean.kallen_school_today','on') %}
|
||||
{{ (state_attr('input_datetime.kallen_school_day_start','timestamp') - 5400) | timestamp_custom('%H:%M', false) }}
|
||||
{{ kallen_school_start - 5400 | timestamp_custom('%H:%M', false) }}
|
||||
{% else %}
|
||||
09:00
|
||||
{% endif %}
|
||||
- variables:
|
||||
audible_on: "{{ state_attr('input_datetime.audible_notification_on','timestamp') }}"
|
||||
- if:
|
||||
- condition: state
|
||||
entity_id: input_boolean.house_briefing_times_override
|
||||
@ -389,13 +400,13 @@ script:
|
||||
{% if is_state('input_boolean.two_hour_delay','on') %}
|
||||
10:20
|
||||
{% else %}
|
||||
{{ (state_attr('input_datetime.kallen_school_day_start','timestamp') - 2400) | timestamp_custom('%H:%M', false) }}
|
||||
{{ kallen_school_start - 2400 | timestamp_custom('%H:%M', false) }}
|
||||
{% endif %}
|
||||
{% elif is_state('input_boolean.work_today','on') and is_state('input_boolean.kallen_school_today','off') %}
|
||||
{% if (state_attr('input_datetime.tina_workday_start','timestamp')) > 43200 %}
|
||||
{% if tina_work_start > 43200 %}
|
||||
12:00
|
||||
{% elif (state_attr('input_datetime.tina_workday_start','timestamp') - 1500 ) > (state_attr('input_datetime.audible_notification_on','timestamp')) %}
|
||||
{{ (state_attr('input_datetime.tina_workday_start', 'timestamp') - 1500) | timestamp_custom('%H:%M', false) }}
|
||||
{% elif (tina_work_start - 1500) > audible_on %}
|
||||
{{ tina_work_start - 1500 | timestamp_custom('%H:%M', false) }}
|
||||
{% else %}
|
||||
10:00
|
||||
{% endif %}
|
||||
@ -415,15 +426,15 @@ script:
|
||||
{% elif is_state('input_boolean.kallen_school_today','off') and is_state('input_boolean.work_today','off') %}
|
||||
15:00
|
||||
{% else %}
|
||||
{% if (state_attr('input_datetime.tina_workday_end','timestamp')) > 61200 %}
|
||||
{% if tina_work_end > 61200 %}
|
||||
16:00
|
||||
{% else %}
|
||||
{{ (state_attr('input_datetime.tina_workday_end', 'timestamp') + 3600) | timestamp_custom('%H:%M', false) }}
|
||||
{{ tina_work_end + 3600 | timestamp_custom('%H:%M', false) }}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
- if:
|
||||
- condition: template
|
||||
value_template: "{{ states('sensor.todays_high_temp') | int >= states('input_number.hot_day_threshold') | int }}"
|
||||
value_template: "{{ high >= states('input_number.hot_day_threshold') | int }}"
|
||||
then:
|
||||
- service: input_boolean.turn_on
|
||||
target:
|
||||
@ -434,7 +445,7 @@ script:
|
||||
entity_id: input_boolean.hot_day
|
||||
- if:
|
||||
- condition: template
|
||||
value_template: "{{ states('sensor.todays_high_temp') | int <= states('input_number.cold_day_threshold') | int }}"
|
||||
value_template: "{{ high <= states('input_number.cold_day_threshold') | int }}"
|
||||
then:
|
||||
- service: input_boolean.turn_on
|
||||
target:
|
||||
@ -450,6 +461,8 @@ script:
|
||||
house_scheduling_evening:
|
||||
alias: 'House Scheduling Evening'
|
||||
sequence:
|
||||
- variables:
|
||||
kallen_bedtime: "{{ state_attr('input_datetime.kallen_bedtime','timestamp') }}"
|
||||
- if:
|
||||
- condition: state
|
||||
entity_id: input_boolean.house_briefing_times_override
|
||||
@ -460,9 +473,9 @@ script:
|
||||
data:
|
||||
time: >
|
||||
{% if is_state('input_boolean.kallen_late_bedtime','on') %}
|
||||
{{ (state_attr('input_datetime.kallen_bedtime','timestamp') - 7200) | timestamp_custom('%H:%M', false) }}
|
||||
{{ kallen_bedtime - 7200 | timestamp_custom('%H:%M', false) }}
|
||||
{% else %}
|
||||
{{ (state_attr('input_datetime.kallen_bedtime','timestamp') - 3600) | timestamp_custom('%H:%M', false) }}
|
||||
{{ kallen_bedtime - 3600 | timestamp_custom('%H:%M', false) }}
|
||||
{% endif %}
|
||||
- service: input_datetime.set_datetime
|
||||
entity_id: input_datetime.audible_notification_off
|
||||
@ -505,7 +518,10 @@ script:
|
||||
master_bedroom_scheduling_evening:
|
||||
alias: 'Master Bedroom Scheduling Evening'
|
||||
sequence:
|
||||
- if:
|
||||
- variables:
|
||||
low: "{{ states('sensor.overnight_lowest_temperature') | int }}"
|
||||
high: "{{ states('sensor.todays_high_temp') | int }}"
|
||||
- if:
|
||||
- condition: state
|
||||
entity_id: input_boolean.master_bedroom_climate_override
|
||||
state: 'off'
|
||||
@ -514,7 +530,6 @@ script:
|
||||
entity_id: input_datetime.master_bedroom_cooling
|
||||
data:
|
||||
time: >
|
||||
{% set low = states('sensor.overnight_lowest_temperature') | int %}
|
||||
{% if is_state('input_boolean.hot_day','on') and is_state('binary_sensor.kallen_school_tomorrow','on') %}
|
||||
20:00
|
||||
{% elif is_state('input_boolean.hot_day','on') and is_state('binary_sensor.kallen_school_tomorrow','off') %}
|
||||
@ -530,8 +545,6 @@ script:
|
||||
entity_id: input_datetime.master_bedroom_fan
|
||||
data:
|
||||
time: >
|
||||
{% set low = states('sensor.overnight_lowest_temperature') | int %}
|
||||
{% set high = states('sensor.todays_high_temp') | int %}
|
||||
{% if low > 60 or is_state('input_boolean.hot_day','on') %}
|
||||
22:30
|
||||
{% elif low <= 60 and low >= 50 %}
|
||||
@ -575,6 +588,8 @@ script:
|
||||
emma_bedroom_scheduling_morning:
|
||||
alias: 'Emma Bedroom Scheduling Morning'
|
||||
sequence:
|
||||
- variables:
|
||||
master_bedroom_wakeup: "{{ states('input_datetime.master_bedroom_wakeup') }}"
|
||||
- if:
|
||||
- condition: state
|
||||
entity_id: input_boolean.emma_wakeup_override
|
||||
@ -583,7 +598,7 @@ script:
|
||||
- service: input_datetime.set_datetime
|
||||
entity_id: input_datetime.emma_wakeup
|
||||
data:
|
||||
time: "{{ states('input_datetime.master_bedroom_wakeup') }}"
|
||||
time: "{{ master_bedroom_wakeup }}"
|
||||
- service: input_boolean.turn_on
|
||||
target:
|
||||
entity_id: input_boolean.emma_scheduling_morning_ran
|
||||
@ -591,6 +606,10 @@ script:
|
||||
emma_bedroom_scheduling_evening:
|
||||
alias: 'Emma Bedroom Scheduling Evening'
|
||||
sequence:
|
||||
- variables:
|
||||
high: "{{ states('sensor.todays_high_temp') | int }}"
|
||||
low: "{{ states('sensor.overnight_lowest_temperature') | int }}"
|
||||
aircon: "{{ states('input_number.emma_aircon_threshold') | int }}"
|
||||
- if:
|
||||
- condition: state
|
||||
entity_id: input_boolean.emma_bedtime_override
|
||||
@ -600,8 +619,6 @@ script:
|
||||
entity_id: input_datetime.emma_bedtime
|
||||
data:
|
||||
time: >
|
||||
{% set high = states('sensor.todays_high_temp') | int %}
|
||||
{% set low = states('sensor.overnight_lowest_temperature') | int %}
|
||||
{% if is_state('input_boolean.hot_day','on') %}
|
||||
22:00
|
||||
{% elif high >= 80 or low >= 60 %}
|
||||
@ -620,7 +637,7 @@ script:
|
||||
data:
|
||||
option: >
|
||||
{% if is_state('input_boolean.emma_bedroom_aircon_installed','on') %}
|
||||
{% if (states('sensor.overnight_lowest_temperature') | int) >= (states('input_number.emma_aircon_threshold') | int) %}
|
||||
{% if low >= aircon %}
|
||||
AC
|
||||
{% else %}
|
||||
White Noise
|
||||
@ -635,25 +652,31 @@ script:
|
||||
security_scheduling:
|
||||
alias: Security Scheduling
|
||||
sequence:
|
||||
- variables:
|
||||
ct: "{{ ((now().hour * 60 + now().minute) * 60 ) }}"
|
||||
kallen_school_start: "{{ state_attr('input_datetime.kallen_school_day_start','timestamp') }}"
|
||||
# kallen_school_end:
|
||||
# tina_work_start:
|
||||
# tina_work_end:
|
||||
#! IN PROGRESS
|
||||
- service: input_datetime.set_datetime
|
||||
entity_id: input_datetime.morning_alarm_disarm
|
||||
data:
|
||||
time: >
|
||||
{% set ct = ((now().hour * 60 + now().minute) * 60 ) %}
|
||||
{% if is_state('input_boolean.work_today','on') and is_state('input_boolean.kallen_school_today','on') %}
|
||||
{% if ct > state_attr('input_datetime.kallen_school_day_start','timestamp') %}
|
||||
{% if ct > kallen_school_start %}
|
||||
{{ (state_attr('input_datetime.tina_workday_start','timestamp') - 1800) | timestamp_custom('%H:%M', false) }}
|
||||
{% elif ct > state_attr('input_datetime.tina_workday_start','timestamp') and ct < state_attr('input_datetime.kallen_school_day_start','timestamp') %}
|
||||
{{ (state_attr('input_datetime.kallen_school_day_start','timestamp') - 2700) | timestamp_custom('%H:%M', false) }}
|
||||
{% elif state_attr('input_datetime.tina_workday_start','timestamp') < (state_attr('input_datetime.kallen_school_day_start','timestamp')) %}
|
||||
{% elif ct > state_attr('input_datetime.tina_workday_start','timestamp') and ct < kallen_school_start %}
|
||||
{{ kallen_school_start - 2700 | timestamp_custom('%H:%M', false) }}
|
||||
{% elif state_attr('input_datetime.tina_workday_start','timestamp') < kallen_school_start %}
|
||||
{{ (state_attr('input_datetime.tina_workday_start','timestamp') - 1800) | timestamp_custom('%H:%M', false) }}
|
||||
{% else %}
|
||||
{{ (state_attr('input_datetime.kallen_school_day_start','timestamp') - 2700) | timestamp_custom('%H:%M', false) }}
|
||||
{{ kallen_school_start - 2700 | timestamp_custom('%H:%M', false) }}
|
||||
{% endif %}
|
||||
{% elif is_state('input_boolean.work_today','on') and is_state('input_boolean.kallen_school_today','off') %}
|
||||
{{ (state_attr('input_datetime.tina_workday_start', 'timestamp') - 1800) | timestamp_custom('%H:%M', false) }}
|
||||
{% elif is_state('input_boolean.kallen_school_today','on') %}
|
||||
{{ (state_attr('input_datetime.kallen_school_day_start','timestamp') - 2700) | timestamp_custom('%H:%M', false) }}
|
||||
{{ kallen_school_start - 2700 | timestamp_custom('%H:%M', false) }}
|
||||
{% else %}
|
||||
11:00
|
||||
{% endif %}
|
||||
@ -661,21 +684,20 @@ script:
|
||||
entity_id: input_datetime.morning_alarm_rearm
|
||||
data:
|
||||
time: >
|
||||
{% set ct = ((now().hour * 60 + now().minute) * 60 ) %}
|
||||
{% if is_state('input_boolean.work_today','on') and is_state('input_boolean.kallen_school_today','off') %}
|
||||
{{ (state_attr('input_datetime.tina_workday_start','timestamp') + 900) | timestamp_custom('%H:%M', false) }}
|
||||
{% elif is_state('input_boolean.kallen_school_today','on') and is_state('input_boolean.work_today','off') %}
|
||||
{{ (state_attr('input_datetime.kallen_school_day_start','timestamp') + 3600) | timestamp_custom('%H:%M', false) }}
|
||||
{{ kallen_school_start + 3600 | timestamp_custom('%H:%M', false) }}
|
||||
{% elif is_state('input_boolean.work_today','on') and is_state('input_boolean.kallen_school_today','on') %}
|
||||
{% if ct > state_attr('input_datetime.kallen_school_day_start','timestamp') %}
|
||||
{% if ct > kallen_school_start %}
|
||||
{{ (state_attr('input_datetime.tina_workday_start','timestamp') + 900) | timestamp_custom('%H:%M', false) }}
|
||||
{% elif ct > state_attr('input_datetime.tina_workday_start','timestamp') and ct < state_attr('input_datetime.kallen_school_day_start','timestamp') %}
|
||||
{{ (state_attr('input_datetime.kallen_school_day_start','timestamp') - 2700) | timestamp_custom('%H:%M', false) }}
|
||||
{% elif state_attr('input_datetime.tina_workday_start','timestamp') < state_attr('input_datetime.kallen_school_day_start','timestamp') %}
|
||||
{{ (state_attr('input_datetime.kallen_school_day_start','timestamp') + 1800) | timestamp_custom('%H:%M', false) }}
|
||||
{% elif ct > state_attr('input_datetime.tina_workday_start','timestamp') and ct < kallen_school_start %}
|
||||
{{ kallen_school_start - 2700 | timestamp_custom('%H:%M', false) }}
|
||||
{% elif state_attr('input_datetime.tina_workday_start','timestamp') < kallen_school_start %}
|
||||
{{ kallen_school_start + 1800 | timestamp_custom('%H:%M', false) }}
|
||||
{% else %}
|
||||
{% if (state_attr('input_datetime.tina_workday_start','timestamp') - state_attr('input_datetime.kallen_school_day_start','timestamp')) > 5400 %}
|
||||
{{ (state_attr('input_datetime.kallen_school_day_start','timestamp') + 1800) | timestamp_custom('%H:%M', false) }}
|
||||
{% if (state_attr('input_datetime.tina_workday_start','timestamp') - kallen_school_start) > 5400 %}
|
||||
{{ kallen_school_start + 1800 | timestamp_custom('%H:%M', false) }}
|
||||
{% else %}
|
||||
{{ (state_attr('input_datetime.tina_workday_start','timestamp') + 900) | timestamp_custom('%H:%M', false) }}
|
||||
{% endif %}
|
||||
|
Reference in New Issue
Block a user