mysmarthome/packages/emergency.yaml

312 lines
12 KiB
YAML
Executable File

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