From 41ca84a56215c687d6e48fbe87ab198f131e24d0 Mon Sep 17 00:00:00 2001
From: Tony Stork
Date: Sun, 2 Jun 2024 14:05:51 -0400
Subject: [PATCH] Adjustments for K having summer BTB
---
custom_templates/status.jinja | 4 +++-
packages/scheduling.yaml | 18 ++++++++++-----
packages/school.yaml | 22 ++++++++++++++++---
templates/speech/kallen_morning_briefing.yaml | 4 +++-
templates/speech/kallen_nightly_briefing.yaml | 12 ++++++----
5 files changed, 45 insertions(+), 15 deletions(-)
diff --git a/custom_templates/status.jinja b/custom_templates/status.jinja
index bc3706f..a0bbb9e 100644
--- a/custom_templates/status.jinja
+++ b/custom_templates/status.jinja
@@ -519,7 +519,9 @@
{% else %}
{% set identKallen = 'He' %}
{% endif %}
- {% if is_state('input_boolean.school_in_session','on') %}
+ {% if is_state('input_boolean.school_in_session','off') and is_state('input_boolean.kallen_btb','on') %}
+ {{ identKallen }} has Beyond The Bells today. It is scheduled to end at {{ input_datetime_read('input_datetime.kallen_school_day_end') | trim }}.
+ {% elif is_state('input_boolean.school_in_session','on') %}
{% if is_state('input_boolean.kallen_school_today','on') %}
{% if is_state('input_boolean.two_hour_delay','on') %}
School is currently under a two hour delay.
diff --git a/packages/scheduling.yaml b/packages/scheduling.yaml
index 95b29c9..d3e5b74 100644
--- a/packages/scheduling.yaml
+++ b/packages/scheduling.yaml
@@ -155,7 +155,7 @@ script:
sequence:
- if:
- condition: state
- entity_id: input_boolean.school_in_session
+ entity_id: input_boolean.kallen_school_today
state: 'on'
then:
- service: input_datetime.set_datetime
@@ -269,12 +269,18 @@ script:
entity_id: input_datetime.kallen_bedtime
data:
time: >
- {% if is_state('binary_sensor.kallen_school_tomorrow', 'on') %}
- 21:00
- {% elif is_state('input_boolean.school_in_session','on') %}
- 22:00
+ {% if is_state('input_boolean.school_in_session','on') %}
+ {% if is_state('binary_sensor.kallen_school_tomorrow', 'on') %}
+ 21:00
+ {% else %}
+ 22:00
+ {% endif %}
{% else %}
- 23:00
+ {% if is_state('binary_sensor.kallen_btb_tomorrow','on') %}
+ 22:00
+ {% else %}
+ 23:00
+ {% endif %}
{% endif %}
- delay:
seconds: 1
diff --git a/packages/school.yaml b/packages/school.yaml
index f85bf67..696a978 100644
--- a/packages/school.yaml
+++ b/packages/school.yaml
@@ -92,7 +92,11 @@ template:
unique_id: 68d8eb9c-d96c-4c76-a8e8-23125f1162db
state: >-
{%- set test=(as_timestamp(now()) + (86400)) | timestamp_custom("%Y-%m-%d",true) %}
- {{ states.calendar.kallen_school_days.attributes.end_time == test + " 16:30:00" }}
+ {% if is_state('input_boolean.school_in_session','on') %}
+ {{ states.calendar.kallen_school_days.attributes.end_time == test + " 16:30:00" }}
+ {% else %}
+ {{ states.calendar.kallen_school_days.attributes.start_time == test + " 08:00:00" }}
+ {% endif %}
- sensor:
- name: School Start Days2go
unique_id: 94a53e67-c00f-4cc7-9309-f9033a9482f9
@@ -394,7 +398,9 @@ script:
value_template: >
{% from 'time.jinja' import time_from_calendar %}
{% set cal = time_from_calendar('calendar.kallen_school_days','end_time','read') | trim %}
- {{ cal == '4:30 PM' }}
+ {% set current = as_timestamp(now()) %}
+ {% set lastday = state_attr('input_datetime.school_last_day','timestamp') %}
+ {{ (current > lastday) or (current <= lastday and cal == '4:30 PM') }}
then:
- service: input_boolean.turn_on
target:
@@ -403,7 +409,17 @@ script:
entity_id:
- input_boolean.kallen_school_today
- input_boolean.kallen_school_today_extended
- - input_boolean.school_in_session
+ - if:
+ - condition: template
+ value_template: >
+ {% set current = as_timestamp(now()) %}
+ {% set firstday = state_attr('input_datetime.school_first_day','timestamp') %}
+ {% set lastday = state_attr('input_datetime.school_last_day','timestamp') %}
+ {{ firstday <= current <= lastday }}
+ then:
+ - service: input_boolean.turn_on
+ target:
+ entity_id: input_boolean.school_in_session
kallen_school_reset:
alias: 'Kallen School Reset'
diff --git a/templates/speech/kallen_morning_briefing.yaml b/templates/speech/kallen_morning_briefing.yaml
index d60f803..a0c7286 100644
--- a/templates/speech/kallen_morning_briefing.yaml
+++ b/templates/speech/kallen_morning_briefing.yaml
@@ -54,7 +54,9 @@
- {% if is_state('input_boolean.school_in_session','on') %}
+ {% if is_state('input_boolean.school_in_session','off') and is_state('input_boolean.kallen_btb','on') %}
+ You have Beyond The Bells today. It is scheduled to end at {{ input_datetime_read('input_datetime.kallen_school_day_end') | trim }}.
+ {% elif is_state('input_boolean.school_in_session','on') %}
{% if is_state('input_boolean.kallen_school_today', 'on') %}
{% if count_the_days('input_datetime.school_first_day') | int == 0 %}
Today is the first day of school!
diff --git a/templates/speech/kallen_nightly_briefing.yaml b/templates/speech/kallen_nightly_briefing.yaml
index 2bb62f0..51e1412 100644
--- a/templates/speech/kallen_nightly_briefing.yaml
+++ b/templates/speech/kallen_nightly_briefing.yaml
@@ -20,10 +20,14 @@
'Because you want to be ready for school tomorrow.'
] | random }}
{% if is_state('binary_sensor.kallen_btb_tomorrow','on') %}
- {{ [ 'You have Beyond The Bells tomorrow after school. ',
- 'You will be staying a little later after school tomorrow to further your learning endeavors. ',
- 'Tomorrow is a BTB day. '
- ] | random }}
+ {% if is_state('input_boolean.school_in_session','on') %}
+ {{ [ 'You have Beyond The Bells tomorrow after school. ',
+ 'You will be staying a little later after school tomorrow to further your learning endeavors. ',
+ 'Tomorrow is a BTB day. '
+ ] | random }}
+ {% else %}
+ 'You have a summer session of Beyond The Bells tomorrow. '
+ {% endif %}
{% endif %}
{% else %}
{% set month=states("sensor.date").split('-')[1] | int %}