diff --git a/packages/announcements.yaml b/packages/announcements.yaml index c9ea157..68deaf7 100644 --- a/packages/announcements.yaml +++ b/packages/announcements.yaml @@ -99,6 +99,18 @@ automation: action: - service: script.daily_briefing + - id: 5d06ba92-de10-4bf3-bc08-86f5be60c4a7 + alias: Morning Briefing + trigger: + - platform: time + at: input_datetime.morning_report + condition: + condition: state + entity_id: binary_sensor.people_present + state: 'on' + action: + - service: script.morning_report + script: reset_annc_switches: sequence: @@ -153,4 +165,11 @@ script: - service: script.speech_engine data_template: who: "{{ who }}" - message: !include ../templates/speech/daily_briefing.yaml \ No newline at end of file + message: !include ../templates/speech/daily_briefing.yaml + + morning_report: + sequence: + - service: script.speech_engine + data_template: + who: "{{ who }}" + message: !include ../templates/speech/morning_briefing.yaml \ No newline at end of file diff --git a/packages/scheduling.yaml b/packages/scheduling.yaml index 23e19b4..eedfbc8 100644 --- a/packages/scheduling.yaml +++ b/packages/scheduling.yaml @@ -98,6 +98,26 @@ automation: {% else %} 09:00 {% endif %} + - service: input_datetime.set_datetime + entity_id: input_datetime.morning_report + data_template: + time: > + {% if is_state('input_boolean.school_today','on') %} + 08:20 + {% elif is_state('input_boolean.work_today','on') and is_state('input_boolean.school_today','off') %} + {{ (state_attr('input_datetime.tina_workday_start', 'timestamp') - 1800) | timestamp_custom('%H:%M', false) }} + {% else %} + 12:00 + {% endif %} + - service: input_datetime.set_datetime + entity_id: input_datetime.daily_briefing + data_template: + time: > + {% if is_state('input_boolean.school_today','on') %} + 14:15 + {% else %} + {{ (state_attr('input_datetime.tina_workday_end', 'timestamp') + 1800) | timestamp_custom('%H:%M', false) }} + {% endif %} - id: 55293e9a-ec3b-46bb-af47-94e95f3c9951 alias: House Scheduling - Evening diff --git a/templates/speech/morning_briefing.yaml b/templates/speech/morning_briefing.yaml new file mode 100644 index 0000000..2ecf85c --- /dev/null +++ b/templates/speech/morning_briefing.yaml @@ -0,0 +1,135 @@ +> + {# Morning Report #} + {%- macro getReport() -%} +
+ {% if now().strftime('%H')|int < 12 and now().strftime('%H')|int > 6 %} + Good morning. + {% elif now().strftime('%H')|int >= 12 and now().strftime('%H')|int < 17 %} + Good afternoon. + {% else %} + Good evening. + {% endif %} +
++ {% if now().strftime('%H')|int < 12 %} + {% if now().strftime('%M')|int == 0 %} + It is {{ now().strftime('%H')|int }} AM. + {% else %} + It is {{ now().strftime('%H')|int }} {{ now().strftime('%M')|int }} AM. + {% endif %} + + {% elif now().strftime('%H')|int > 12 %} + {% if now().strftime('%M')|int == 0 %} + It is {{ now().strftime('%H')|int }} PM. + {% else %} + It is {{ now().strftime('%H')|int }} {{ now().strftime('%M')|int }} PM. + {% endif %} + + {% else %} + + {% endif %} +
++ {{ [ + '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 }}. +
++ It is currently {{states.weather.iron_nerd_weather_station.state}} and {{states.sensor.pirateweather_temperature.state|round}} degrees in Defiance. +
++ {% 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 %} +
++ {{ [ + 'The rest of the day should be,', + 'Todays forecast should be ,' + ]|random }} + {{ states.sensor.current_forecast.state }} +
+
+ {% 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
+ + {% if is_state('input_boolean.school_today','on') and is_state('input_boolean.work_today','on') %} + {%- if states.sensor.home_to_school.state|round > 12 %} + Traffic to the school appears heavier than normnal. + {% 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 states.sensor.school_to_chipotle.state|round > 15 %} + Traffic from the school to Chipotle appears heavier than normnal. + {% else %} + Traffic from the school to Chipotle is normal. + {% endif %} + Currently it will take {{states.sensor.school_to_chipotle.state|round}} minutes to get to Chipotle from the school. + {% elif is_state('input_boolean.work_today','on') %} + {%- if states.sensor.home_to_chipotle.state|round > 15 %} + Traffic to Chipotle appears heavier than normnal. + {% else %} + Traffic to Chipotle is normal. + {% endif %} + Currently it will take {{states.sensor.home_to_chipotle.state|round}} minutes to get to Chipotle. + {% elif is_state('input_boolean.school_today','on') %} + {%- if states.sensor.home_to_school.state|round > 12 %} + Traffic to the school appears heavier than normnal. + {% 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 %} + + +
+ {%- 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()) -}} \ No newline at end of file