home-assistant-configuration/config/templates/speech/skylar_morning_briefing.yaml

138 lines
6.0 KiB
YAML
Executable File

>
{# Skylar Morning Report #}
{%- macro getReport() -%}
<p>
Good morning, Skylar.
<s>It is {{ now().strftime("%I:%M %p") }}</s>
{% if is_state('sensor.birthday_skylar', '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 states.calendar.skylar_school.attributes.offset_reached == True and is_state('calendar.school_holiday', 'off') %}
Because you have school today!
{% if states.calendar.skylar_school.attributes.description == 'digital-learning' %}
But today is a digital learning day.
{% endif %}
{% if states.calendar.skylar_school.attributes.description == 'early-release' %}
And guess what? It is early release!
{% endif %}
{% if states.calendar.skylar_school.attributes.description == 'start_thanksgiving_break' %}
Oh, One More Thing. Tomorrow is the first day of Thanksgiving Break.
{% endif %}
{% if states.calendar.skylar_school.attributes.description == 'start_winter_break' %}
Oh, One More Thing. Tomorrow is the first day of Winter Break.
{% endif %}
{% if states.calendar.skylar_school.attributes.description == 'start_spring_break' %}
Oh, One More Thing. Tomorrow is the first day of Spring Break.
{% endif %}
{% if states.calendar.skylar_school.attributes.description == 'start_fall_break' %}
Oh, One More Thing. Tomorrow is the first day of Fall Break.
{% endif %}
{% if states.sensor.school_end_days2go.state | int == 0 -%}
Oh, One More Thing. Tomorrow is the first day of Summer Break! Emjoy the Last day of school this year!
{%- endif %}
{% else %}
{% if is_state('calendar.school_holiday', 'on') %}
And look at that. You do not have school today. Because it is {{ states.calendar.school_holiday.attributes.message }}.
{{ [ 'Guess today would be a good day to clean your room.',
'You could always do some chores.',
'Lets try to keep the TV off today, ok?',
'Want to play a nice game of chess? Sorry. I meant, want to play Thermal Nuclear War.',
'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 %}
{% endif %}
</p>
<p>
{% if states.calendar.skylar_school.attributes.offset_reached == True and is_state('calendar.school_holiday', 'off') %}
{% if states.sensor.school_lunch.state == 'Nothing' %}
You are going to want to take your own lunch today.
{% else %}
Today's school lunch is {{ states.sensor.school_lunch.state }}
{% endif %}
{% endif %}
</p>
<p>
{% if is_state('calendar.school_holiday', 'on') %}
And look at that. You do not have school today. Because it is {{ states.calendar.school_holiday.attributes.message }}.
{{ [ 'Guess today would be a good day to clean your room.',
'You could always do some chores.',
'Lets try to keep the TV off today. okay?',
'Want to play a nice game of chess? Sorry. I meant. want to play Thermal Nuclear War.',
'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 %}
</p>
{% if is_state('calendar.skylar_events', 'on') %}
You have {{ states.calendar.skylar_events.attributes.message }} today as well!
{% endif %}
{%- 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()) -}}