sensors/security.yaml
#
# Door status
#
# Returns a comma-separated list of doors currently open.
#
# @see /automations/notifications/door_notify.yaml
#
- platform: template
sensors:
door_location:
friendly_name: "Door Open Location"
icon_template: &door-location-icon >-
{% if is_state('group.door_sensors', 'on') %}
mdi:door-open
{% else %}
mdi:door-closed
{% endif %}
value_template: >-
{% set entities = [
states.binary_sensor.front_door_sensor,
states.input_boolean.door_test,
]
%}
{% set value = entities | selectattr('state', 'equalto', 'on')
| map(attribute='name')
| join(',') %}
{% set value = value | replace(" Multisensor", "") %}
{% set value = value | replace(" Sensor", null) %}
{% set value = value | replace(",", ", ") %}
{{ value }}
door_status:
friendly_name_template: >-
{% if is_state('group.door_sensors', 'on') %}
Door Open
{% else %}
External Doors
{% endif %}
icon_template: *door-location-icon
value_template: >-
{% set value = states('sensor.door_location') %}
{% if value != '' %}
{{ value }}
{% else %}
Closed
{% endif %}
#
# Leak detection status
#
# Returns a comma-separated list of locations where leaks are detected.
#
# @see /automations/notifications/leak_notify.yaml
#
- platform: template
sensors:
leak_location:
friendly_name: "Leak Location"
icon_template: &leak-location-icon >-
{% if is_state('group.leak_sensors', 'on') %}
mdi:pipe-leak
{% else %}
mdi:pipe
{% endif %}
value_template: >-
{% set entities = [
states.binary_sensor.kitchen_leak_sensor,
states.binary_sensor.washroom_leak_sensor,
states.input_boolean.leak_test,
]
%}
{% set value = entities | selectattr('state', 'equalto', 'on')
| map(attribute='name')
| join(',') %}
{% set value = value | replace(" Sensor", null) %}
{% set value = value | replace(",", ", ") %}
{{ value }}
leak_status:
friendly_name_template: >-
{% if is_state('group.leak_sensors', 'on') %}
Leak Detected
{% else %}
Leaks
{% endif %}
icon_template: *leak-location-icon
value_template: >-
{% set value = states('sensor.leak_location') %}
{% if value != '' %}
{{ value }}
{% else %}
Clear
{% endif %}
#
# Motion detection status
#
# Returns a comma-separated list of locations where motion is detected.
#
# @see https://community.home-assistant.io/t/jinja2-expert-help-needed/10183/26
#
- platform: template
sensors:
motion_location:
friendly_name: "Motion Location"
icon_template: &motion_location-icon >-
{% if is_state('group.motion_sensors', 'on') %}
mdi:run
{% else %}
mdi:radar
{% endif %}
value_template: >-
{% set entities = [
states.binary_sensor.bedroom_multisensor,
states.binary_sensor.front_door_sensor,
states.binary_sensor.kiosk_motion_auto,
states.binary_sensor.lounge_multisensor,
states.binary_sensor.washroom_multisensor,
states.input_boolean.motion_test,
]
%}
{% set value = entities | selectattr('state', 'equalto', 'on')
| map(attribute='name')
| join(',') %}
{% set value = value | replace(" Multisensor", null) %}
{% set value = value | replace(" Sensor", null) %}
{% set value = value | replace(" Motion", null) %}
{% set value = value | replace(",", ", ") %}
{{ value }}
motion_status:
friendly_name_template: >-
{% if is_state('group.motion_sensors', 'on') %}
Motion Detected
{% else %}
Motion
{% endif %}
icon_template: *motion_location-icon
value_template: >-
{% set value = states('sensor.motion_location') %}
{% if value != '' %}
{{ value }}
{% else %}
Clear
{% endif %}
#
# Smoke detection status
#
# @see /automations/notifications/siren_notify.yaml
# @see /misc/binary_sensors.yaml
#
# @link https://discoverecolink.com/product/firefighter-wireless-smoke-co-audio-sensor/
#
- platform: template
sensors:
smoke_location:
friendly_name: "Smoke Location"
icon_template: "mdi:smoke-detector"
value_template: >-
{% set entities = [
states.binary_sensor.siren_monitor_smoke,
states.input_boolean.smoke_test,
]
%}
{% set value = entities | selectattr('state', 'equalto', 'on')
| map(attribute='name')
| join(',') %}
{% set value = value | replace(" Multisensor", null) %}
{% set value = value | replace(" Sensor", null) %}
{% set value = value | replace(",", ", ") %}
{{ value }}
smoke_status:
friendly_name_template: >-
{% if is_state('group.smoke_sensors', 'on') %}
Smoke detected
{% else %}
Smoke
{% endif %}
icon_template: >-
{% if is_state('group.smoke_sensors', 'on') %}
mdi:alarm-bell
{% else %}
mdi:smoke-detector
{% endif %}
value_template: >-
{% set value = states('sensor.smoke_location') %}
{% if value != '' %}
{{ value }}
{% else %}
Clear
{% endif %}
#
# Tampering status
#
# Returns a comma-separated list of perimeter devices being tampered with.
#
# @see /automations/modes/tamper_start.yaml
# @see /inputs/variables.yaml
#
- platform: template
sensors:
tamper_status:
friendly_name_template: >-
{% if is_state('input_boolean.tamper_detected', 'on') %}
Tampering detected
{% else %}
Tampering
{% endif %}
icon_template: >-
{% if is_state('input_boolean.tamper_detected', 'on') %}
mdi:home-alert
{% else %}
mdi:shield-home
{% endif %}
value_template: >-
{% set dummy = is_state('input_boolean.tamper_detected', 'on') %}
{% if not is_state('variable.tamper_detected', 'False') %}
{{ states('variable.tamper_detected') }}
{% else %}
Clear
{% endif %}