246 lines
11 KiB
YAML
246 lines
11 KiB
YAML
>
|
|
{# Morning Briefing #}
|
|
{%- macro getReport() -%}
|
|
{% from 'speech.jinja' import greeting_nodate, dadjoke, inspirational_quote %}
|
|
{% from 'time.jinja' import input_datetime_12hr %}
|
|
<p>
|
|
{{ greeting_nodate() }}
|
|
</p>
|
|
<p>
|
|
{{ [
|
|
'Today is ',
|
|
'If you have not been keeping track today is ',
|
|
'Do you know what day of the week it is? Today is',
|
|
'I hate to be the bearer of bad news, but today is '
|
|
]|random }}
|
|
{{states.sensor.today_is.state }}.
|
|
</p>
|
|
<p>
|
|
It is currently {{states.weather.iron_nerd_weather_station.state}} and {{states.sensor.pirateweather_temperature.state|round}} degrees in Defiance.
|
|
</p>
|
|
<p>
|
|
{% if is_state('input_boolean.tornado_alarm','on') %}
|
|
"We are under a tornado warning. If you are not already in shelter, you should be. Get on it! "
|
|
{% elif is_state('input_boolean.tornado_watch','on') %}
|
|
{{ [
|
|
"There is currently a tornado watch active. Please keep an eye on the sky and your local weather reports. ",
|
|
"We are currently under a tornado watch. This means the possibility exists for a tornado to form. Be prepared, and be safe! ",
|
|
"The National Weather Service has issued a tornado watch for our area. Be prepared to take shelter if a warning is issued! ",
|
|
] | random }}
|
|
{% endif %}
|
|
{% if is_state('binary_sensor.lightning_warning','on') %}
|
|
{% set ltgdist = (states('sensor.blitzortung_lightning_distance') | int) / 1.609 | round %}
|
|
{{ [
|
|
"There are reports of lightning in the area, please stay safe. ",
|
|
"My sensors detect the presence of lightning nearby, so you should prepare to take shelter if needed. ",
|
|
"A little birdy told me there is lightning nearby. His feathers were all sticking up, I have no idea why. ",
|
|
"Please exercise caution, as there is lightning in the area. ",
|
|
"That flashing in the sky is not interstellar warfare, it is simply lightning. But you should still be careful outside. ",
|
|
] | random }}
|
|
"The nearest lightning strike is {{ ltgdist }} miles away. "
|
|
{% endif %}
|
|
{% if states('sensor.weatheralerts_active_alerts') > '0' %}
|
|
"Currently there are weather alerts active. The total number of alerts is {{ states('sensor.weather_alerts_active_corrected') }}. They are as follows. "
|
|
{{ states('sensor.weather_alert_string') }}.
|
|
{% endif %}
|
|
{% if (states('sensor.kdfi_visibility') | int ) < 3 %}
|
|
{{ [
|
|
"It is foggy outside, please exercise caution when driving. ",
|
|
"The visibility outside is quite low. If you will be driving soon, please be cautious. ",
|
|
"It is pea soup outside right now, and that is just as awful to drive in as it is to eat. Be careful! ",
|
|
"Look out the window. Do you notice that you cannot see anything? Bear that in mind if you intend to drive any time soon. ",
|
|
"Be advised, it is very difficult to see outside right now. Drive safely. "
|
|
] | random }}
|
|
{% endif %}
|
|
</p>
|
|
<p>
|
|
{{ [
|
|
'The rest of the day should be,',
|
|
'Todays forecast should be ,'
|
|
]|random }}
|
|
{{ states('sensor.current_forecast') }}
|
|
</p>
|
|
<p>
|
|
{{ states('sensor.clothing_forecast_detail') }}
|
|
</p>
|
|
<p>
|
|
{% if is_state('sensor.halloween_countdown','0') %}
|
|
Happy Halloween!
|
|
{% endif %}
|
|
{% if is_state('sensor.christmas_countdown','0') %}
|
|
Merry Christmas Everyone!
|
|
{% endif %}
|
|
{% if is_state('sensor.anniversary_wedding_anniversary','0') %}
|
|
Happy Anniversary! It been an amazing {{ states.sensor.anniversary_wedding_anniversary.attributes.years }} years!
|
|
{% endif %}
|
|
{% if is_state('calendar.holidays_in_united_states', 'on') %}
|
|
Today is {{states.calendar.holidays_in_united_states.attributes.message}}.
|
|
{% endif %}
|
|
{% if states.calendar.birthdays.state == 'on' %}
|
|
Today is {{ states.calendar.birthdays.attributes.message }}! So Happy Birthday! The confetti cannon is not working otherwise I would shower you in paper garbage that someone else would have to pick up.
|
|
{% endif %}
|
|
{%- set event=states.calendar.national_holidays.attributes.message %}
|
|
{% if 'Day' in event and 'National' in event%}
|
|
{{ [
|
|
'And a very special Happy ',
|
|
'It is also ',
|
|
'Today is also known as ',
|
|
'Oh <emphasis>Look</emphasis>. Today is ',
|
|
'Want to know a fact? Today is ',
|
|
'Everyday can be a holiday. So today is '
|
|
]|random }}
|
|
{{states.calendar.national_holidays.attributes.message | replace("&"," and ") }}.
|
|
{%- endif -%}
|
|
</p>
|
|
<p>
|
|
{% if now().strftime('%Y-%m-%d') == states.input_datetime.school_last_day.state %}
|
|
Congratulations, today is the last day of school! Have an awesome day!
|
|
{% endif %}
|
|
</p>
|
|
<p>
|
|
{% if is_state('input_boolean.work_today','on') %}
|
|
{{ [
|
|
"Tina must go and please the food gods today ",
|
|
"Today, Tina must go and entertain the gremlins known as her customers and coworkers ",
|
|
"Today, Tina will be owned by our lovely lord and savior, capitalism, starting ",
|
|
"Tina will attempt to satiate the patron saint of capitalism today "
|
|
] | random }} at {{ input_datetime_12hr('input_datetime.tina_workday_start') }}.
|
|
{% endif %}
|
|
</p>
|
|
<p>
|
|
{% if is_state('input_boolean.kallen_school_today','on') and is_state('input_boolean.work_today','on') %}
|
|
{% set diff = (state_attr('input_datetime.tina_workday_start','timestamp') - state_attr('input_datetime.kallen_school_day_start','timestamp')) %}
|
|
{%- if states.sensor.home_to_school.state|round > 12 %}
|
|
Traffic to the school appears heavier than normal.
|
|
{% else %}
|
|
Traffic to the school is normal.
|
|
{% endif %}
|
|
Currently it will take {{states.sensor.home_to_school.state|round}} minutes to get to the school.
|
|
{%- if diff <= 3600 %}
|
|
{%- if states.sensor.school_to_bob_evans.state|round > 15 %}
|
|
Traffic from the school to Bob Evans appears heavier than normal.
|
|
{% else %}
|
|
Traffic from the school to Bob Evans is normal.
|
|
{% endif %}
|
|
Currently it will take {{states.sensor.school_to_bob_evans.state|round}} minutes to get to Bob Evans from the school.
|
|
{% endif %}
|
|
{% elif is_state('input_boolean.work_today','on') %}
|
|
{%- if states.sensor.home_to_bob_evans.state|round > 8 %}
|
|
Traffic to Bob Evans appears heavier than normal.
|
|
{% else %}
|
|
Traffic to Bob Evans is normal.
|
|
{% endif %}
|
|
Currently it will take {{states.sensor.home_to_bob_evans.state|round}} minutes to get to Bob Evans.
|
|
{% elif is_state('input_boolean.kallen_school_today','on') %}
|
|
{%- if states.sensor.home_to_school.state|round > 12 %}
|
|
Traffic to the school appears heavier than normal.
|
|
{% else %}
|
|
Traffic to the school is normal.
|
|
{% endif %}
|
|
Currently it will take {{states.sensor.home_to_school.state|round}} minutes to get to the school.
|
|
{% else %}
|
|
It appears no traffic reports are needed today. Enjoy your day off!
|
|
{% endif %}
|
|
</p>
|
|
|
|
<p>
|
|
{% if is_state('input_boolean.tony_streaming_today','on') %}
|
|
{{ [
|
|
"Tony will be pretending to be a real content creator tonight. ",
|
|
"Tony will be doing his best to defeat his impostor syndrome tonight. ",
|
|
"Tony will be playing video games and yelling into a microphone tonight. ",
|
|
"Tony will be scraping out the nickels and dimes tonight for the sake of entertainment. ",
|
|
"Tony is not really all that funny, but tonight he will present himself to a crowd of questionable individuals who seem to think that he is. "
|
|
] | random }} The studio is scheduled to go online at {{ input_datetime_12hr('input_datetime.tony_streaming_start_time') }}. "
|
|
{% endif %}
|
|
</p>
|
|
|
|
<p>
|
|
{% from 'sports.jinja' import sports_pregame, sports_main %}
|
|
{% if is_state('input_boolean.sports_updates','on') %}
|
|
{% if is_state('binary_sensor.michigan_wolverines_inhibit','off') %}
|
|
{{ sports_pregame('sensor.michigan_wolverines') }}
|
|
{% endif %}
|
|
{% if is_state('binary_sensor.ohio_state_buckeyes_inhibit','off') %}
|
|
{{ sports_pregame('sensor.ohio_state_buckeyes') }}
|
|
{% endif %}
|
|
{% if is_state('binary_sensor.toledo_rockets_inhibit','off') %}
|
|
{{ sports_pregame('sensor.toledo_rockets') }}
|
|
{% endif %}
|
|
{% if is_state('binary_sensor.minnesota_vikings_inhibit','off') %}
|
|
{{ sports_pregame('sensor.minnesota_vikings') }}
|
|
{% endif %}
|
|
{% if is_state('binary_sensor.san_francisco_49ers_inhibit','off') %}
|
|
{{ sports_pregame('sensor.san_francisco_49ers') }}
|
|
{% endif %}
|
|
{% if is_state('binary_sensor.cleveland_guardians_inhibit','off') %}
|
|
{{ sports_pregame('sensor.cleveland_guardians') }}
|
|
{% endif %}
|
|
{% if is_state('binary_sensor.minnesota_twins_inhibit','off') %}
|
|
{{ sports_pregame('sensor.minnesota_twins') }}
|
|
{% endif %}
|
|
{% if is_state('binary_sensor.los_angeles_dodgers_inhibit','off') %}
|
|
{{ sports_pregame('sensor.los_angeles_dodgers') }}
|
|
{% endif %}
|
|
{% endif %}
|
|
</p>
|
|
|
|
<p>
|
|
{% if is_state('input_boolean.sports_updates','on') %}
|
|
{% if is_state('binary_sensor.michigan_wolverines_inhibit','off') %}
|
|
{{ sports_main('sensor.michigan_wolverines') }}
|
|
{% endif %}
|
|
{% if is_state('binary_sensor.ohio_state_buckeyes_inhibit','off') %}
|
|
{{ sports_main('sensor.ohio_state_buckeyes') }}
|
|
{% endif %}
|
|
{% if is_state('binary_sensor.toledo_rockets_inhibit','off') %}
|
|
{{ sports_main('sensor.toledo_rockets') }}
|
|
{% endif %}
|
|
{% if is_state('binary_sensor.minnesota_vikings_inhibit','off') %}
|
|
{{ sports_main('sensor.minnesota_vikings') }}
|
|
{% endif %}
|
|
{% if is_state('binary_sensor.san_francisco_49ers_inhibit','off') %}
|
|
{{ sports_main('sensor.san_francisco_49ers') }}
|
|
{% endif %}
|
|
{% if is_state('binary_sensor.cleveland_guardians_inhibit','off') %}
|
|
{{ sports_main('sensor.cleveland_guardians') }}
|
|
{% endif %}
|
|
{% if is_state('binary_sensor.minnesota_twins_inhibit','off') %}
|
|
{{ sports_main('sensor.minnesota_twins') }}
|
|
{% endif %}
|
|
{% if is_state('binary_sensor.los_angeles_dodgers_inhibit','off') %}
|
|
{{ sports_main('sensor.los_angeles_dodgers') }}
|
|
{% endif %}
|
|
{% 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 finally, here is a bit of inspiration to start your day. {{ inspirational_quote() }}
|
|
</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()) -}} |