############################################################################### # @author : Mahasri Kalavala # @date : 04/15/2017 # @package : Scripts # @description : Nothing but Notification Stuff! ############################################################################### homeassistant: 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 - name: telegram platform: telegram chat_id: !secret telegram_chatid 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 # # Telegram Configuration # telegram_bot: - platform: broadcast api_key: !secret telegram_apikey allowed_chat_ids: - !secret telegram_chatid - platform: polling api_key: !secret telegram_apikey parse_mode: html allowed_chat_ids: - !secret telegram_chatid ############################################################################### # _ _ _ _ __ # | \ | | | | (_)/ _| # | \| | ___ | |_ _| |_ _ _ # | . ` |/ _ \| __| | _| | | | # | |\ | (_) | |_| | | | |_| | # |_| \_|\___/ \__|_|_| \__, | # __/ | # |___/ # Notify Related Scripts ############################################################################### script: notify_family: sequence: - condition: template value_template: '{{ message | trim != "" }}' - service: script.notify_on_led_screen data: message: "{{ message }}" notify_options: "{{ notify_options }}" - service: script.notify_firestick data: url: "{{ url }}" # local url path: "{{ file }}" # local path title: "{{ title }}" message: "{{ message }}" notify_options: "{{ notify_options }}" - service: script.notify_telegram data: file: "{{ url }}" title: "{{ title }}" message: "{{ message }}" notify_options: "{{ notify_options }}" - service: script.notify_email data: title: "{{ title }}" message: "{{ message }}" notify_options: "{{ notify_options }}" - service: script.notify_voice data: message: "{{ message }}" notify_options: "{{ notify_options }}" ############################################################################### # NOTIFY OPTIONS # 1. tv # 2. telegram # 3. led # 4. email # 5. voice ############################################################################### notify_firestick: sequence: - condition: state entity_id: input_boolean.firetv_notifications state: "on" - condition: template value_template: "{{ 'tv' in notify_options }}" - service: notify.android_tv_fire_tv data: message: "{{ message }}" title: Mahasri Bot data: color: red duration: 7 url: path: "{{ url }}" #/config/www/downloads/camera/driveway/driveway_20220604_185216.jpg file: path: "{{ url }}" #/config/www/downloads/camera/driveway/driveway_20220604_185216.jpg icon: path: > /config/www/{{- [ "suresh.jpg", "srinika.jpg", "mallika.jpg", "hasika.jpg", "bob.jpg", "butters.jpg", "eric.jpg", "gene.jpg", "kyle.jpg", "linda.jpg", "lois.jpg", "louis.jpg", "meg.jpg", "morty.jpg", "peter.jpg", "quagmire.jpg", "randy.jpg", "tina.jpg" ] | random -}} notify_telegram: sequence: - condition: state entity_id: input_boolean.telegram_notifications state: "on" - condition: template value_template: "{{ 'telegram' in notify_options }}" - service: notify.telegram data: message: "{{ message }}" title: "{{ title }}" notify_email: sequence: - condition: state entity_id: input_boolean.email_notifications state: "on" - condition: template value_template: "{{ 'email' in notify_options }}" - service: notify.notify_smtp data: title: "{{ title }}" message: "{{ message }}" data: images: - "{{- path -}}" notify_voice: sequence: - condition: state entity_id: input_boolean.voice_notifications state: "on" - condition: template value_template: "{{ 'voice' in notify_options }}" - service: script.voice_notify data: message: "{{ message }}" notify_on_led_screen: sequence: - condition: state entity_id: input_boolean.led_notifications state: "on" - condition: template value_template: "{{ 'led' in notify_options }}" - service: mqtt.publish data: topic: messageboard/messages payload: "{{ message }}" ############################################################################### # 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: media_player.volume_set entity_id: media_player.living_room, media_player.upstairs data: 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: 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.living_room, media_player.upstairs data: 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 }}