312 lines
12 KiB
YAML
312 lines
12 KiB
YAML
|
###############################################################################
|
||
|
# @author : Mahasri Kalavala
|
||
|
# @date : 11/22/2017
|
||
|
# @package : Emergency Stuff
|
||
|
# @description : When $hit hapens, this package gets called!
|
||
|
#
|
||
|
# In case of emergency - turn on the emergency_mode (input boolean)
|
||
|
# lights, crazy sounds and alarms repeatedly until someone turns off
|
||
|
# input boolean and/or Home Security System is turned OFF.
|
||
|
#
|
||
|
# All automations that alert during emerency situations, will turn on
|
||
|
# input boolean emergency_mode and notify using standard notification
|
||
|
#
|
||
|
# My Home TTS/voice notifications will not work when music is being played
|
||
|
# The automations will stop MPD media player ( just to makesure), so that
|
||
|
# the TTS notifications will be played in case if someone plays music and
|
||
|
# forgot to turn if off.
|
||
|
###############################################################################
|
||
|
|
||
|
homeassistant:
|
||
|
customize:
|
||
|
script.emergency_script:
|
||
|
friendly_name: Emergency Script
|
||
|
hidden: true
|
||
|
script.emergency_script_loop:
|
||
|
friendly_name: Emergency Script Loop
|
||
|
hidden: true
|
||
|
script.emergency_all_lights_switches_on:
|
||
|
friendly_name: All Lights & Switches ON
|
||
|
script.all_indoor_lights_off:
|
||
|
friendly_name: All Indoor Lights OFF
|
||
|
|
||
|
input_boolean:
|
||
|
emergency_mode:
|
||
|
name: Emergency Mode
|
||
|
initial: 'off'
|
||
|
|
||
|
###############################################################################
|
||
|
# _ _ _
|
||
|
# /\ | | | | (_)
|
||
|
# / \ _ _| |_ ___ _ __ ___ __ _| |_ _ ___ _ __ ___
|
||
|
# / /\ \| | | | __/ _ \| '_ ` _ \ / _` | __| |/ _ \| '_ \/ __|
|
||
|
# / ____ \ |_| | || (_) | | | | | | (_| | |_| | (_) | | | \__ \
|
||
|
# /_/ \_\__,_|\__\___/|_| |_| |_|\__,_|\__|_|\___/|_| |_|___/
|
||
|
#
|
||
|
###############################################################################
|
||
|
|
||
|
automation:
|
||
|
|
||
|
###############################################################################
|
||
|
# When emergency mode is OFF, Keep the lights ON
|
||
|
###############################################################################
|
||
|
- alias: Emergency Mode Disabled
|
||
|
initial_state: true
|
||
|
trigger:
|
||
|
platform: state
|
||
|
entity_id: input_boolean.emergency_mode
|
||
|
from: 'on'
|
||
|
to: 'off'
|
||
|
action:
|
||
|
- delay: '00:00:05'
|
||
|
- service: script.voice_notify
|
||
|
data_template:
|
||
|
message: "Attention! Emergency mode is now deactivated!"
|
||
|
- service: script.notify_me
|
||
|
data_template:
|
||
|
message: "Emergency mode is now deactivated!"
|
||
|
|
||
|
# Water Leak detected - initiate the emergency process
|
||
|
###############################################################################
|
||
|
- alias: Water Leak Detected
|
||
|
initial_state: true
|
||
|
trigger:
|
||
|
- platform: state
|
||
|
entity_id: sensor.aeotec_water_sensor_flood
|
||
|
from: '0'
|
||
|
to: '2'
|
||
|
action:
|
||
|
- service: input_boolean.turn_on
|
||
|
entity_id: input_boolean.emergency_mode
|
||
|
- service: script.emergency_all_lights_switches_on
|
||
|
- service: script.notify_me
|
||
|
data_template:
|
||
|
message: "EMERGENCY! Water Leak Detected in the Basement!"
|
||
|
- service: script.emergency_script
|
||
|
data:
|
||
|
volume_level: 25
|
||
|
alarm_code: 2
|
||
|
message: "ALERT! Water Leak Detected in the Basement!"
|
||
|
|
||
|
# # Carbon Monoxide Detected in the house
|
||
|
# ###############################################################################
|
||
|
# - alias: CO Detected
|
||
|
# initial_state: true
|
||
|
# trigger:
|
||
|
# - platform: state
|
||
|
# entity_id: sensor.audio_detector_carbon_monoxide
|
||
|
# from: '0'
|
||
|
# condition:
|
||
|
# - condition: template
|
||
|
# value_template: "{{ trigger.to_state.state != '0' }}"
|
||
|
# action:
|
||
|
# - service: script.voice_notify
|
||
|
# data_template:
|
||
|
# message: "Attention!: CARBON MONOXIDE DETECTED! GET THE HELL OUT OF THE HOUSE!"
|
||
|
# - service: script.notify_me
|
||
|
# data_template:
|
||
|
# message: "Attention!: CARBON MONOXIDE DETECTED!. GET THE HELL OUT OF THE HOUSE!"
|
||
|
# - service: input_boolean.turn_on
|
||
|
# entity_id: input_boolean.emergency_mode
|
||
|
# - service: media_player.media_stop
|
||
|
# entity_id: media_player.mpd
|
||
|
# - service: script.emergency_script
|
||
|
# data:
|
||
|
# volume_level: 99
|
||
|
# alarm_code: 2
|
||
|
# message: "Attention! Cabon Monoxide detected. Leave the house immediately!"
|
||
|
|
||
|
# # Smoke Detected in the house
|
||
|
# ###############################################################################
|
||
|
# - alias: Smoke Detected
|
||
|
# initial_state: true
|
||
|
# trigger:
|
||
|
# - platform: state
|
||
|
# entity_id: sensor.audio_detector_smoke
|
||
|
# from: '0'
|
||
|
# condition:
|
||
|
# - condition: template
|
||
|
# value_template: "{{ trigger.to_state.state != '0' }}"
|
||
|
# action:
|
||
|
# - service: script.voice_notify
|
||
|
# data_template:
|
||
|
# message: "Attention!: SMOKE DETECTED! CALL 911!"
|
||
|
# - service: script.notify_me
|
||
|
# data_template:
|
||
|
# message: "Attention!: SMOKE DETECTED!. CALL 911!"
|
||
|
# - service: input_boolean.turn_on
|
||
|
# entity_id: input_boolean.emergency_mode
|
||
|
# - service: media_player.media_stop
|
||
|
# entity_id: media_player.mpd
|
||
|
# - service: script.emergency_script
|
||
|
# data:
|
||
|
# volume_level: 99
|
||
|
# alarm_code: 2
|
||
|
# message: "Smoke Detected. Please get out of the home and call 911 immediately!"
|
||
|
|
||
|
# Disable Emergency Mode upon Disabling Home Security System
|
||
|
###############################################################################
|
||
|
- alias: Disable Emergency Mode Upon Disabling Home Security
|
||
|
initial_state: true
|
||
|
trigger:
|
||
|
platform: state
|
||
|
entity_id: alarm_control_panel.simplisafe
|
||
|
to: 'disarmed'
|
||
|
condition:
|
||
|
- condition: template
|
||
|
value_template: '{{ states.input_boolean.emergency_mode.state == "on" }}'
|
||
|
action:
|
||
|
- service: input_boolean.turn_off
|
||
|
entity_id: input_boolean.emergency_mode
|
||
|
|
||
|
- alias: Home Security Away Motion Deteted Inside
|
||
|
initial_state: true
|
||
|
trigger:
|
||
|
platform: state
|
||
|
entity_id:
|
||
|
- binary_sensor.back_door_sensor_sensor
|
||
|
- binary_sensor.aeotec_zw120_door_window_sensor_gen5_sensor
|
||
|
- binary_sensor.basement_door_sensor_sensor
|
||
|
- binary_sensor.garage_door_sensor_sensor
|
||
|
- binary_sensor.front_room_multi_sensor_sensor
|
||
|
- binary_sensor.tv_multi_sensor_sensor
|
||
|
- binary_sensor.kitchen_motion_sensor_sensor
|
||
|
- binary_sensor.stairs_motion_sensor_sensor
|
||
|
- binary_sensor.upstairs_multi_sensor_sensor
|
||
|
- binary_sensor.two_car_garage_door_tilt_sensor_sensor
|
||
|
- binary_sensor.single_car_garage_door_tilt_sensor_sensor
|
||
|
- binary_sensor.motion_sensor_158d0001a662fe
|
||
|
- binary_sensor.motion_sensor_158d0001a25041
|
||
|
- binary_sensor.motion_sensor_158d00016db6d2
|
||
|
- binary_sensor.motion_sensor_158d00016c2d0e
|
||
|
from: 'off'
|
||
|
to: 'on'
|
||
|
condition:
|
||
|
- condition: template
|
||
|
value_template: "{{ trigger.from_state }}"
|
||
|
- condition: template
|
||
|
value_template: >
|
||
|
{% set state = states.alarm_control_panel.simplisafe.state %}
|
||
|
{% if state != "" and state != "unknown" and state == "armed_away" %}
|
||
|
true
|
||
|
{% else %}
|
||
|
false
|
||
|
{% endif %}
|
||
|
- condition: template
|
||
|
value_template: >
|
||
|
{% set suresh = states.device_tracker.suresh_suresh.state %}
|
||
|
{% set mallika = states.device_tracker.mallika_mallika.state %}
|
||
|
{% set srinika = states.device_tracker.srinika_srinika.state %}
|
||
|
{% set hasika = states.device_tracker.hasika_hasika.state %}
|
||
|
{% if suresh != "home" and mallika != "home" and srinika != "home" and hasika != "home" %}
|
||
|
True
|
||
|
{% else %}
|
||
|
False
|
||
|
{% endif %}
|
||
|
action:
|
||
|
- service: input_boolean.turn_on
|
||
|
entity_id: input_boolean.emergency_mode
|
||
|
- service: script.emergency_all_lights_switches_on
|
||
|
- service: script.notify_me
|
||
|
data_template:
|
||
|
message: "MOTION DETECTED '{{ trigger.to_state.attributes.friendly_name | upper }}',
|
||
|
BUT NO ONE IS HOME. CALL FOR EMERGENCY!"
|
||
|
- service: notify.ios_devices
|
||
|
data_template:
|
||
|
title: >
|
||
|
{{ trigger.to_state.attributes.friendly_name }}
|
||
|
message: >
|
||
|
Attention: "MOTION DETECTED '{{ trigger.to_state.attributes.friendly_name | upper }}',
|
||
|
BUT NO ONE IS HOME. CALL FOR EMERGENCY!"
|
||
|
- service: script.emergency_script
|
||
|
data:
|
||
|
volume_level: 99
|
||
|
alarm_code: 1
|
||
|
message: "Police are on the way!...Police are on the way!...Police are on the way!...Police are on the way!...Police are on the way!"
|
||
|
|
||
|
script:
|
||
|
|
||
|
# Main Emergency Script
|
||
|
###############################################################################
|
||
|
emergency_script:
|
||
|
sequence:
|
||
|
- condition: template
|
||
|
value_template: '{{ states.input_boolean.emergency_mode.state | lower == "on" }}'
|
||
|
- service: script.voice_notify
|
||
|
data_template:
|
||
|
message: '{{ message }}'
|
||
|
greeting: 'no'
|
||
|
- service: xiaomi_aqara.play_ringtone
|
||
|
data_template:
|
||
|
ringtone_id: '{{ alarm_code }}'
|
||
|
ringtone_vol: '{{ volume_level }}'
|
||
|
- delay: '00:00:01'
|
||
|
- service: script.emergency_script_loop
|
||
|
data_template:
|
||
|
message: '{{ message }}'
|
||
|
alarm_code: '{{ alarm_code }}'
|
||
|
volume_level: '{{ volume_level }}'
|
||
|
|
||
|
# This script checks for the emergency_mode input_boolean and continue to
|
||
|
# stay in emergency mode based on the input_boolean value
|
||
|
###############################################################################
|
||
|
emergency_script_loop:
|
||
|
sequence:
|
||
|
- condition: template
|
||
|
value_template: '{{ states.input_boolean.emergency_mode.state == "on" }}'
|
||
|
- delay: '00:00:02'
|
||
|
- service: script.emergency_script
|
||
|
data_template:
|
||
|
message: '{{ message }}'
|
||
|
alarm_code: '{{ alarm_code }}'
|
||
|
volume_level: '{{ volume_level }}'
|
||
|
|
||
|
# Turns ALL lights & Switches ON (Lights in RED where possible)
|
||
|
###############################################################################
|
||
|
emergency_all_lights_switches_on:
|
||
|
sequence:
|
||
|
- service: script.xiaomi_red
|
||
|
- service: script.ifttt_leeo_color_change
|
||
|
data_template:
|
||
|
value1: "#FF0000"
|
||
|
- service: light.turn_on
|
||
|
entity_id: light.family_room
|
||
|
data:
|
||
|
transition: 0
|
||
|
brightness: 255
|
||
|
rgb_color: [255,0,0]
|
||
|
- service: light.turn_on
|
||
|
entity_id: light.master_bedroom
|
||
|
data:
|
||
|
transition: 0
|
||
|
brightness: 255
|
||
|
rgb_color: [255,0,0]
|
||
|
- service: switch.turn_on
|
||
|
entity_id:
|
||
|
- switch.basement_left
|
||
|
- switch.basement_right
|
||
|
- switch.garage
|
||
|
- switch.guest_bedroom
|
||
|
- switch.prayer_room
|
||
|
- switch.kids_bed_accent
|
||
|
- switch.kids_bedroom
|
||
|
- switch.office_room
|
||
|
- switch.smart_outlet_1
|
||
|
- switch.kitchen
|
||
|
- switch.zwave_smart_switch_switch
|
||
|
- switch.rf_switch_five
|
||
|
- switch.rf_switch_four
|
||
|
- switch.rf_switch_one
|
||
|
- switch.rf_switch_three
|
||
|
- switch.rf_switch_two
|
||
|
- switch.wemobackyardlightswitch
|
||
|
- switch.frontyard_light
|
||
|
- switch.downstairs_bathroom_fragrance_outlet
|
||
|
- switch.downstairs_fragrance
|
||
|
- switch.upstairs_fragrance
|
||
|
- switch.kitchen_siren_switch
|
||
|
- switch.kitchen_siren_switch_2
|
||
|
- switch.kitchen_siren_switch_3
|
||
|
- switch.kitchen_siren_switch_4
|
||
|
- switch.kitchen_siren_switch_5
|
||
|
- switch.wemoswitch1
|