179 lines
6.6 KiB
YAML
Executable File
179 lines
6.6 KiB
YAML
Executable File
>
|
|
{# Morning Wakeup Report #}
|
|
{%- macro getReport() -%}
|
|
|
|
<p>
|
|
Good morning.
|
|
</p>
|
|
|
|
<p>
|
|
<s>It is {{ now().strftime("%I:%M %p") }}</s>
|
|
</p>
|
|
|
|
<p>
|
|
The Weather in Grayson is {{states('sensor.acurite_6045m_3078_f')|round}} degrees
|
|
{% if is_state('weather.home', 'rainy') %}
|
|
{{ [
|
|
'with rain.',
|
|
'with showers.'
|
|
] | random }}
|
|
{% elif is_state('weather.home', 'cloudy') %}
|
|
{{ [
|
|
'with clouds.',
|
|
'with cloudy skies.'
|
|
] | random }}
|
|
{% elif is_state('weather.home', 'partlycloudy') %}
|
|
{{ [
|
|
'with some clouds.',
|
|
'with partly cloudy skies.',
|
|
'with scatterd clouds'
|
|
] | random }}
|
|
{% elif is_state('weather.home', 'sunny') %}
|
|
{% if is_state('sun.sun', 'above_horizon') %}
|
|
{{ [
|
|
'and sunny.',
|
|
'with sun.'
|
|
] | random }}
|
|
{% else %}
|
|
{{ [
|
|
'and clear.',
|
|
'with clear skies.'
|
|
] | random }}
|
|
{% endif %}
|
|
{% else %}
|
|
and {{ states.weather.home.state }}
|
|
{% endif %}
|
|
|
|
|
|
{% if states.sensor.weatheralerts_active_alerts.state | int > 0 %}
|
|
There are currently {{states.sensor.weatheralerts_active_alerts.state }} active weather alerts for our area.
|
|
{% endif %}
|
|
|
|
Based on the forecasted high temperature,
|
|
{% if is_state('binary_sensor.morning','on') %}
|
|
{% 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 ',
|
|
' rather warm outside ',
|
|
' almost too hot outside ',
|
|
' a little warm ',
|
|
] | random }}
|
|
today. So I suggest wearing shorts.
|
|
{% elif is_state('sensor.clothing_forecast', 'Hot') %}
|
|
It is going to be
|
|
{{ [ 'hot',
|
|
'hotter than the sun ',
|
|
'hotter than hot. but in a lot of bad ways ',
|
|
'hotter than the sun outside ',
|
|
'super hot ',
|
|
'hotter than the inside of a volcano '
|
|
] | random }}
|
|
today. So I suggest wearing shorts.
|
|
{% else %}
|
|
It is going to be {{ states.sensor.clothing_forecast.state }} today so I suggest wearing shorts.
|
|
{% endif %}
|
|
{% 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 'Digital Learning' in states('sensor.school_event') %}
|
|
But it is a digital learning day so the commute will be short.
|
|
{% endif %}
|
|
{% if 'Early Release' in states('sensor.school_event') %}
|
|
And It is early release!
|
|
{% 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', 'on') and state_attr('input_datetime.school_day_end', 'timestamp') < as_timestamp(now()) and 'Digital Learning' not in states('sensor.school_event') %}
|
|
{% if is_state('sensor.school_lunch', 'Nothing') %}
|
|
I am not sure what the school menu is for today, so plan on Skylar taking his lunch
|
|
{% else %}
|
|
Today's school lunch is {{ states.sensor.school_lunch.state }}, so he might be interested in buying his lunch.
|
|
{% endif %}
|
|
{% endif %}
|
|
|
|
{% if states.sensor.school_end_days2go.state | int == -1 -%}
|
|
Today is the first day of Summer Break!
|
|
{%- endif %}
|
|
|
|
{% if 'School Holiday' in states('sensor.school_event') and is_state('input_boolean.school_today', 'off') %}
|
|
There is no school today.
|
|
{% endif %}
|
|
|
|
{% if is_state('calendar.skylar_events', 'on') %}
|
|
Skylar has {{ states.calendar.skylar_events.attributes.message }} today as well!
|
|
{% endif %}
|
|
</p>
|
|
|
|
<p>
|
|
{% if is_state('input_boolean.skylar_awake', 'on') %}
|
|
Skylar was up and moving at {{ states.input_datetime.skylar_awake_at.state }}.
|
|
{% if is_state('media_player.theater_tv', 'on') %}
|
|
and he appears to be in the Theater.
|
|
{% if is_state('input_boolean.skylar_dressed_reminder', 'on') %}
|
|
{{ [
|
|
'I did attempt to remind him to get dressed.',
|
|
'I reminded him to get dress.'
|
|
]|random }}
|
|
{% endif %}
|
|
{% elif is_state('media_player.croft_tv', 'playing') %}
|
|
and he appears to be in the Croft watching {{ states.media_player.croft_tv.attributes.app_name }}
|
|
{% if is_state('input_boolean.skylar_dressed_reminder', 'on') %}
|
|
{{ [
|
|
'I did attempt to remind him to get dressed.',
|
|
'I reminded him to get dress.'
|
|
]|random }}
|
|
{% endif %}
|
|
{% elif is_state('input_boolean.skylar_school', 'on') %}
|
|
and he appears to be at School.
|
|
{% else %}
|
|
but I currently cannot find him on any of my sensors.
|
|
{% endif %}
|
|
{% else %}
|
|
It doesn't appear that Skylar is out of bed yet.
|
|
{% 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()) -}} |