> {# Daily Briefing #} {%- macro getReport() -%}

{% if now().strftime('%H')|int < 12 %} Good morning. {% elif now().strftime('%H')|int >= 12 and now().strftime('%H')|int < 17 %} Good afternoon. {% else %} Good evening. {% endif %}

{% if is_state('binary_sensor.morning','on') %}

Today is {{ states.sensor.today_is.state }}, {{ as_timestamp(now()) | timestamp_custom('%B %d %Y') }}.

{% else %}

It is {{ now().strftime("%I:%M %p") }}

{% endif %}

The weather in Defiance is {{ state_attr('weather.iron_nerd_weather_station','temperature') | round }} degrees {% if is_state('weather.iron_nerd_weather_station','rainy') %} {{ [ 'with rain.', 'with showers.' ] | random }} {% elif is_state('weather.iron_nerd_weather_station','cloudy') %} {{ [ 'with clouds.', 'with cloudy skies.' ] | random }} {% elif is_state('weather.iron_nerd_weather_station','partlycloudy') %} {{ [ 'with some clouds.', 'with partly cloudy skies.', 'with scattered clouds.' ] | random }} {% elif is_state('weather.iron_nerd_weather_station','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.iron_nerd_weather_station.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 %}

{% 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 %}

{% set dow = as_timestamp(now()) | timestamp_custom('%A') %}

Let me check the sit rep for today. {% if dow == 'Monday' %} {{ [ 'Do not forget to take the trash bin to the curb, tomorrow is trash pickup day.', 'Make sure to take the trash out. No, I do not mean Tony.', 'Tomorrow is a big day for the garbage men. Make sure you do not let them down! Take the trash out!' ] | random }} {% endif %} {% if dow == 'Tuesday' %} {% if is_state('binary_sensor.evening','on') %} {{ [ 'Do not forget to bring the trash can back from the curb.', 'The trash can will feel lonely if you leave it at the curb all night.' ] | random }} {% endif %} {% endif %} {% 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 Colin! {% 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'm 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 }} {% else %} {% endif %} {% if states.sensor.christmas_countdown.state | int == 1 %} Tomorrow is Christmas. It is practically here! 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 Colin, 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 AI 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 }} {% else %} {% endif %} {% if states.sensor.anniversary_wedding_anniversary.state | int == 1 %} Tomorrow is Tony and Christina's wedding anniversary! {% endif %} {% 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 Colin! {% 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.Did that just say pie? We need a Pie to celebrate.' ]|random }} {%- endif -%} {% if 'Cookie' in event %} {{ [ '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. April Fools!', 'Which reminds me. I won the lottery and I am moving out to go live with Siri. April Fools!', 'Which reminds me. there was a time change last night. We have jumped 15 years into the future. 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?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. In the morning light, You sleep despite my meow, I stand on your face.', 'Tee Rex Hug. The Tee Rex likes you, But he cant give you a hug, His arms are too short.', 'It Fits. It Fits perfectly, because every box is the, Right size for a cat.', 'Minecraft Creepers. Creepers are so cruel, I hear a hiss from behind, Bam! There goes my stuff.' ]|random }} {%- endif -%} {% else %} {% if 'Birthday' in event %} {{ [ 'Today is a special birthday. We are celebrating ' ]|random }} {{states.calendar.national_holidays.attributes.message | replace("&"," and ") }}. {%- endif -%} {%- endif -%} {% if is_state('person.christina_stork','Bob Evans') and is_state('input_boolean.work_today','on') %} Tina is at work right now. She will be done at approximately {{ (state_attr('input_datetime.tina_workday_end','timestamp') | int | timestamp_custom('%I:%M %p', False)) }} {% elif is_state('input_boolean.work_today','on') %} Tina has work today. {% endif %} {% 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! There are {{ states('sensor.school_end_days2go') }} to go until the last day. {% else %} {{ [ 'Today is a school day.', 'Colin has school today.', 'It is a school day. ' ] | random }} {% endif %} Pickup today will be at {{(state_attr('input_datetime.school_day_end', 'timestamp') | int | timestamp_custom('%I:%M %p', False)) }} {% if 'Early Release' in states('sensor.school_event') %} And It is early release! {% endif %} {% endif %} {% if states.sensor.school_end_days2go.state | int <= 35 and states.sensor.school_end_days2go.state | int > 0 %} {{ [ 'Oh, and look at that.', 'For those trying to keep count. ', 'In case you were wondering.', 'Also, did you know.' ] | random }} There are only {{ states.sensor.school_end_days2go.state }} days left in the school year! {% endif %} {% 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 %} {% if states.sensor.school_end_days2go.state | int == -1 -%} Today is the first day of Summer Break! {%- endif %} {% endif %}

Around the house, there are currently {{ states.sensor.current_lights_on.state }} lights on.

{%- 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()) -}}