Improve scheduling, add late bedtime mode for K

This commit is contained in:
2023-03-20 18:17:29 -04:00
parent a584feff34
commit 1e68793089
2 changed files with 143 additions and 59 deletions

View File

@ -13,6 +13,10 @@ input_boolean:
kallen_awake: kallen_awake:
name: Kallen Awake name: Kallen Awake
icon: mdi:eye-check icon: mdi:eye-check
kallen_late_bedtime:
name: Kallen Late Bedtime
icon: mdi:weather-night
input_datetime: input_datetime:
kallen_bedtime: kallen_bedtime:
name: Kallen Bedtime name: Kallen Bedtime
@ -114,6 +118,30 @@ automation:
sequence: sequence:
- service: script.kallen_wakeup - service: script.kallen_wakeup
- id: 1d552b1f-c0ed-4d80-b8ba-3c085d2c3d3a
alias: "Kallen Late Bedtime"
description: "For those nights we want to let Kallen stay up later for whatever reason"
mode: restart
trigger:
- platform: state
entity_id: input_boolean.kallen_late_bedtime
from: 'off'
to: 'on'
id: late-on
- platform: state
entity_id: input_boolean.kallen_late_bedtime
from: 'on'
to: 'off'
id: late-off
action:
- if:
- condition: state
entity_id: input_boolean.kallen_scheduling_evening_ran
state: 'on'
then:
- service: script.kallen_scheduling_evening
- service: script.house_scheduling_evening
script: script:
kallen_sleep: kallen_sleep:
alias: 'Kallen Sleep' alias: 'Kallen Sleep'

View File

