Home-AssistantConfig/script/voice_notify.yaml

111 lines
3.6 KiB
YAML
Executable File

######################################################################################################
###Script to send notifications to the ChromeCast Audios during normal hours and only when we are home! Call like this:
# action:
# service: script.Voice_notify
# data_template:
# value1: 'Startup: Home Assistant is Up and Running!'
# OR
# value1: "{{ trigger.to_state.state }}"
######################################################################################################
voice_notify:
sequence:
- condition: and
conditions:
- condition: or
conditions:
- condition: state
entity_id: group.family
state: 'home'
- condition: state
entity_id: input_boolean.guest_mode
state: 'on'
- condition: or
conditions:
- condition: time
after: '09:00:00'
before: '22:00:00'
- condition: state
entity_id: input_boolean.alert_mode
state: 'on'
- condition: or
conditions:
- condition: template
value_template: >
{% if is_state('media_player.livingroomCC', 'playing') %}
false
{% else %}
true
{% endif %}
- condition: state
entity_id: input_boolean.alert_mode
state: 'on'
- condition: state
entity_id: input_boolean.speech_notifications
state: 'on'
- service: switch.turn_on
entity_id: switch.living_room_amp
# - delay: '00:00:05'
- service: media_player.turn_on
entity_id: media_player.livingroomCC
- service: media_player.volume_set
entity_id:
- media_player.livingroomCC
data_template:
volume_level: >
{% if now().strftime("%H")|int < 12 and now().strftime("%H")|int > 6%}
0.25
{% elif now().strftime("%H")|int > 12 and now().strftime("%H")|int < 20%}
0.45
{% else %}
0.20
{% endif %}
- service: mqtt.publish
data_template:
payload: '{{ value1 }}'
topic: 'polly/lastmsg'
retain: true
- service: tts.amazon_polly_say
entity_id: media_player.livingroomCC
data_template:
message: >
{% 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 %}
{%- macro responsibilities() -%}
{%if now().strftime("%a") == 'Wed' or now().strftime("%a") == 'Sun'%}
Today is {{now().strftime("%A")}} and {{now().strftime("%A")}} is garbage day.
{%endif%}
{%if now().strftime("%a") == 'Wed'%}
Both Recycling and regular Garbage goes out. Please take out all of the garbage cans tonight.
{%endif%}
{% if now().strftime("%j")|int % 2 != 0 %}
Today is Justin's day to do the chores.
{% else %}
Today is Paige's day to do the chores.
{%endif%}
{%- endmacro -%}
{% if is_state('input_boolean.responsibilities', 'on') %}
{{responsibilities()}}
{%endif%}
{{ value1 }}"
cache: true
- service: input_boolean.turn_off
entity_id:
- input_boolean.last_message
- input_boolean.alert_mode
- input_boolean.responsibilities