script: tts_notificatons: sequence: - service: script.speech_engine data: who: '{{ who }}' message: >- {% macro greeting() %}
{% 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 %}
{% endmacro %} {% macro confirmation() %}
{{ [
'Okay.',
'If you insist.',
'I am afraid I can not do that
{{ [ 'Pardon me, ', 'Excuse me, ', 'I do not mean to interrupt, but,', 'I hate to interrupt, but,', 'I beg your pardon, ', 'I do not mean to intrude, but, ', 'I am sorry to interrupt, but. ', 'Just a quick heads up, ' ] | random }}
{% endmacro %} {% macro issue() %}{{ [ 'House Emergency Alert!', 'Houston, We have a problem!', 'You might not like this.', 'There is something that needs your attention.' ] | random }}
{% endmacro %} {% macro time_is() %}It is {{ now().strftime("%I:%M %p") }}
{% endmacro %} {%- macro house_party_protocol_enabled() -%} {{ [ 'The house has been configured for a House Party.', 'I have enabled house party protocol.' ] | random }} {%- endmacro -%} {%- macro house_party_protocol_disabled() -%} {{ [ 'I have disabled house party protocol.' ] | random }} {%- endmacro -%} {%- macro snark_door_motion() -%} {{ [ 'Do you want me to send them away?', 'I have armed the lasers. Just say the word.', 'I was not informed there would be guests.', 'They do not appear to have any gifts, so I suggest we do not open the door.', 'My sensors have detected a meat popsicle.', 'I do not think they can hear me.' ] | random }} {%- endmacro -%} {# a macro that removes all newline characters, empty spaces, and returns formatted text. Also replaces all Underscores with Spaces #} {%- macro cleanup(data) -%} {%- for item in data.split("\n") if item | trim != "" -%} {{ item | trim | replace("_", " ") }} {% endfor -%} {%- endmacro -%} {# ********************************************* #} {# ******** Start the Speech routines ******** #} {# ********************************************* #} {# a macro to call all macros :) #} {%- macro mother_of_all_macros() -%} {% if call_greeting == 1 %} {{ greeting() }} {% endif %} {% if call_confirmation == 1 %} {{ confirmation() }} {% endif %} {% if call_interuption == 1 %} {{ interuption() }} {% endif %} {% if call_issue == 1 %} {{ issue() }} {% endif %} {% if call_time_is == 1 %} {{ time_is() }} {% endif %} {% if call_house_party_protocol_enabled == 1 %} {{ house_party_protocol_enabled() }} {% endif %} {% if call_house_party_protocol_disabled == 1 %} {{ house_party_protocol_disabled() }} {% endif %} {{ welcome_home }} {{ speech_message }} {% if call_snark_door_motion == 1 %} {{ snark_door_motion() }} {% endif %} {%- endmacro -%} {{- cleanup(mother_of_all_macros()) -}} daily_briefing_script: sequence: - service: script.speech_engine data: who: media_player.living_room_echo_dot message: >- {%- macro getGreeting() -%} {% 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 %} {%- endmacro -%} {%- macro getDoorStatus() -%} The Pod Bay Doors are Closed. {%- 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 -%} {%- macro mother_of_all_macros() -%} {{ getGreeting() }} {{ getDoorStatus()}} {%- endmacro -%} {{- cleanup(mother_of_all_macros()) -}}