@ -9,51 +9,38 @@ input_datetime:
has_date: false has_date: false
has_time: true has_time: true
icon: mdi:weather-night icon: mdi:weather-night
kallen_bedtime:
name: Kallen Bedtime input_boolean:
has_date: false work_today_ran:
has_time: true name: Work Today Ran
icon: mdi:weather-night icon: mdi:clock-outline
kallen_wakeup_time: school_today_ran:
name: Kallen Wake-up Time name: School Today Ran
has_date: false icon: mdi:clock-outline
has_time: true kallen_scheduling_morning_ran:
icon: mdi:bell-alert name: Kallen Scheduling Morning Ran
kallen_fan: icon: mdi:clock-outline
name: Kallen Fan kallen_scheduling_evening_ran:
has_date: false name: Kallen Scheduling Evening Ran
has_time: true icon: mdi:clock-outline
icon: mdi:fan-auto house_scheduling_morning_ran:
master_bedroom_cooling: name: House Scheduling Morning Ran
name: Master Bedroom Cooling icon: mdi:clock-outline
has_date: false house_scheduling_evening_ran:
has_time: true name: House Scheduling Evening Ran
icon: mdi:fan-auto icon: mdi:clock-outline
master_bedroom_fan: emma_scheduling_morning_ran:
name: Master Bedroom Fan name: Emma Scheduling Morning Ran
has_date: false icon: mdi:clock-outline
has_time: true emma_scheduling_evening_ran:
icon: mdi:fan-auto name: Emma Scheduling Evening Ran
master_bedroom_wakeup: icon: mdi:clock-outline
name: Master Bedroom Wakeup master_bedroom_scheduling_morning_ran:
has_date: false name: Master Bedroom Scheduling Morning Ran
has_time: true icon: mdi:clock-outline
icon: mdi:fan-off master_bedroom_scheduling_evening_ran:
emma_bedtime: name: Master Bedroom Scheduling Evening Ran
name: Emma Bedtime icon: mdi:clock-outline
has_date: false
has_time: true
icon: mdi:fan-auto
emma_wakeup:
name: Emma Wakeup
has_date: false
has_time: true
icon: mdi:fan-off
tony_streaming_start_time:
name: Tony Streaming Start Time
has_date: false
has_time: true
icon: mdi:twitch
################################################ ################################################
# Current order of operations is as follows: # # Current order of operations is as follows: #
@ -159,6 +146,15 @@ automation:
then: then:
- service: script.emma_bedroom_scheduling_evening - service: script.emma_bedroom_scheduling_evening
- id: 7350300d-94d3-4ea3-97bb-b0673eafd71f
alias: Scheduling Reset
description: "Reset all 'Briefing Ran' input booleans for the next day"
trigger:
- platform: time
at: "00:00:00"
action:
- service: script.scheduling_reset
script: script:
kallen_scheduling_morning: kallen_scheduling_morning:
alias: 'Kallen Scheduling Morning' alias: 'Kallen Scheduling Morning'
@ -232,6 +228,9 @@ script:
{% else %} {% else %}
14:00 14:00
{% endif %} {% endif %}
- service: input_boolean.turn_on
target:
entity_id: input_boolean.kallen_scheduling_morning_ran
kallen_scheduling_evening: kallen_scheduling_evening:
alias: 'Kallen Scheduling Evening' alias: 'Kallen Scheduling Evening'
@ -245,15 +244,12 @@ script:
{% else %} {% else %}
22:00 22:00
{% endif %} {% endif %}
- delay:
seconds: 1
- service: input_datetime.set_datetime - service: input_datetime.set_datetime
entity_id: input_datetime.kallen_nightly_briefing entity_id: input_datetime.kallen_nightly_briefing
data: data:
time: > time: "{{ (state_attr('input_datetime.kallen_bedtime','timestamp') - 1200) | timestamp_custom('%H:%M', false) }}"
{% if is_state('sensor.kallen_school_tomorrow', 'on') %}
20:40
{% else %}
21:40
{% endif %}
- service: input_select.select_option - service: input_select.select_option
target: target:
entity_id: input_select.scheduled_climate_mode_kallen_fan entity_id: input_select.scheduled_climate_mode_kallen_fan
@ -266,8 +262,6 @@ script:
{% else %} {% else %}
White Noise White Noise
{% endif %} {% endif %}
- delay:
seconds: 1
- service: input_datetime.set_datetime - service: input_datetime.set_datetime
target: target:
entity_id: input_datetime.kallen_fan entity_id: input_datetime.kallen_fan
@ -278,6 +272,29 @@ script:
{% else %} {% else %}
{{ state_attr('input_datetime.kallen_bedtime','timestamp') | timestamp_custom('%H:%M', false) }} {{ state_attr('input_datetime.kallen_bedtime','timestamp') | timestamp_custom('%H:%M', false) }}
{% endif %} {% endif %}
- if:
- condition: state
entity_id: input_boolean.kallen_late_bedtime
state: 'on'
then:
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.kallen_bedtime
data:
time: "{{ (state_attr('input_datetime.kallen_bedtime','timestamp') + 3600) | timestamp_custom('%H:%M', false) }}"
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.kallen_nightly_briefing
data:
time: "{{ (state_attr('input_datetime.kallen_nightly_briefing','timestamp') + 3600) | timestamp_custom('%H:%M', false) }}"
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.kallen_fan
data:
time: "{{ (state_attr('input_datetime.kallen_fan','timestamp') + 3600) | timestamp_custom('%H:%M', false) }}"
- service: input_boolean.turn_on
target:
entity_id: input_boolean.kallen_scheduling_evening_ran
house_scheduling_morning: house_scheduling_morning:
alias: 'House Scheduling Morning' alias: 'House Scheduling Morning'
@ -363,6 +380,9 @@ script:
- service: input_boolean.turn_off - service: input_boolean.turn_off
target: target:
entity_id: input_boolean.cold_day entity_id: input_boolean.cold_day
- service: input_boolean.turn_on
target:
entity_id: input_boolean.house_scheduling_morning_ran
house_scheduling_evening: house_scheduling_evening:
alias: 'House Scheduling Evening' alias: 'House Scheduling Evening'
@ -371,16 +391,23 @@ script:
entity_id: input_datetime.nightly_briefing entity_id: input_datetime.nightly_briefing
data: data:
time: > time: >
{% if is_state('input_boolean.kallen_late_bedtime','on') %}
{{ (state_attr('input_datetime.kallen_bedtime','timestamp') - 7200) | timestamp_custom('%H:%M', false) }}
{% else %}
{{ (state_attr('input_datetime.kallen_bedtime','timestamp') - 3600) | timestamp_custom('%H:%M', false) }} {{ (state_attr('input_datetime.kallen_bedtime','timestamp') - 3600) | timestamp_custom('%H:%M', false) }}
{% endif %}
- service: input_datetime.set_datetime - service: input_datetime.set_datetime
entity_id: input_datetime.audible_notification_off entity_id: input_datetime.audible_notification_off
data: data:
time: > time: >
{% if is_state('sensor.kallen_school_tomorrow','on') %} {% if is_state('sensor.kallen_school_tomorrow','on') %}
22:00 22:15
{% else %} {% else %}
23:00 23:15
{% endif %} {% endif %}
- service: input_boolean.turn_on
target:
entity_id: input_boolean.house_scheduling_evening_ran
master_bedroom_scheduling_morning: master_bedroom_scheduling_morning:
alias: 'Master Bedroom Scheduling Morning' alias: 'Master Bedroom Scheduling Morning'
@ -398,6 +425,9 @@ script:
{% else %} {% else %}
13:00 13:00
{% endif %} {% endif %}
- service: input_boolean.turn_on
target:
entity_id: input_boolean.master_bedroom_scheduling_morning_ran
master_bedroom_scheduling_evening: master_bedroom_scheduling_evening:
alias: 'Master Bedroom Scheduling Evening' alias: 'Master Bedroom Scheduling Evening'
@ -459,6 +489,9 @@ script:
{% else %} {% else %}
N/A N/A
{% endif %} {% endif %}
- service: input_boolean.turn_on
target:
entity_id: input_boolean.master_bedroom_scheduling_evening_ran
# For now, this just ties her wakeup time to the master bedroom wakeup time. In the future this will have more conditions and be independent of other rooms. # For now, this just ties her wakeup time to the master bedroom wakeup time. In the future this will have more conditions and be independent of other rooms.
emma_bedroom_scheduling_morning: emma_bedroom_scheduling_morning:
@ -468,6 +501,9 @@ script:
entity_id: input_datetime.emma_wakeup entity_id: input_datetime.emma_wakeup
data: data:
time: "{{ states('input_datetime.master_bedroom_wakeup') }}" time: "{{ states('input_datetime.master_bedroom_wakeup') }}"
- service: input_boolean.turn_on
target:
entity_id: input_boolean.emma_scheduling_morning_ran
emma_bedroom_scheduling_evening: emma_bedroom_scheduling_evening:
alias: 'Emma Bedroom Scheduling Evening' alias: 'Emma Bedroom Scheduling Evening'
@ -499,6 +535,9 @@ script:
{% else %} {% else %}
White Noise White Noise
{% endif %} {% endif %}
- service: input_boolean.turn_on
target:
entity_id: input_boolean.emma_scheduling_evening_ran
security_scheduling: security_scheduling:
alias: Security Scheduling alias: Security Scheduling
@ -585,3 +624,20 @@ script:
- delay: - delay:
seconds: 1 seconds: 1
- service: script.security_scheduling - service: script.security_scheduling
scheduling_reset:
alias: 'Scheduling Reset'
sequence:
- service: input_boolean.turn_off
target:
entity_id:
- input_boolean.work_today_ran
- input_boolean.school_today_ran
- input_boolean.kallen_scheduling_morning_ran
- input_boolean.kallen_scheduling_evening_ran
- input_boolean.house_scheduling_morning_ran
- input_boolean.house_scheduling_evening_ran
- input_boolean.master_bedroom_scheduling_morning_ran
- input_boolean.master_bedroom_scheduling_evening_ran
- input_boolean.emma_scheduling_morning_ran
- input_boolean.emma_scheduling_evening_ran