diff --git a/packages/announcements.yaml b/packages/announcements.yaml index 9ce4a08..dd32f58 100644 --- a/packages/announcements.yaml +++ b/packages/announcements.yaml @@ -74,3 +74,14 @@ script: - service: button.press target: entity_id: button.good_morning + + kallen_nightly_briefing: + sequence: + - service: script.speech_engine + data: + who: living_room + message: !include ../templates/speech/kallen_nightly_briefing.yaml + - service: script.text_notify + data: + who: "ios_parents" + message: "I just gave Kallen's nightly briefing." diff --git a/templates/speech/kallen_nightly_briefing.yaml b/templates/speech/kallen_nightly_briefing.yaml new file mode 100644 index 0000000..d68a77b --- /dev/null +++ b/templates/speech/kallen_nightly_briefing.yaml @@ -0,0 +1,78 @@ +> + {# Kallen Nightly Report #} + {%- macro getReport() -%} +

+ Good Evening, Kallen, + {{ [ 'It is almost bedtime. That means it is time to start preparing for bed. if you are taking a shower tonight, you need to head that way.', + 'My sensors are detecting a strange smell. I am running diagnostics. But in the mean time, you should start a shower.', + '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.', + 'Did you ever hear the one about the kid who never took a shower? 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 head for your bedroom.' + ] | 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 turned on your bedroom lights.', + 'I have executed the Pre bed routine for your room.' + ] | random }} +

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