Files
Home-Assistant-Configs/templates/speech/daily_briefing.yaml
2023-10-09 18:32:22 -04:00

270 lines
11 KiB
YAML

>
{# Daily Briefing #}
{% from 'formatting.jinja' import cleanup %}
{%- macro getReport() -%}
{% from 'speech.jinja' import greeting, dadjoke, inspirational_quote, today_is %}
{% from 'status.jinja' import houseStatusReport, tonyStatusReport, tinaStatusReport, kallenStatusReport, emmaStatusReport %}
{% from 'easy_time.jinja' import count_the_days %}
{% from 'weather.jinja' import weatherReport %}
{% from 'sports.jinja' import sports_updates %}
<p>
{{ greeting('date') }}
</p>
<p>
{{ today_is() }}
</p>
<p>
{{ weatherReport('full','tts','day') }}
</p>
<p>
{% if is_state('sun.sun','below_horizon') %}
You have
{% set seconds = as_timestamp(states.sun.sun.attributes.next_rising)-now().timestamp() %}
{% set hours = seconds / 60 %}
{% if seconds / ( 60 * 60 ) > 1 %}
{{ (seconds // ( 60 * 60 )) | int }} hours
{% else %}
{{ (seconds // 60) | int }} minutes
{% endif %}
{{ [
'until the sun rises.',
'until the sun is up',
'before the sun officially rises.'
] | random }}
{% else %}
You have
{% set seconds = as_timestamp(states.sun.sun.attributes.next_setting)-now().timestamp() %}
{% set hours = seconds / 60 %}
{% if seconds / ( 60 * 60 ) > 1 %}
{{ (seconds // ( 60 * 60 )) | int }} hours
{% else %}
{{ (seconds // 60) | int }} minutes
{% endif %}
{{ [
'until the sun sets for the day.',
'until the sun slips below the horizon.',
'before the sun officially sets. '
]|random }}
{% endif %}
</p>
{% set dow = as_timestamp(now()) | timestamp_custom('%A') %}
<p>
{{ [
"On today's agenda, we have the following. ",
"Today's announcements include the following. ",
"Given that you are well into your day, here is a bit of helpful information. ",
"You are past the point of no return and must finish your day, so I am here to help you out. ",
"The developer has informed me that I must inform you of the following informational information. ",
"My introduction lines are getting stale as hell. Any new ideas, anyone? ",
] | random }}
{% if is_state('binary_sensor.evening','on') %}
{% if is_state('sensor.anniversary_tony_s_birthday','0') %}
Hope you had a happy birthday Tony!
{% endif %}
{% if is_state('sensor.anniversary_tina_s_birthday','0') %}
Hope you had a happy birthday Tina!
{% endif %}
{% if is_state('sensor.anniversary_kallen_s_birthday','0') %}
Hope you had a happy birthday Collin!
{% endif %}
{% if is_state('sensor.anniversary_emmalynn_s_birthday','0') %}
Hope you had a happy birthday Emmalynn!
{% endif %}
{% if states.sensor.halloween_countdown.state | int == 1 %}
Tomorrow is Halloween. I hope you have picked out a costume. I will be going as Tony. I am scared just thinking about it!
{% elif states.sensor.halloween_countdown.state | int < 30 %}
There are only {{states.sensor.halloween_countdown.state}} days
{{ [ 'until Halloween.',
'until Halloween. It might not be enough time.',
'until you need a costume.'
] | random }}
{% endif %}
{% if states.sensor.christmas_countdown.state | int == 1 %}
Tomorrow is Christmas. <break time="1s"/> It is practically here! <break time="1s"/> Santa is coming tonight! Do not forget the cookies!
{% elif states.sensor.christmas_countdown.state | int < 31 %}
There are only {{states.sensor.christmas_countdown.state}} days until Christmas.
{{ [ 'All I want for Christmas is a Hippopotamus.',
'Hey Collin, I know what you are getting for Christmas. But I am not telling.',
'Do not forget to put something under the tree for your favorite <say-as interpret-as="characters">AI</say-as> this year!',
'It is starting to smell a lot like Christmas. Or it could be that the christmas tree is on fire.',
'I do not want to be a smarthome. I want to be a dentist.',
'Do not eat all the cookies.',
'All I want for Christmas is for Mariah Carey to get off my radio.'
] | random }}
{% endif %}
{% if states.sensor.anniversary_wedding_anniversary.state | int == 1 %}
Tomorrow is Tony and Christina's wedding anniversary!
{% endif %}
{{ tinaStatusReport('work','tts') }}
{% else %}
{% if is_state('sensor.halloween_countdown','0') %}
Happy Halloween!
{% endif %}
{% if is_state('sensor.christmas_countdown','0') %}
Merry Christmas!
{% endif %}
{% if is_state('sensor.anniversary_wedding_anniversary','0') %}
Happy Anniversary! It has been an amazing {{ states.sensor.anniversary_wedding_anniversary.attributes.years }} years!
{% endif %}
{% if is_state('sensor.anniversary_tony_s_birthday','0') %}
Happy Birthday Tony!
{% endif %}
{% if is_state('sensor.anniversary_tina_s_birthday','0') %}
Happy Birthday Tina!
{% endif %}
{% if is_state('sensor.anniversary_kallen_s_birthday','0') %}
Happy Birthday Collin!
{% endif %}
{% if is_state('sensor.anniversary_emmalynn_s_birthday','0') %}
Happy Birthday Emmalynn!
{% endif %}
{%- set event=states.calendar.national_holidays.attributes.message %}
{% if 'Day' in event and 'National' in event%}
{{ [
'Today is also known as ',
'Today we are also celebrating'
]|random }}
{{states.calendar.national_holidays.attributes.message | replace("&"," and ") }}.
{% if 'Chocolate' in event %}
{{ [
'Oh. You had me at Chocolate. I like Chocolate.',
'And I like chocolate. This sounds fun. More Chocolate please!'
]|random }}
{%- endif -%}
{% if 'Pi' in event or 'Pie' in event%}
{{ [
'We should make a pie. And by we I mean someone with actual arms. ',
'Wait.<break time="1s"/>Did that just say pie? We need a Pie to celebrate.'
]|random }}
{%- endif -%}
{% if 'Cookie' in event %}
{{ [
'<break time="1s"/>And Yes. You heard that right. Today we are making cookies.',
'I will put butter on the shopping list. For later. ',
'So that means we should make cookies.'
]|random }}
{%- endif -%}
{% if 'Pizza' in event %}
{{ [
'I think that means we should have pizza today. and by we I mean those of us with a mouth.',
'So who is going to make the pizza?',
'Everyone knows Pepperoni Pizza is the best. am I right?'
]|random }}
{%- endif -%}
{% if 'Cake' in event %}
{{ [
'I have just added baking a cake to your calendar. And set your availability to busy.',
'Quick. Someone check to see if we have powdered sugar for frosting.',
'So that means we should bake a cake. And frost it. But not like that time in that movie. '
]|random }}
{%- endif -%}
{% if 'Fools' in event %}
{{ [
'Which reminds me. The front porch camera caught a Tee Rex last night. <break time="1s"/> April Fools!',
'Which reminds me. I won the lottery and I am moving out to go live with Siri. <break time="1s"/> April Fools!',
'Which reminds me. there was a time change last night. We have jumped 15 years into the future. Great Scott! <break time="1s"/> April Fools!'
]|random }}
{%- endif -%}
{% if 'Creme Brulee' in event %}
{{ [
'Someday I hope to make the perfect creme brulee.'
]|random }}
{%- endif -%}
{% if 'Games' in event %}
{{ [
'Does anyone want to play Thermal nuclear war with me?<break time="1s"/>No? How about a nice game of chess?'
]|random }}
{%- endif -%}
{% if 'Haiku' in event %}
I know a Haiku. This one is called,
{{ [
'Good Morning From the Cat. <break time="1s"/>In the morning light, You sleep despite my meow, I stand on your face.',
'Tee Rex Hug. <break time="1s"/> The Tee Rex likes you, But he cant give you a hug, His arms are too short.',
'It Fits. <break time="1s"/> It Fits perfectly, because every box is the, Right size for a cat.',
'Minecraft Creepers. <break time="1s"/> Creepers are so cruel, I hear a hiss from behind, Bam! There goes my stuff.'
]|random }}
{%- endif -%}
<break time="2s"/>
{% else %}
{% if 'Birthday' in event %}
{{ [
'Today is a special birthday. We are celebrating '
]|random }}
{{states.calendar.national_holidays.attributes.message | replace("&"," and ") }}.
{%- endif -%}
{%- endif -%}
{{ tinaStatusReport('work','tts') }}
{{ tonyStatusReport('stream','tts') }}
{{ kallenStatusReport('school','tts') }}
{{ emmaStatusReport('sleep','tts') }}
{% endif %}
</p>
<p>
{{ houseStatusReport('full','tts') }}
</p>
<p>
{% if state_attr('calendar.garbage_collection','start_time') != none %}
{% if count_the_days('calendar.garbage_collection','start_time') | int == 1 %}
{% if state_attr('calendar.garbage_collection','message') == 'Large Garbage Pickup' %}
Tomorrow is the monthly unlimited garbage pickup. Make sure to take out all regular trash, as well as any larger items that need to be disposed of.
{% else %}
Tomorrow is regular garbage pickup. Make sure that all trash cans are emptied and the outside bin has been wheeled to the curb.
{% endif %}
{% elif is_state('calendar.garbage_collection','on') %}
Today is garbage day. Please make sure to wheel the garbage bin back to the house.
{% endif %}
{% endif %}
</p>
<p>
{% if is_state('input_boolean.sports_updates','on') %}
{{ sports_updates('pregame') }}
{{ sports_updates('main') }}
{% endif %}
</p>
<p>
{{ dadjoke() }}
</p>
<p>
{% if is_state('input_boolean.briefing_extras','on') %}
"And now we have the following extra information to pass along. {{ states('input_text.briefing_extras') }} "
{% endif %}
</p>
<p>
And now, one more thing before I go. {{ inspirational_quote() }}
</p>
{%- endmacro -%}
{{- cleanup(getReport()) -}}