###################################################################################################### ###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 }}" # # @CCOSTAN # Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig ###################################################################################################### 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: '21:30: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 {% elif is_state('media_player.whole_house', '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 - 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.3 {% elif now().strftime("%H")|int > 12 and now().strftime("%H")|int < 20%} 0.55 {% else %} 0.3 {% endif %} - service: tts.amazon_polly_say entity_id: media_player.livingroomCC data_template: message: > {% if call_no_announcement != 1 %} {% 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 %} {% 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 -%} {%- macro inside_weather() -%} Inside the house, it is {{ states.climate.downstairs.attributes["current_temperature"]}} degrees with around {{states('sensor.downstairs_thermostat_humidity')}} percent humidity. {%- endmacro -%} {%- macro outside_weather() -%} Outside, it is going to be {{states('sensor.dark_sky_minutely_summary')}} {%- endmacro -%} {# *********** This macro looks for High UV rays and lets us know if it is before 2pm #} {%- macro uv_rays() -%} {% if now().strftime("%H")|int > 8 and now().strftime("%H")|int < 16%} {% if state.sensor.uv_index.states|int <= 4 %} The U V index today will be very mild today. {% elif states.sensor.uv_index.state|int > 4 and states.sensor.uv_index.state|int <=7 %} The U V index will be {{states('sensor.uv_index')}} today. This is considered high. Be sure to drink lots of water and put on suntan lotion if you will be in the sun. {% elif states.sensor.uv_index.state|int > 7 and states.sensor.uv_index.state|int <=10 %} The U V index will be {{states(sensor.uv_index)}} today. This is considered very high. Be sure to drink lots of water and put on suntan lotion often today. You could get a sunburn in about {{states('sensor.uv_burn_time')}} minutes. {% endif %} {{states('sensor.uv_sun_advice')}} {% endif %} {%- endmacro -%} {%- macro lights_status() -%} . There are {% for state in states.light if state.state == 'on' -%} {%- if loop.last -%} {{ loop.index }} {%- endif -%} {%- endfor %} lights on right now. {% set comma = joiner(', ') %} The {% for group in states.group|groupby('state') -%} {%- for entity in group.list if entity.state == 'on' and entity.name.split(' ')[1]|lower == 'lights' and entity.name.split(' ')[0]|lower != 'all' and entity.name.split(' ')[0]|lower != 'interior' -%} {{ ' and' if loop.last and not loop.first else comma() }} {{ entity.name }} {%- endfor -%} {%- endfor %} {%- endmacro -%} {% macro garage_check() %} {% if is_state('cover.large_garage', 'open') -%} The Large Garage Door is still open {% endif -%} {% if is_state('cover.small_garage', 'open') -%} {% if is_state('cover.large_garage', 'open') -%}and {%- endif %} The small Garage Door is still open. {% endif %} {%- endmacro -%} {% macro medicine() %} {% if is_state('input_boolean.medicine', 'off') -%} It looks like Carlo has not taken his medicine yet. Please make sure Carlo takes his medicine now. {% endif -%} {%- endmacro -%} {% macro iss() %} {% if is_state('binary_sensor.iss', 'on') -%} Here is something interesting. The international space station is above us now. There are {{ states.binary_sensor.iss.attributes["number_of_people_in_space"]}} people in space right now. {{outside_weather()}} {% endif -%} {%- endmacro -%} {% macro pihole() %} {% if states.sensor.pihole_ads_blocked_today.state|int > 1000 -%} Our internet blocking system has blocked {{states.sensor.pihole_ads_blocked_today.state}} ads today! Happy Internet surfing! {% endif -%} {%- endmacro -%} {# ********************************************* #} {# ******** Start the Speech routines ******* #} {# #} {# ********************************************* #} {{ personarriving }} {# Called from Annoucenments #} {{ NestStatus}} {# Called from Nest when thermostats turn on #} {% if call_inside_weather == 1 %} {{inside_weather()}} {%endif%} {% if call_outside_weather == 1 %} {{outside_weather()}} {%endif%} {{uv_rays()}} {{ DoorOpened }} {{ DoorClosed }} {% if call_garage_check == 1 or is_state('sun.sun', 'below_horizon') %} {{garage_check()}} {%endif%} {{ NewDevice}} {% if is_state('input_boolean.lights_status', 'on') %} {{lights_status()}} {%endif%} {% if call_responsibilities == 1%} {{responsibilities()}} {%endif%} {% if now().strftime("%H")|int > 22 %} {{Medicine()}} {%endif%} {{ value1 }} {{ iss() }} {{ pihole() }} cache: true - service: input_boolean.turn_off entity_id: - input_boolean.alert_mode - input_boolean.home_stats - input_boolean.responsibilities - input_boolean.lights_status