############################################################################### # @author : Mahasri Kalavala # @date : 04/15/2017 # @package : Scripts # @description : Nothing but Notification Stuff! ############################################################################### homeassistant: customize: group.tts_announcements: order: 52 # Script Stuff script.home_status: friendly_name: Home Status (Hourly Report) script.home_mode_away: friendly_name: Set Home Mode to AWAY script.good_night_tts: friendly_name: Good Night TTS Report script.voice_notify: hidden: true script.voice_greeting: hidden: true script.ifttt_leeo_color_change: hidden: true script.ifttt_notify: hidden: true script.notify_me: hidden: true ifttt: key: !secret ifttt_key notify: - name: ios_devices platform: group services: - service: ios_ipad - service: ios_suresh - service: ios_mallika - service: ios_srinika - service: ios_hasika # make sure you generate app password for your email if you have 2FA enabled! - name: notify_smtp platform: smtp server: smtp.gmail.com port: 587 timeout: 15 username: !secret smtp_username password: !secret smtp_password sender: !secret smtp_sender recipient: !secret smtp_recipient # - name: notify_aws_sns # platform: aws_sns # aws_access_key_id: !secret aws_access_key_id # aws_secret_access_key: !secret aws_secret_access_key # region_name: 'us-east-1' - name: file_notify platform: file filename: debug.log tts: - platform: amazon_polly aws_access_key_id: !secret aws_access_key_id aws_secret_access_key: !secret aws_secret_access_key region_name: "us-east-1" text_type: ssml voice: Joanna script: ############################################################################### # Notify Related Scripts ############################################################################### ifttt_notify: sequence: - condition: template value_template: '{{ message | trim != "" }}' - service: ifttt.trigger data_template: event: "Smart_Home" value1: "{{ message }}" value2: "" ifttt_leeo_color_change: sequence: - condition: template value_template: '{{ value1 | trim != "" }}' - service: ifttt.trigger data_template: event: "LEEO_COLOR_CHANGE" value1: "{{ value1 }}" notify_me: sequence: - condition: state entity_id: input_boolean.text_alerts state: "on" - condition: template value_template: '{{ message | trim != "" }}' - service: script.ifttt_notify data_template: message: "{{ message }}" good_night_tts: sequence: - service: script.voice_notify data_template: message: !include ../templates/goodnight.yaml ############################################################################### # Voice Notify # Conditions: # => Only Announce when people are home. Except in emergency mode! # => Only Announce when Music is NOT being played ############################################################################### voice_notify: sequence: - condition: template value_template: "{{ states('input_boolean.voice_notifications') == 'on' }}" - condition: template value_template: "{{ states('input_boolean.do_not_disturb') | lower == 'off' }}" - condition: template value_template: "{{ message | trim != '' }}" - condition: template value_template: "{{ states('input_boolean.home_mode_away') == 'off' }}" - condition: template value_template: > {% if only_at_night | default('no', true ) == "yes" %} {% if states('sun.sun') == "above_horizon" %} false {% else %} true {% endif %} {% else %} true {% endif %} # - service: sonos.snapshot # data_template: # entity_id: media_player.living_room, media_player.upstairs # - service: sonos.unjoin # data_template: # entity_id: media_player.living_room, media_player.upstairs - service: media_player.volume_set entity_id: media_player.living_room, media_player.upstairs data_template: volume_level: > {% if states('input_boolean.emergency_mode') == "on" %} {{ states('input_number.tts_volume_level_alert') }} {% else %} {% if now().hour | int < 12 and now().hour | int > 6 %} {{ states('input_number.tts_volume_level_morning') }} {% elif now().hour|int > 12 and now().hour|int < 20 %} {{ states('input_number.tts_volume_level_afternoon') }} {% else %} {{ states('input_number.tts_volume_level_evening') }} {% endif %} {% endif %} - service: tts.amazon_polly_say entity_id: media_player.living_room, media_player.upstairs data_template: cache: true message: > {% set msg = "" %} {% macro getGreeting() %} {% if greeting | default('yes', true ) == "yes" %} {% if now().hour|int < 12 %} Good morning. {% elif now().hour|int < 18 %} Good afternoon. {% else %} Good evening. {% endif %} {% endif %} {% endmacro %} {%- macro getEndGreeting() -%} {%- if greeting |default('yes', true ) == "yes" -%} Thank you! {%- endif -%} {%- endmacro -%} {% set msg = msg + " " %} {% set msg = msg + getGreeting() %} {% set msg = msg + ". " + message %} {% set msg = msg.replace(".", " ") %} {% set msg = msg + " " + getEndGreeting() %} {% set msg = msg + " " %} {{ msg }} # - delay: "{{ delay|default('00:00:00') }}" # - wait_template: "{{ is_state('media_player.living_room', 'playing') }}" # timeout: "00:00:05" # - service: sonos.restore # data_template: # entity_id: media_player.living_room, media_player.upstairs ############################################################################### # Greeting ############################################################################### voice_greeting: sequence: - service: tts.amazon_polly_say entity_id: media_player.living_room, media_player.upstairs data_template: cache: true message: > {% set msg = "" %} {% macro getGreeting() %} {% if greeting | default('yes', true ) == "yes" %} {% if now().hour|int < 12 %} Good morning. {% elif now().hour|int < 18 %} Good afternoon. {% else %} Good evening. {% endif %} {% endif %} {% endmacro %} {% set msg = msg + " " %} {% set msg = msg + " " + getGreeting() %} {% set msg = msg.replace(".", " ") %} {% set msg = msg + " " %} {{ msg }} ############################################################################### # Status around the house ############################################################################### home_status: sequence: - service: script.voice_notify data_template: message: !include ../templates/home_status.yaml