Template Alarm Control Panel¶
The template
alarm control panel platform allows you to turn your binary sensors into a state machine
managed alarm control panel.
# Example configuration entry
alarm_control_panel:
- platform: template
name: Alarm Panel
codes:
- "1234"
binary_sensors:
- input: zone_1
- input: zone_2
bypass_armed_home: true
Configuration variables:¶
codes (Optional, list of string): A list of codes for disarming the alarm, if requires_code_to_arm set to true then for arming the alarm too.
requires_code_to_arm (Optional, boolean): Code required for arming the alarm, codes must be provided.
arming_away_time (Optional, Time): The exit delay before the alarm is armed to away mode. Defaults to
0s
.arming_home_time (Optional, Time): The exit delay before the alarm is armed to home mode.
arming_night_time (Optional, Time): The exit delay before the alarm is armed to night mode.
pending_time (Optional, Time): The entry delay before the alarm is triggered. Defaults to
0s
.trigger_time (Optional, Time): The time after a triggered alarm before resetting to previous state if the sensors are cleared/off. Defaults to
0s
.binary_sensors (Optional, list): A list of binary sensors the panel should use. Each consists of:
input (Required, string): The id of the binary sensor component
bypass_armed_home (Optional, boolean): This binary sensor will not trigger the alarm when in
armed_home
state.bypass_armed_night (Optional, boolean): This binary sensor will not trigger the alarm when in
armed_night
state.
restore_mode (Optional, enum):
ALWAYS_DISARMED
(Default): Always start indisarmed
state.RESTORE_DEFAULT_DISARMED
: Restore state or default todisarmed
state if no saved state was found.
All other options from Alarm Control Panel
Note
If binary_sensors
is ommited then you’re expected to trigger the alarm using
pending Action or triggered Action.
State Flow:¶
The alarm starts in
DISARMED
stateWhen the
arm_...
method is invoked
arming_..._time
is greater than 0 the state isARMING
arming_..._time
is 0 or after the delay the state isARMED_...
When the alarm is tripped by a sensor state changing to
on
oralarm_control_panel_pending_action
invoked
pending_time
greater than 0 the state isPENDING
pending_time
is 0 or after thepending_time
delay the state isTRIGGERED
If
trigger_time
greater than 0 and no sensors areon
aftertrigger_time
delay the state returns toARM_...
Note
Although the interface supports all arming modes only away
and home
have been implemented for now.
arm_...
is for either arm_away
or arm_home
arming_..._time
is for either arming_away_time
or arming_home_time
ARMED_...
is for either ARMED_AWAY
or ARMED_HOME
Example:¶
alarm_control_panel:
platform: template
name: Alarm Panel
id: acp1
codes:
- "1234"
requires_code_to_arm: true
arming_away_time: 30s
arming_home_time: 5s
pending_time: 30s
trigger_time: 5min
binary_sensors:
- input: zone_1
- input: zone_2
bypass_armed_home: true
- input: ha_test
on_state:
then:
- lambda: !lambda |-
ESP_LOGD("TEST", "State change %s", alarm_control_panel_state_to_string(id(acp1)->get_state()));
on_triggered:
then:
- switch.turn_on: siren
on_cleared:
then:
- switch.turn_off: siren
binary_sensor:
- platform: gpio
id: zone_1
name: Zone 1
device_class: door
pin:
number: D1
mode: INPUT_PULLUP
inverted: True
- platform: gpio
id: zone_2
name: Zone 2
device_class: motion
pin:
number: D2
mode: INPUT_PULLUP
inverted: True
- platform: homeassistant
id: ha_test
name: Zone 3
entity_id: input_boolean.test_switch
switch:
- platform: gpio
id: siren
name: Siren
icon: mdi:alarm-bell
pin: D7