Added K's morning briefing

This commit is contained in:
2022-04-19 18:30:55 -04:00
parent 506fa6f021
commit 2a80af624a
2 changed files with 146 additions and 5 deletions

View File

@ -15,12 +15,12 @@ input_datetime:
name: Daily Report
has_date: false
has_time: true
kallen_morning_report:
name: Kallen Dressed Announcement
kallen_morning_briefing:
name: Kallen Morning Briefing
has_date: false
has_time: true
kallen_nightly_briefing:
name: Kallen Bedtime Announcement
name: Kallen Nightly Briefing
has_date: false
has_time: true
audible_notification_on:
@ -104,6 +104,25 @@ automation:
{% else %}
21:40
{% endif %}
- service: input_datetime.set_datetime
entity_id: input_datetime.kallen_morning_briefing
data_template:
time: >
{% if is_state('input_boolean.school_today', 'on') %}
07:40
{% else %}
10:00
{% endif %}
- id: db50d96f-8e2a-4e48-8d7c-ce5968527b82
alias: Kallen Morning Briefing
trigger:
platform: time
at: input_datetime.kallen_morning_briefing
action:
- service: light.turn_on
entity_id: light.kallen_bedroom_light
- service: script.kallen_morning_briefing
script:
reset_annc_switches:
@ -121,9 +140,25 @@ script:
sequence:
- service: script.speech_engine
data:
who: living_room
message: !include ../templates/speech/kallen_nightly_briefing.yaml
who: living_room
message: !include ../templates/speech/kallen_nightly_briefing.yaml
- service: script.text_notify
data:
who: "ios_parents"
message: "I just gave Kallen's nightly briefing."
kallen_morning_briefing:
sequence:
- service: script.speech_engine
data:
who: >
{% if is_state('input_boolean.school_today', 'on') %}
kallen_bedroom
{% else %}
living_room
{% endif %}
message: !include ../templates/speech/kallen_morning_briefing.yaml
- service: script.text_notify
data:
who: "ios_parents"
message: "I just gave Kallen's morning briefing"

View File

@ -0,0 +1,106 @@
>
{# Kallen Morning Report #}
{%- macro getReport() -%}
<p>
Good morning, Kallen.
<s>It is {{ now().strftime("%I:%M %p") }}</s>
{% if is_state('sensor.birthday_kallen', '0') %}
Even birthday boys have to get dressed. So get to it.
{% else %}
{{ [ 'It is time to get dressed. ',
'It is time to put some real clothes on. ',
'it is now time to change your underwear.',
'You need to get dressed for the day.',
'If you have not gotten dressed it is that time.'
] | random }}
{% endif %}
</p>
<p>
{% if is_state('sensor.clothing_forecast', 'Freezing') %}
It is going to be freezing today. so I suggest wearing long pants and a heavy coat.
{% elif is_state('sensor.clothing_forecast','Cold') %}
It is going to be cold today. so I suggest wearing long pants and a light jacket.
{% elif is_state('sensor.clothing_forecast', 'Chilly') %}
It is going to be chilly today. so I suggest wearing at least long pants.
{% elif is_state('sensor.clothing_forecast', 'Nice') %}
It is going to be
{{ [ 'nice outside.',
'pretty nice outside. ',
'a good day to be outside. ',
'rather enjoyable outside. ',
] | random }}
So I suggest wearing shorts.
{% elif is_state('sensor.clothing_forecast', 'Toasty') %}
It is going to be
{{ [ 'bit warm today. ',
' rather warm outside. ',
' almost too hot outside. ',
' a little warm today. ',
] | random }}
So I suggest wearing shorts.
{% elif is_state('sensor.clothing_forecast', 'Hot') %}
It is going to be
{{ [ 'hot',
'hotter than the sun today. ',
'hotter than hot. but in a lot of bad ways today. ',
'hotter than the sun outside. ',
'super hot today. ',
'hotter than the inside of a volcano today. Well not exactly, but you get the point. '
] | random }}
So I suggest wearing shorts.
{% else %}
It is going to be {{ states.sensor.clothing_forecast.state }} today so I suggest wearing shorts.
{% endif %}
</p>
<p>
{% if is_state('input_boolean.school_today', 'on') and state_attr('input_datetime.school_day_end', 'timestamp') > as_timestamp(now()) %}
{% if is_state('sensor.school_start_days2go', '0') %}
Today is the first day of school!
{% else %}
{{ [ 'Today is a school day.',
'It is a school day. '
] | random }}
{% endif %}
<s>Pickup today will be at {{(state_attr('input_datetime.school_day_end', 'timestamp') | int | timestamp_custom('%I:%M %p', False)) }}</s>
{% if 'Early Release' in states('sensor.school_event') %}
And It is early dismissal today!
{% endif %}
{% if states.sensor.school_end_days2go.state | int == 0 -%}
But today is the last day of School!
{%- endif %}
{% endif %}
{% if is_state('input_boolean.school_today', 'off') %}
And look at that. You do not have school today.
{{ [ 'Guess today would be a good day to clean your room.',
'You could always do some chores. HA, good one.',
'Want to play a nice game of chess? Sorry. I meant, want to play Dark Souls?',
'I hope you enjoy your day off. You deserve it.',
'Today would be a good day to spend some time with mom and dad.'
] | random }}
{% endif %}
{% if states.sensor.school_end_days2go.state | int == -1 -%}
Today is the first day of Summer Break!
{%- endif %}
</p>
{%- endmacro -%}
{# a macro that removes all newline characters, empty spaces, and returns formatted text #}
{%- macro cleanup(data) -%}
{%- for item in data.split("\n") if item | trim != "" -%}
{{ item | trim }} {% endfor -%}
{%- endmacro -%}
{# a macro to call all macros :) #}
{%- macro mother_of_all_macros() -%}
{{ getReport() }}
{%- endmacro -%}
{# Call the macro #}
{{- cleanup(mother_of_all_macros()) -}}