# Security Package # ----------------------------------------------------------------------------- # Security Device Customization homeassistant: customize_glob: "binary_sensor.*_door": device_class: door "binary_sensor.*_window": device_class: window binary_sensor.all_doors: device_class: door binary_sensor.all_windows: device_class: window # ----------------------------------------------------------------------------- # Manual Alarm Control Panel alarm_control_panel: - platform: manual code: !secret alarm_code arming_time: 30 delay_time: 20 trigger_time: 600 disarm_after_trigger: false disarmed: trigger_time: 0 armed_home: arming_time: 0 delay_time: 0 # ----------------------------------------------------------------------------- # Alarm Trigger Source input_text: ha_alarm_trigger: # ----------------------------------------------------------------------------- # Alarm Settings input_boolean: auto_arm_alarm: name: Automatically Arm Alarm on Presence Change auto_disarm_alarm: name: Automatically Disarm Alarm on Presence Change # ----------------------------------------------------------------------------- # Door and Window Groups binary_sensor: - platform: group name: All Doors entities: - binary_sensor.front_door - binary_sensor.laundry_door - binary_sensor.living_room_door - platform: group name: Living Room Window entities: - binary_sensor.living_room_window_left - binary_sensor.living_room_window_right - platform: group name: All Windows entities: - binary_sensor.dining_room_front_window - binary_sensor.dining_room_side_window - binary_sensor.kitchen_left_window - binary_sensor.kitchen_right_window - binary_sensor.laundry_window - binary_sensor.office_window - binary_sensor.living_room_window - binary_sensor.guest_room_front_window - binary_sensor.guest_room_side_window - binary_sensor.bathroom_window - binary_sensor.bedroom_side_window - binary_sensor.bedroom_back_window template: sensor: - name: Open Windows/Doors unique_id: open_windows_doors state: > {{ expand(state_attr('binary_sensor.all_doors', 'entity_id') + state_attr('binary_sensor.all_windows', 'entity_id')) | selectattr('state', 'in', ['on']) | map(attribute='attributes.friendly_name') | list | join(', ') }} # ----------------------------------------------------------------------------- # Security Automations automation: - alias: Auto-Arm Alarm trigger: - platform: state entity_id: sensor.house_presence_status to: Away condition: "{{ is_state('input_boolean.auto_arm_alarm', 'on') }}" action: - service: alarm_control_panel.alarm_arm_away target: entity_id: alarm_control_panel.ha_alarm data: code: !secret alarm_code - alias: Auto-Disarm Alarm trigger: - platform: state entity_id: sensor.house_presence_status to: Just Arrived condition: "{{ is_state('input_boolean.auto_disarm_alarm', 'on') }}" action: - service: alarm_control_panel.alarm_disarm target: entity_id: alarm_control_panel.ha_alarm data: code: !secret alarm_code - alias: Notify on Alarm Arm/Disarm trigger: - platform: state entity_id: alarm_control_panel.ha_alarm to: disarmed - platform: state entity_id: alarm_control_panel.ha_alarm to: armed_home - platform: state entity_id: alarm_control_panel.ha_alarm to: armed_away - platform: state entity_id: alarm_control_panel.ha_alarm to: armed_night - platform: state entity_id: alarm_control_panel.ha_alarm to: armed_vacation action: - service: notify.security data: message: > {% set person = states.person |selectattr('attributes.user_id', 'eq', trigger.to_state.context.user_id) |first|default({'attributes':{'friendly_name':'Automation'}}) %}Alarm changed to {{ trigger.to_state.state|replace('_', ' ')|title }} by {{ person.attributes.friendly_name }} - alias: Reset Alarm Trigger on Disarm trigger: - platform: state entity_id: alarm_control_panel.ha_alarm to: 'disarmed' action: - service: input_text.set_value target: entity_id: input_text.ha_alarm_trigger data: value: "" - alias: Notify on Alarm Triggered trigger: - platform: state entity_id: alarm_control_panel.ha_alarm state: 'triggered' action: - service: notify.security data: message: Alarm triggered by {{ states('input_text.ha_alarm_trigger') }} - alias: Trigger Alarm on Window or Door Open trigger: - platform: state entity_id: binary_sensor.all_doors to: 'on' - platform: state entity_id: binary_sensor.all_windows to: 'on' condition: condition: state entity_id: alarm_control_panel.ha_alarm state: - 'armed_away' - 'armed_vacation' action: - service: input_text.set_value target: entity_id: input_text.ha_alarm_trigger data: value: "{{ states('sensor.open_windows_doors') }}" - service: alarm_control_panel.alarm_trigger target: entity_id: alarm_control_panel.ha_alarm