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

83 lines
4.2 KiB
YAML
Executable File

>
{# Skylar Nightly Report #}
{%- macro getReport() -%}
<p>
Good Evening, Skyler,
{{ [ 'It is time to get in the bath. ',
'It is almost bedtime. That means it is time to start preparing for bed. if you are taking a bath tonight, you need to head that way.',
'I cannot communicate with the bathtub. Or I would have started the water for you already. So you will have to start the bath, yourself',
'My sensors are detecting a strange smell. I am running diagnostics. But in the mean time, you should start a bath.',
'I hate to say it but, the day is coming to an end. Time to finish up your tasks, pick up any toys you have out, and get ready for bed.',
'We have reached that time in every day when we must switch gears and start preparing for bed. If you would like to have story time you better get a move on.',
'Did you ever hear the one about the kid who never took a bath? <break time="2s"/>Yeah, me either. So we should keep it that way. It is time to get ready for bed.',
'The count down clock until bedtime has started. Time to get cleaned up, get your pajamas on, and pick the story you will read tonight.'
] | random }}
{% if is_state('sensor.school_tomorrow', 'on') %}
{{ [ 'Because you have school tomorrow. ',
'Because you have to get up early tomorrow for school.',
'Because you want to be ready for school tomorrow.'
] | random }}
{% else %}
{% set month=states("sensor.date").split('-')[1] | int %}
{%- if is_state('input_boolean.school_in_session', 'off') -%}
{{ [ 'Looks like tomorrow is another day of summer vacation. ',
'You are still on summer break tomorrow. ',
'Summer vacation does not last forever, but it is not over yet. '
] | random }}
{% else %}
Oh, and it appears you do not have school tomorrow
{% endif %}
{{ [ 'so you can sleep in late. ',
'so let us sleep a little later. ',
' so there is not a reason to get up early. ',
'so we can sleep in. '
] | random }}
{% endif %}
{% if states.sensor.school_start_days2go.state | int < 10 and states.sensor.school_start_days2go.state | int > 1 -%}
{{ [ 'I hate to say it, but ',
'Unfortunately,',
'All good things must come to an end.'
] | random }}
There are only {{ states.sensor.school_start_days2go.state }} days
{{ [ 'left of summer vacation. ',
' left of summer break.',
'Until School starts again.'
] | random }}
{% elif states.sensor.school_start_days2go.state | int == 1 -%}
Tomorrow is the first day of school. Are you ready?
{%- endif %}
{% if states.sensor.school_end_days2go.state | int < 15 and states.sensor.school_end_days2go.state | int > 0 -%}
{{ [ 'School is almost over for the year.',
'You have made it to the end of the school year.',
'You are almost done with school.'
] | random }}
There are only {{ states.sensor.school_end_days2go.state }} days
{{ [ 'left in the school year ',
' left of school.',
'Until the last day of school.'
] | random }}
{% elif states.sensor.school_end_days2go.state | int == 0 -%}
Tomorrow is the first day of summer. Are you ready?
{%- endif %}
{{ [ 'I have prepared your room as you like it. ',
'I have adjusted the lighting in your room.',
'I have turned on your bedroom lights, and adjusted the lighting under your bed.',
'I have executed the Pre bed routine for your room.'
] | random }}
</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()) -}}