234 lines
7.5 KiB
YAML
234 lines
7.5 KiB
YAML
|
###############################################################################
|
||
|
# @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
|
||
|
data_template:
|
||
|
entity_id: media_player.gstreamer
|
||
|
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 + "<speak> " %}
|
||
|
{% set msg = msg + getGreeting() %}
|
||
|
{% set msg = msg + ". " + message %}
|
||
|
{% set msg = msg.replace(".", " <break time='0.5s'/> ") %}
|
||
|
{% set msg = msg + " " + getEndGreeting() %}
|
||
|
{% set msg = msg + " </speak>" %}
|
||
|
{{ msg }}
|
||
|
|
||
|
###############################################################################
|
||
|
# Greeting
|
||
|
###############################################################################
|
||
|
voice_greeting:
|
||
|
sequence:
|
||
|
- service: tts.amazon_polly_say
|
||
|
data_template:
|
||
|
entity_id: media_player.gstreamer
|
||
|
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 + "<speak> " %}
|
||
|
{% set msg = msg + " " + getGreeting() %}
|
||
|
{% set msg = msg.replace(".", " <break time='0.5s'/> ") %}
|
||
|
{% set msg = msg + " </speak>" %}
|
||
|
{{ msg }}
|
||
|
|
||
|
###############################################################################
|
||
|
# Status around the house
|
||
|
###############################################################################
|
||
|
home_status:
|
||
|
sequence:
|
||
|
- service: script.voice_notify
|
||
|
data_template:
|
||
|
message: !include ../templates/home_status.yaml
|