###############################################################################
# @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 }}