############################################################################### # @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.state == "on" }}' - condition: template value_template: '{{ states.input_boolean.do_not_disturb.state | lower == "off" }}' - condition: template value_template: '{{ states.media_player.gstreamer.state == "idle" }}' - condition: template value_template: '{{ states.media_player.mpd.state != "playing" }}' - condition: template value_template: '{{ message | trim != "" }}' - condition: state entity_id: group.all_devices state: 'home' - condition: template value_template: > {% if states.input_boolean.emergency_mode.state == "on" %} true {% else %} {{ states.group.all_devices.state == "home" }} {% endif %} - condition: template value_template: > {% if only_at_night | default('no', true ) == "yes" %} {% if states.sun.sun.state == "above_horizon" %} false {% else %} true {% endif %} {% else %} true {% endif %} - service: media_player.volume_set entity_id: media_player.gstreamer data_template: volume_level: > {% if states.input_boolean.emergency_mode.state == "on" %} {{ states.input_number.tts_volume_level_alert.state }} {% else %} {% if now().hour | int < 12 and now().hour | int > 6 %} {{ states.input_number.tts_volume_level_morning.state }} {% elif now().hour|int > 12 and now().hour|int < 20 %} {{ states.input_number.tts_volume_level_afternoon.state }} {% else %} {{ states.input_number.tts_volume_level_evening.state }} {% endif %} {% endif %} - service: tts.amazon_polly_say entity_id: media_player.gstreamer 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 }} ############################################################################### # Greeting ############################################################################### voice_greeting: sequence: - service: tts.amazon_polly_say entity_id: media_player.gstreamer 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