Files
Home-Assistant-Configs/packages/notify.yaml

644 lines
20 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ATTENTION: The actual notify services are currently defined in configuration.yaml and NOT in this file.
# Just a note because I've already forgotten once ;)
input_boolean:
text_notify_tony:
name: Send Texts to Tony
icon: mdi:message
text_notify_tina:
name: Send Texts to Tina
icon: mdi:message
text_notify_kallen:
name: Send Texts to Kallen
icon: mdi:message
text_notify_parents:
name: Send Texts to Parents
icon: mdi:message
text_notify_nerds:
name: Send Texts to Nerds
icon: mdi:message
text_notifications:
name: Text Notifications
icon: mdi:message
presence_text_notifications:
name: Presence Texts
icon: mdi:message
notifications_audio:
name: Audio Notifications
icon: mdi:speaker-wireless
presence_audio_notifications:
name: Presence Audio
icon: mdi:speaker-wireless
audible_notifications:
name: Audible Notifications
icon: mdi:speaker-wireless
presence_notifications_tony:
name: Send Tony Presence Texts
icon: mdi:message
presence_notifications_tina:
name: Send Tina Presence Texts
icon: mdi:message
welcome_home:
name: Welcome Home
debug_texts:
name: Debug Texts
notify:
- platform: ios
- name: all_ios
platform: group
services:
- service: mobile_app_tinas_iphone
- service: mobile_app_tony_s_iphone
- service: mobile_app_tony_s_ipad
- service: mobile_app_kallen_iphone
- name: ios_parents
platform: group
services:
- service: mobile_app_tinas_iphone
- service: mobile_app_tony_s_ipad
- service: mobile_app_tony_s_iphone
- name: ios_tony
platform: group
services:
- service: mobile_app_tony_s_ipad
- service: mobile_app_tony_s_iphone
- name: ios_tina
platform: group
services:
- service: mobile_app_tinas_iphone
- name: ios_kallen
platform: group
services:
- service: mobile_app_kallen_iphone
- name: ios_nerds
platform: group
services:
- service: mobile_app_kallen_iphone
- service: mobile_app_tony_s_ipad
- service: mobile_app_tony_s_iphone
- name: tv_notifications
platform: group
services:
- service: living_room_tv
- service: basement_tv
- service: master_bedroom_tv
script:
###############################################################################
# Txt Notify
###############################################################################
text_notify_all:
sequence:
- service: notify.all_ios
data_template:
title: '{{ title }}'
message: >
{{ message }}
text_debug:
sequence:
- condition: state
entity_id: input_boolean.debug_texts
state: 'on'
- service: notify.ios_tony
data_template:
title: '{{ title }}'
message: >
{{ message }}
text_notify_tony:
sequence:
- condition: state
entity_id: input_boolean.text_notify_tony
state: 'on'
- service: notify.ios_tony
data_template:
title: '{{ title }}'
message: >
{{ message }}
text_notify_tina:
sequence:
- condition: state
entity_id: input_boolean.text_notify_tina
state: 'on'
- service: notify.ios_tina
data_template:
title: '{{ title }}'
message: >
{{ message }}
text_notify_kallen:
sequence:
- condition: state
entity_id: input_boolean.text_notify_kallen
state: 'on'
- service: notify.ios_kallen
data_template:
title: '{{ title }}'
message: >
{{ message }}
text_notify:
sequence:
- condition: state
entity_id: input_boolean.text_notifications
state: 'on'
- choose:
- conditions:
- condition: template
value_template: '{{ who == "tony"}}'
- condition: state
entity_id: input_boolean.text_notify_tony
state: 'on'
sequence:
- service: notify.ios_tony
data:
title: '{{ title }}'
message: '{{ message }}'
- conditions:
- condition: template
value_template: '{{ who == "tina"}}'
- condition: state
entity_id: input_boolean.text_notify_tina
state: 'on'
sequence:
- service: notify.ios_tina
data:
title: '{{ title }}'
message: '{{ message }}'
- conditions:
- condition: template
value_template: '{{ who == "kallen"}}'
- condition: state
entity_id: input_boolean.text_notify_kallen
state: 'on'
sequence:
- service: notify.ios_kallen
data:
title: '{{ title }}'
message: '{{ message }}'
- conditions:
- condition: template
value_template: '{{ who == "parents"}}'
- condition: state
entity_id: input_boolean.text_notify_parents
state: 'on'
sequence:
- service: notify.ios_parents
data:
title: '{{ title }}'
message: '{{ message }}'
- conditions:
- condition: template
value_template: '{{ who == "nerds"}}'
- condition: state
entity_id: input_boolean.text_notify_nerds
state: 'on'
sequence:
- service: notify.ios_nerds
data:
title: '{{ title }}'
message: '{{ message }}'
default:
- service: notify.all_ios
data:
title: '{{ title }}'
message: '{{ message }}'
text_alert:
sequence:
- service: >
{% if who == 'tony' %}
notify.ios_tony
{% elif who == 'tina' %}
notify.ios_tina
{% elif who == 'kallen' %}
notify.ios_kallen
{% elif who == 'parents' %}
notify.ios_parents
{% elif who == 'nerds' %}
notify.ios_nerds
{% else %}
notify.all_ios
{% endif %}
data:
title: '{{ title }}'
message: '{{ message }}'
# data:
# attachment:
# url: '{{ url }}'
# content-type: '{{ content_type }}'
# hide-thumbnail: false
# push:
# sound: '{{ ios_sound }}'
# badge: 0
# category: '{{ ios_category }}'
# entity_id: '{{ camera_entity }}'
text_alert_image:
sequence:
- service: >
{% if who == 'tony' %}
notify.ios_tony
{% elif who == 'tina' %}
notify.ios_tina
{% elif who == 'kallen' %}
notify.ios_kallen
{% elif who == 'parents' %}
notify.ios_parents
{% elif who == 'nerds' %}
notify.ios_nerds
{% else %}
notify.all_ios
{% endif %}
data:
title: '{{ title }}'
message: '{{ message }}'
data:
attachment:
url: '{{ url }}'
content-type: '{{ content_type }}'
hide-thumbnail: false
# push:
# sound: '{{ ios_sound }}'
# badge: 0
# category: '{{ ios_category }}'
# entity_id: '{{ camera_entity }}'
###############################################################################
# Alert Notify
# Conditions:
# => Vacation mode should be off
# Services:
# => Audible
# => iOS
###############################################################################
alert_notify:
sequence:
- condition: state
entity_id: input_boolean.vacation_mode
state: 'off'
- service: tts.google_say
data_template:
entity_id: media_player.living_room_tv
message: >
{{ message }}
jarvis_alert:
sequence:
- service: mqtt.publish
data_template:
topic: 'house/polly/lastmsg'
payload: 'This message is from {{ now().strftime("%-I") }}:{{ now().strftime("%M") }} {{ now().strftime("%p") }}. {{ message | striptags | truncate(220)}}'
retain: true
- service: media_player.turn_on
data_template:
entity_id: >
{% if who in ['kallen_bedroom','media_player.kallen_bedroom_speaker'] %}
media_player.kallen_bedroom_speaker
{% else %}
{% if states.input_boolean.audible_notifications.state == 'on' %}
media_player.living_room_tv
{% else %}
media_player.living_room_tv
{% endif %}
{% endif %}
- service: media_player.volume_set
data_template:
entity_id: >
{% if who in ['kallen_bedroom','media_player.kallen_bedroom_speaker'] %}
media_player.kallen_bedroom_speaker
{% else %}
{% if states.input_boolean.audible_notifications.state == 'on' %}
media_player.living_room_tv
{% else %}
media_player.living_room_tv
{% endif %}
{% endif %}
volume_level: >
{% elif who == 'skylar_bedroom' %}
.50
{% else %}
{% if states.input_boolean.audible_notifications.state == 'on' %}
.75
{% else %}
.99
{% endif %}
{% endif %}
- service: tts.amazon_polly_say
data_template:
entity_id: >
{% if who in ['kallen_bedroom','media_player.kallen_bedroom_speaker'] %}
media_player.kallen_bedroom_speaker
{% else %}
{% if states.input_boolean.audible_notifications.state == 'on' %}
media_player.living_room_tv
{% else %}
media_player.living_room_tv
{% endif %}
{% endif %}
message: >-
<speak>
{{ message }}
</speak>
cache: true
###############################################################################
# Voice Notify
# Conditions:
# => Only Announce when people are home.
# => Only Announce when Audible Notifications are on
###############################################################################
speech_engine:
sequence:
- service: mqtt.publish
data_template:
topic: 'house/polly/lastmsg'
payload: 'This message is from {{ now().strftime("%-I") }}:{{ now().strftime("%M") }} {{ now().strftime("%p") }}. {{ message | striptags | truncate(220)}}'
retain: true
- service: mqtt.publish
data_template:
topic: 'house/polly/lastloc'
payload: '{{ who }}'
retain: true
- condition: state
entity_id: input_boolean.audible_notifications
state: 'on'
- condition: state
entity_id: group.family
state: 'home'
- condition: state
entity_id: input_boolean.vacation_mode
state: 'off'
- service: >
{% if voice == 'nabu' %}
script.nabu_voice
{% elif who in ['living_room_echo_dot', 'media_player.living_room_echo_dot','living_room'] %}
{% set who = 'living_room_echo_dot' %}
script.alexa_voice
{% elif who in ['kallen_bedroom','media_player.kallen_bedroom_speaker'] %}
{% set who = 'kallen_bedroom_speaker' %}
script.jarvis_voice
{% elif who in ['master_bedroom','master_bedroom_echo_dot'] %}
{% set who = 'master_bedroom_echo_dot' %}
script.alexa_voice
{% elif who in ['basement','basement_echo_dot'] %}
{% set who = 'basement_echo_dot' %}
script.alexa_voice
{% else %}
{% set who = 'living_room_echo_dot' %}
script.alexa_voice
{% endif %}
data:
who: '{{ who }}'
message: >
{{ message }}
# Use this Simplfied Script by calling in automaint or script like:
# service: script.speech_engine_simplified
# data:
# who: media_player.ha_blue
# #who: “{{ states(sensor.room_presence) }}”
# #who: notify.kitchen_echo
# message: something to say
#
#
speech_engine_simplified:
sequence:
- condition: state
entity_id: input_boolean.audible_notifications
state: 'on'
- condition: state
entity_id: group.family
state: 'home'
- condition: state
entity_id: input_boolean.vacation_mode
state: 'off'
- service: tts.amazon_polly_say
data_template:
entity_id: >-
{{ who }}
message: >-
<speak>
<break time="1s"/>
{{ message }}
</speak>
cache: true
- service: >-
{{ who }}
data:
message: >
{{ message }}
data:
type: tts
- service: tts.cloud_say
data_template:
entity_id: >-
{{ who }}
message: >-
{{ message }}
cache: true
language: en-GB
options:
gender: male
# Called wheh notification needs to play on echos
alexa_voice:
sequence:
- service: media_player.turn_on
data_template:
entity_id: >
{% if who in ['living_room_echo_dot', 'media_player.living_room_echo_dot','living_room'] %}
notify.alexa_media_living_room_echo_dot
{% elif who in ['master_bedroom','master_bedroom_echo_dot'] %}
notify.alexa_media_master_bedroom_echo_dot
{% elif who in ['basement','basement_echo_dot'] %}
notify.alexa_media_basement_echo_dot
{% else %}
notify.alexa_media_living_room_echo_dot
{% endif %}
- service: media_player.volume_set
data_template:
entity_id: >
{% if who in ['living_room_echo_dot', 'media_player.living_room_echo_dot','living_room'] %}
notify.alexa_media_living_room_echo_dot
{% elif who in ['master_bedroom','master_bedroom_echo_dot'] %}
notify.alexa_media_master_bedroom_echo_dot
{% elif who in ['basement','basement_echo_dot'] %}
notify.alexa_media_basement_echo_dot
{% else %}
notify.alexa_media_living_room_echo_dot
{% endif %}
volume_level: >
{% if is_state('input_boolean.audible_notifications.state','on') %}
.6
{% else %}
.4
{% endif %}
- service: >
{% if who in ['living_room_echo_dot', 'media_player.living_room_echo_dot','living_room'] %}
notify.alexa_media_living_room_echo_dot
{% elif who in ['master_bedroom','master_bedroom_echo_dot'] %}
notify.alexa_media_master_bedroom_echo_dot
{% elif who in ['basement','basement_echo_dot'] %}
notify.alexa_media_basement_echo_dot
{% else %}
notify.alexa_media_living_room_echo_dot
{% endif %}
data:
message: >
{{ message }}
data:
type: tts
# Default audible notifications. Notifcations play on the google devices.
jarvis_voice:
sequence:
- service: media_player.turn_on
data_template:
entity_id: >
{% if who in ['kallen_bedroom','media_player.kallen_bedroom_speaker'] %}
media_player.kallen_bedroom_speaker
{% else %}
{% if states.input_boolean.audible_notifications.state == 'on' %}
media_player.living_room_tv
{% else %}
media_player.living_room_tv
{% endif %}
{% endif %}
- service: media_player.volume_set
data_template:
entity_id: >
{% if who in ['kallen_bedroom','media_player.kallen_bedroom_speaker'] %}
media_player.kallen_bedroom_speaker
{% else %}
{% if states.input_boolean.audible_notifications.state == 'on' %}
media_player.living_room_tv
{% else %}
media_player.living_room_tv
{% endif %}
{% endif %}
volume_level: >
{% if states.input_boolean.audible_notifications.state == 'on' %}
{% if who == 'kallen_bedroom_speaker' %}
{{ states('input_number.tts_volume') | float }}
{% else %}
{{ states('input_number.tts_volume') | float }}
{% endif %}
{% else %}
{{ states('input_number.tts_low_volume') | float }}
{% endif %}
- service: tts.amazon_polly_say
data_template:
entity_id: >
{% if who in ['kallen_bedroom','media_player.kallen_bedroom_speaker'] %}
media_player.kallen_bedroom_speaker
{% else %}
{% if states.input_boolean.audible_notifications.state == 'on' %}
media_player.living_room_tv
{% else %}
media_player.living_room_tv
{% endif %}
{% endif %}
message: >-
<speak>
<break time="1s"/>
{{ message }}
</speak>
cache: true
nabu_voice:
sequence:
- service: media_player.turn_on
data_template:
entity_id: >
{% if who in ['kallen_bedroom','media_player.kallen_bedroom_speaker'] %}
media_player.kallen_bedroom_speaker
{% else %}
{% if states.input_boolean.audible_notifications.state == 'on' %}
media_player.living_room_tv
{% else %}
media_player.living_room_tv
{% endif %}
{% endif %}
- service: media_player.volume_set
data_template:
entity_id: >
{% if who in ['kallen_bedroom','media_player.kallen_bedroom_speaker'] %}
media_player.kallen_bedroom_speaker
{% else %}
{% if states.input_boolean.audible_notifications.state == 'on' %}
media_player.living_room_tv
{% else %}
media_player.living_room_tv
{% endif %}
{% endif %}
volume_level: >
{% if states.input_boolean.audible_notifications.state == 'on' %}
.7
{% else %}
.3
{% endif %}
- service: tts.cloud_say
data_template:
entity_id: >
{% if who in ['kallen_bedroom','media_player.kallen_bedroom_speaker'] %}
media_player.kallen_bedroom_speaker
{% else %}
{% if states.input_boolean.audible_notifications.state == 'on' %}
media_player.living_room_tv
{% else %}
media_player.living_room_tv
{% endif %}
{% endif %}
message: >-
{{ message }}
cache: true
language: en-GB
options:
gender: male
# dim_main_volume:
# sequence:
# - condition: state
# entity_id: 'media_player.ha_blue'
# state: 'playing'
# - service: input_number.set_value
# data_template:
# entity_id: input_number.old_volume
# value: >
# {{ states.media_player.ha_blue.attributes.volume_level }}
# - service: media_player.volume_set
# data_template:
# entity_id: media_player.ha_blue
# volume_level: .2
# raise_main_volume:
# sequence:
# - condition: state
# entity_id: 'media_player.ha_blue'
# state: 'playing'
# - service: media_player.volume_set
# data_template:
# entity_id: media_player.ha_blue
# volume_level: >
# {{ states.input_number.old_volume.state }}