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