Template Alarm Control Panel
template alarm control panel 平台允许你将 binary sensor(二进制传感器)转换为
由状态机管理的 alarm control panel。
# 示例配置条目alarm_control_panel: - platform: template name: Alarm Panel codes: - "1234" binary_sensors: - input: zone_1 - input: zone_2 bypass_armed_home: true-
codes (可选, string 列表):用于撤防报警的代码列表。如果 requires_code_to_arm 设置为 true, 这些代码也将用于布防。
-
requires_code_to_arm (可选, boolean):布防报警是否需要密码,codes 必须提供。
-
arming_away_time (可选, Time):报警进入 away 模式布防前的出门延迟时间。 默认为
0s。 -
arming_home_time (可选, Time):报警进入 home 模式布防前的出门延迟时间。
-
arming_night_time (可选, Time):报警进入 night 模式布防前的出门延迟时间。
-
pending_time (可选, Time):报警触发前的进门延迟时间。默认为
0s。 -
trigger_time (可选, Time):触发报警后,如果传感器已清除/关闭,则等待 该时间后重置回之前状态。默认为
0s。 -
binary_sensors (可选, list):面板应使用的二进制传感器列表。每个条目包含:
- input (必填, string):二进制传感器组件的 id
- bypass_armed_home (可选, boolean):此二进制传感器在
armed_home状态下不会触发报警。 - bypass_armed_night (可选, boolean):此二进制传感器在
armed_night状态下不会触发报警。 - bypass_auto (可选, boolean):如果在布防时此二进制传感器仍处于打开状态,则自动将其旁路。
- trigger_mode (可选, string):设置此传感器的触发模式。可选值为
delayed、instant、instant_always或delayed_follower。(未指定时默认为delayed) - chime (可选, boolean):设置为
true时,当传感器从 关闭变为打开时会调用 chime 回调。(未指定时默认为false)
-
restore_mode (可选, enum):
ALWAYS_DISARMED(默认):始终以disarmed状态启动。RESTORE_DEFAULT_DISARMED:恢复之前状态,如果没有保存的状态则默认为disarmed。
-
包含 Alarm Control Panel 的所有其他选项
NOTE
如果省略 binary_sensors,则预期使用
pending 操作 或 triggered 操作 来触发报警。
每个二进制传感器”区域”支持 4 种触发模式:
- delayed
- instant
- instant_always
- delayed_follower
delayed 触发模式通常用于需要进入区域才能访问报警键盘或其他布防/撤防方式的外部门窗。如果报警面板已布防,且设置为 delayed 的区域”发生故障”(即区域状态
为 true),报警状态将从 armed 变为 pending。在 pending 状态期间,
用户在预设时间内可以撤防报警,否则报警将变为 triggered 状态。如果未指定,这是默认触发模式。
instant 触发模式通常用于外部区域(如窗户和玻璃破碎探测器)。如果报警
控制面板已布防,此类型区域的故障将直接使报警从 armed 状态变为
triggered 状态。
instant_always 触发模式通常用于防篡改输入。无论报警
控制面板是否已布防,发生故障时报警都会直接进入 triggered 状态。
delayed_follower 触发模式通常用于室内被动红外(PIR)或微波传感器。当 delayed_follower 区域发生故障时,会发生以下两种情况之一:
-
当报警面板处于 armed 状态时,具有
delayed_follower设置的区域发生故障将使报警 控制面板直接进入triggered状态。 -
当报警面板处于 pending 状态时,具有
delayed_follower设置的区域发生故障将保持 在pending状态。
delayed_follower 触发模式在有人通过未受保护的窗户或门进入室内时提供更好的保护。如果在主走廊设有 PIR 传感器,当有人
以异常方式进入室内时,它将立即触发报警面板。同样,如果有人通过设置为 delayed
触发模式的门进入室内,然后触发了 PIR,报警将保持在 pending 状态,直到用户撤防报警,
或者 pending 计时器到期。
-
报警以
DISARMED状态启动 -
当调用
arm_...方法时arming_..._time大于 0 时,状态为ARMINGarming_..._time为 0 或延迟结束后,状态为ARMED_...
-
当报警被传感器状态变为
on或alarm_control_panel_pending_action调用所触发时 -
如果
trigger_mode设置为delayed:pending_time大于 0 时,状态为PENDINGpending_time为 0 或延迟结束后,状态为TRIGGERED
-
如果
trigger_mode设置为instant或instant_always:- 状态直接设置为
TRIGGERED
- 状态直接设置为
-
如果
trigger_mode设置为interior_follower:- 如果当前状态为
ARMED_...,状态将设置为TRIGGERED - 如果当前状态为
PENDING,则不会发生任何变化,状态保持在PENDING。
- 如果当前状态为
-
如果
trigger_time大于 0 且在trigger_time延迟后没有传感器处于on状态, 则状态恢复到ARM_...
NOTE
虽然接口支持所有布防模式,但目前仅实现了 away、home 和 night。
arm_... 表示 arm_away 或 arm_home
arming_..._time 表示 arming_away_time、arming_home_time 或 arming_night_time
ARMED_... 表示 ARMED_AWAY、ARMED_HOME 或 ARMED_NIGHT
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 chime: true trigger_mode: delayed - input: zone_2 chime: true trigger_mode: delayed - input: zone_3 bypass_armed_home: true trigger_mode: delayed_follower - input: zone_3_tamper trigger_mode: instant_always - input: zone_4 trigger_mode: instant - 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 on_ready: then: - lambda: !lambda |- ESP_LOGD("TEST", "Sensor ready change to: %s", (id(acp1).get_all_sensors_ready())) ? (const char *) "True" : (const char *) "False"); on_chime: then: - lambda: !lambda |- ESP_LOGD("TEST", "Zone with chime mode set opened");
binary_sensor: - platform: gpio id: zone_1 name: Zone 1 device_class: door pin: number: GPIOXX mode: INPUT_PULLUP inverted: True - platform: gpio id: zone_2 name: Zone 2 device_class: door pin: number: GPIOXX mode: INPUT_PULLUP inverted: True - platform: gpio id: zone_3 name: Zone 3 device_class: motion pin: number: GPIOXX mode: INPUT_PULLUP inverted: True - platform: gpio id: zone_3_tamper name: Zone 3 Tamper device_class: tamper pin: number: GPIOXX mode: INPUT_PULLUP inverted: True - platform: gpio id: zone_4 name: Zone 4 device_class: door pin: number: GPIOXX mode: INPUT_PULLUP inverted: True - platform: homeassistant id: ha_test name: HA Test entity_id: input_boolean.test_switch
switch: - platform: gpio id: siren name: Siren icon: mdi:alarm-bell pin: GPIOXX