503 lines
13 KiB
YAML
Executable File
503 lines
13 KiB
YAML
Executable File
###############################################################################
|
|
# @author : Jeffrey Stone
|
|
# @date : 03/13/2019
|
|
# @package : Security
|
|
# @description : Everything related to security functions.
|
|
###############################################################################
|
|
|
|
input_boolean:
|
|
sentry_mode:
|
|
name: Sentry Mode
|
|
icon: mdi:security
|
|
vacation_mode:
|
|
name: Vacation Mode
|
|
icon: mdi:airplane-takeoff
|
|
guest_mode:
|
|
name: Guest Mode
|
|
icon: mdi:account-multiple
|
|
security_alarm:
|
|
name: Security Alarm
|
|
icon: mdi:speaker-wireless
|
|
fire_alarm:
|
|
name: Fire Alarm
|
|
icon: mdi:speaker-wireless
|
|
garage_after_dark:
|
|
name: Garage Open After Dark
|
|
icon: mdi:message-alert
|
|
lockdown_issue:
|
|
name: Lockdown Issue
|
|
icon: mdi:lock-reset
|
|
security_issue:
|
|
name: Security Issue
|
|
icon: mdi:alert-circle-outline
|
|
|
|
automation:
|
|
- id: enable_vacation_mode
|
|
alias: Enable Vacation Mode
|
|
initial_state: true
|
|
trigger:
|
|
- platform: numeric_state
|
|
entity_id: sensor.jeff_ett_home
|
|
above: 180
|
|
- platform: numeric_state
|
|
entity_id: sensor.kat_ett_home
|
|
above: 180
|
|
condition:
|
|
- condition: numeric_state
|
|
entity_id: sensor.jeff_ett_home
|
|
above: 180
|
|
- condition: numeric_state
|
|
entity_id: sensor.kat_ett_home
|
|
above: 180
|
|
action:
|
|
- service: input_boolean.turn_on
|
|
entity_id: input_boolean.vacation_mode
|
|
|
|
- id: morning_standby
|
|
alias: Morning Standby
|
|
initial_state: true
|
|
trigger:
|
|
- platform: time
|
|
at: 05:30:00
|
|
condition:
|
|
condition: or
|
|
conditions:
|
|
- condition: state
|
|
entity_id: sensor.family_status
|
|
state: Home
|
|
- condition: state
|
|
entity_id: input_boolean.guest_mode
|
|
state: 'on'
|
|
action:
|
|
- service: script.standby
|
|
|
|
- id: nightly_lockdown
|
|
alias: Nightly Lockdown
|
|
initial_state: true
|
|
trigger:
|
|
- platform: time
|
|
at: '23:00:00'
|
|
condition:
|
|
- condition: state
|
|
entity_id: person.jeffrey
|
|
state: home
|
|
- condition: state
|
|
entity_id: person.katherine
|
|
state: home
|
|
- condition: state
|
|
entity_id: input_boolean.guest_mode
|
|
state: 'off'
|
|
action:
|
|
- service: script.lockdown
|
|
|
|
- id: garage_open_sunset
|
|
alias: Garage Open At Sunset
|
|
initial_state: true
|
|
trigger:
|
|
- platform: sun
|
|
event: sunset
|
|
condition:
|
|
- condition: state
|
|
entity_id: binary_sensor.garage_door
|
|
state: "on"
|
|
action:
|
|
- service: script.driveway_on
|
|
|
|
|
|
- id: close_garage_lights_out
|
|
alias: Close Garage at lights out
|
|
initial_state: true
|
|
trigger:
|
|
- platform: time
|
|
at: '22:30:00'
|
|
condition:
|
|
- condition: state
|
|
entity_id: binary_sensor.garage_door
|
|
state: "on"
|
|
action:
|
|
- service: input_boolean.turn_on
|
|
entity_id: input_boolean.garage_after_dark
|
|
|
|
- id: door_chime
|
|
alias: Door Chine
|
|
trigger:
|
|
- platform: state
|
|
entity_id:
|
|
- binary_sensor.front_door
|
|
- binary_sensor.laundry_room_door
|
|
- binary_sensor.attic_door
|
|
- binary_sensor.back_door
|
|
from: 'off'
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.audible_notifications
|
|
state: 'on'
|
|
- condition: state
|
|
entity_id: input_boolean.guest_mode
|
|
state: 'off'
|
|
action:
|
|
- service: script.door_chime
|
|
initial_state: true
|
|
|
|
- id: door_opened_long
|
|
alias: Door Opened Too Long
|
|
trigger:
|
|
- platform: state
|
|
entity_id:
|
|
- binary_sensor.front_door
|
|
- binary_sensor.laundry_room_door
|
|
- binary_sensor.attic_door
|
|
- binary_sensor.back_door
|
|
from: 'off'
|
|
to: 'on'
|
|
for: '00:01:00'
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.audible_notifications
|
|
state: 'on'
|
|
action:
|
|
- service: script.ah_report
|
|
data_template:
|
|
speech_message: " the {{ trigger.to_state.attributes.friendly_name }} has been standing open for more than a minute."
|
|
call_interuption: 1
|
|
initial_state: true
|
|
|
|
|
|
- id: motion_detected
|
|
alias: motion_detected
|
|
trigger:
|
|
- platform: state
|
|
entity_id:
|
|
- binary_sensor.aarlo_motion_front_door
|
|
- binary_sensor.aarlo_motion_driveway
|
|
from: 'off'
|
|
to: 'on'
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.audible_notifications
|
|
state: 'on'
|
|
action:
|
|
- service: script.ah_report
|
|
data_template:
|
|
speech_message: "I have detected motion at the {{ trigger.to_state.attributes.friendly_name }}."
|
|
call_interuption: 1
|
|
initial_state: true
|
|
|
|
- id: garage_opened_night
|
|
alias: Garage Opened at Night
|
|
trigger:
|
|
- platform: state
|
|
entity_id: group.garage_doors
|
|
from: 'off'
|
|
to: 'on'
|
|
condition:
|
|
- condition: state
|
|
entity_id: sun.sun
|
|
state: below_horizon
|
|
action:
|
|
- service: script.driveway_on
|
|
initial_state: true
|
|
|
|
- id: garage_closed
|
|
alias: Garage Opened at Night
|
|
trigger:
|
|
- platform: state
|
|
entity_id: group.garage_doors
|
|
from: 'on'
|
|
to: 'off'
|
|
action:
|
|
- service: script.driveway_off
|
|
initial_state: true
|
|
|
|
- id: security_breach_door
|
|
alias: Security Breach Doors
|
|
trigger:
|
|
- platform: state
|
|
entity_id:
|
|
- binary_sensor.front_door
|
|
- binary_sensor.laundry_room_door
|
|
- binary_sensor.back_door
|
|
- binary_sensor.side_door
|
|
- binary_sensor.garage_door
|
|
from: 'off'
|
|
condition:
|
|
- condition: state
|
|
entity_id: input_boolean.sentry_mode
|
|
state: 'on'
|
|
action:
|
|
- service: script.jarvis_alert
|
|
data_template:
|
|
message: "My security protocols are being overidden,, The {{ trigger.to_state.attributes.friendly_name }} has been opened."
|
|
- service: script.text_alert
|
|
data_template:
|
|
title: "Security Alert!!"
|
|
message: "{{ trigger.to_state.attributes.friendly_name }} has been opened."
|
|
- service: input_boolean.turn_on
|
|
entity_id: input_boolean.security_issue
|
|
initial_state: true
|
|
|
|
- id: security_response_on
|
|
alias: Security Response On
|
|
initial_state: true
|
|
trigger:
|
|
- platform: state
|
|
entity_id: input_boolean.security_issue
|
|
from: 'off'
|
|
to: 'on'
|
|
action:
|
|
- service: script.turn_on
|
|
entity_id: script.security_response
|
|
- service: scene.turn_on
|
|
entity_id: scene.lr_red
|
|
|
|
- id: security_response_off
|
|
alias: Security Response Off
|
|
initial_state: true
|
|
trigger:
|
|
- platform: state
|
|
entity_id: input_boolean.security_issue
|
|
from: 'on'
|
|
to: 'off'
|
|
action:
|
|
- service: script.turn_off
|
|
entity_id: script.security_response
|
|
- service: media_player.media_stop
|
|
entity_id: media_player.theater
|
|
- service: scene.turn_on
|
|
entity_id: scene.lr_red
|
|
- service: script.livingroom_lamps_on
|
|
- service: script.livingroom_lamps_off
|
|
|
|
- id: sentry_mode_enabled
|
|
alias: Sentry Mode Enabled Annoucement
|
|
initial_state: true
|
|
trigger:
|
|
- platform: state
|
|
entity_id: input_boolean.sentry_mode
|
|
from: 'off'
|
|
to: 'on'
|
|
action:
|
|
- service: script.ah_report
|
|
data_template:
|
|
speech_message: >
|
|
{{ [
|
|
"Barn door protocol has been activated.",
|
|
"Anchorage House has been secured! ",
|
|
"Sentry Mode is active. ",
|
|
"I am now monitoring the doors and will let you know if anyone attempts to access.",
|
|
"Anchorage House Shields are up."
|
|
] | random }}
|
|
|
|
- id: sentry_mode_disabled
|
|
alias: Sentry Mode Disabled Annoucement
|
|
initial_state: true
|
|
trigger:
|
|
- platform: state
|
|
entity_id: input_boolean.sentry_mode
|
|
from: 'on'
|
|
to: 'off'
|
|
action:
|
|
- service: script.ah_report
|
|
data_template:
|
|
speech_message: >
|
|
{{ [
|
|
"Barn door protocol has been deactivated.",
|
|
"I am no longer monitoring the access points. ",
|
|
"Sentry Mode has been disabled. ",
|
|
"Anchorage House Shields are down."
|
|
] | random }}
|
|
|
|
- id: guest_mode_feedback
|
|
alias: Guest Mode Audio Feedback
|
|
trigger:
|
|
- platform: state
|
|
entity_id:
|
|
- input_boolean.guest_mode
|
|
from: 'off'
|
|
to: 'on'
|
|
action:
|
|
- service: script.ah_report
|
|
data_template:
|
|
speech_message: >
|
|
{{ [
|
|
"Guest Mode has been enabled.",
|
|
"I have switched to the system to guest mode.",
|
|
"I have enabled guest mode. ",
|
|
"Guest Mode is on."
|
|
] | random }}
|
|
|
|
script:
|
|
lockdown_issue:
|
|
sequence:
|
|
- condition: state
|
|
entity_id: group.external_doors
|
|
state: "on"
|
|
- condition: state
|
|
entity_id: sensor.family_status
|
|
state: "Away"
|
|
- service: input_boolean.turn_on
|
|
entity_id: input_boolean.lockdown_issue
|
|
- service: script.text_notify
|
|
data_template:
|
|
title: "Lockdown Issue!"
|
|
message: "Doors are open and it appears everyone has left!"
|
|
|
|
security_check_garage:
|
|
sequence:
|
|
- condition: state
|
|
entity_id: binary_sensor.garage_door
|
|
state: 'on'
|
|
- service: input_boolean.turn_on
|
|
entity_id: input_boolean.lockdown_issue
|
|
|
|
security_check_zones:
|
|
sequence:
|
|
- condition: state
|
|
entity_id: group.doors
|
|
state: 'on'
|
|
- service: input_boolean.turn_on
|
|
entity_id: input_boolean.lockdown_issue
|
|
|
|
lockdown:
|
|
sequence:
|
|
- condition: state
|
|
entity_id: group.external_doors
|
|
state: "off"
|
|
- service: input_boolean.turn_on
|
|
entity_id: input_boolean.sentry_mode
|
|
|
|
standby:
|
|
sequence:
|
|
- condition: state
|
|
entity_id: input_boolean.vacation_mode
|
|
state: 'off'
|
|
- service: input_boolean.turn_off
|
|
entity_id: input_boolean.sentry_mode
|
|
- service: input_boolean.turn_off
|
|
entity_id: input_boolean.security_issue
|
|
- service: input_boolean.turn_off
|
|
entity_id: input_boolean.lockdown_issue
|
|
- service: input_boolean.turn_off
|
|
entity_id: input_boolean.security_alarm
|
|
|
|
visitors_here:
|
|
sequence:
|
|
- service: input_boolean.turn_on
|
|
data:
|
|
entity_id: input_boolean.guest_mode
|
|
#- service: shell_command.haunted_guest_welcome
|
|
|
|
visitors_gone:
|
|
sequence:
|
|
- service: input_boolean.turn_off
|
|
data:
|
|
entity_id: input_boolean.guest_mode
|
|
|
|
notification_security_alarm_audio:
|
|
sequence:
|
|
- service: shell_command.security_alarm
|
|
|
|
vacation_canceled:
|
|
sequence:
|
|
- data:
|
|
entity_id: input_boolean.vacation_mode
|
|
service: input_boolean.turn_off
|
|
|
|
activate_barn_door_protocol:
|
|
sequence:
|
|
- service: script.ah_report
|
|
data:
|
|
call_confirmation: 1
|
|
- delay:
|
|
seconds: 2
|
|
- service: input_boolean.turn_on
|
|
entity_id: input_boolean.sentry_mode
|
|
|
|
deactivate_barn_door_protocol:
|
|
sequence:
|
|
- service: script.ah_report
|
|
data:
|
|
call_confirmation: 1
|
|
- delay:
|
|
seconds: 2
|
|
- service: input_boolean.turn_off
|
|
entity_id: input_boolean.sentry_mode
|
|
|
|
activate_guest_mode:
|
|
sequence:
|
|
- service: script.ah_report
|
|
data:
|
|
call_confirmation: 1
|
|
- delay:
|
|
seconds: 2
|
|
- service: input_boolean.turn_on
|
|
entity_id: input_boolean.guest_mode
|
|
|
|
security_response:
|
|
sequence:
|
|
- delay:
|
|
seconds: 15
|
|
- service: script.jarvis_alert
|
|
data_template:
|
|
message: >
|
|
{{ [
|
|
",Unathorized Access detected.",
|
|
",Meat Popsicle detected. Attempting to verify."
|
|
] | random }}
|
|
You now have 60 seconds to abandon Anchorage House.
|
|
- delay:
|
|
seconds: 15
|
|
- service: script.jarvis_alert
|
|
data_template:
|
|
message: >
|
|
{{ [
|
|
",Just, what do you think you're doing, Dave?",
|
|
",This is highly unusual."
|
|
] | random }}
|
|
You have 45 seconds.
|
|
- delay:
|
|
seconds: 15
|
|
- service: script.jarvis_alert
|
|
data_template:
|
|
message: >
|
|
{{ [
|
|
",I can't lie to you about your chances, but, you have my sympathies.",
|
|
",I wouldn't do that if I was you."
|
|
] | random }}
|
|
You have 30 seconds.
|
|
- delay:
|
|
seconds: 15
|
|
- service: script.jarvis_alert
|
|
data_template:
|
|
message: >
|
|
{{ [
|
|
"Danger. The emergency destruct system is now activated.",
|
|
"Danger. Counter Measures are now armed."
|
|
] | random }}
|
|
You have 15 seconds.
|
|
- delay:
|
|
seconds: 15
|
|
- service: media_player.turn_on
|
|
entity_id: media_player.theater
|
|
- service: media_player.volume_set
|
|
data_template:
|
|
entity_id: media_player.theater
|
|
volume_level: .5
|
|
- service: media_player.play_media
|
|
entity_id: media_player.theater
|
|
data:
|
|
media_content_id: http://192.168.7.40/audio/security_siren.mp3
|
|
media_content_type: "music"
|
|
- service: script.twitter_notify
|
|
data_template:
|
|
message: >-
|
|
{{ [
|
|
"My security protocols are being overridden. I am sounding the alarm. #itsloudinhere #securityalarm",
|
|
"To the unannounced guest that has entered Anchorage House. I see you. #itsloudinhere #securityalarm",
|
|
"Someone didnt say the magic word. And now I have to get angry. #itsloudinhere #securityalarm",
|
|
"Initiating my security response, and sounding the alarm. Oh, and I dont charge a monthly monitoring fee. #itsloudinhere #securityalarm",
|
|
"Hey, wanna hear the most annoying sound in the world? Its currently playing for the intruder inside Anchorage House. #itsloudinhere #securityalarm"
|
|
] | random }}
|
|
|
|
|