模板报警控制面板
template 报警控制面板平台允许您将二进制传感器转换为状态机管理的报警控制面板。
# 示例配置alarm_control_panel: - platform: template name: 报警面板 codes: - "1234" binary_sensors: - input: zone_1 - input: zone_2 bypass_armed_home: true-
codes (可选, 字符串列表):用于撤防报警的代码列表,如果 requires_code_to_arm 设置为 true,则也用于布防报警。
-
requires_code_to_arm (可选, 布尔值):布防报警需要代码,必须提供 codes。
-
arming_away_time (可选, 时间):报警布防到离家模式之前的离开延迟。默认为
0s。 -
arming_home_time (可选, 时间):报警布防到在家模式之前的离开延迟。
-
arming_night_time (可选, 时间):报警布防到夜间模式之前的离开延迟。
-
pending_time (可选, 时间):报警触发前的进入延迟。默认为
0s。 -
trigger_time (可选, 时间):触发报警后,如果传感器清除/关闭,重置到先前状态的时间。默认为
0s。 -
binary_sensors (可选, 列表):面板应使用的二进制传感器列表。每项包含:
- input (必需, 字符串):二进制传感器组件的 id
- bypass_armed_home (可选, 布尔值):在
armed_home状态下,此二进制传感器不会触发报警。 - bypass_armed_night (可选, 布尔值):在
armed_night状态下,此二进制传感器不会触发报警。 - bypass_auto (可选, 布尔值):如果在布防时此二进制传感器处于打开/打开状态,将自动旁路。
- trigger_mode (可选, 字符串):设置此传感器的触发模式。
delayed、instant、instant_always或delayed_follower之一。(如果未指定,delayed为默认值) - chime (可选, 布尔值):设置为
true时,每当传感器从关闭变为打开时,将调用蜂鸣回调。(如果未指定,false为默认值)
-
restore_mode (可选, 枚举):
ALWAYS_DISARMED(默认):始终以disarmed状态启动。RESTORE_DEFAULT_DISARMED:恢复状态,如果未找到保存的状态则默认为disarmed状态。
-
来自 报警控制面板 的所有其他选项
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 区域故障时会发生以下两种情况之一:
-
当报警面板处于布防状态时,指定了
delayed_follower的区域故障将导致报警控制面板直接进入triggered状态。 -
当报警面板处于待定状态时,指定了
delayed_follower的区域故障将保持在pending状态。
delayed_follower 触发模式提供更好的保护,如果有人通过未受保护的窗户或门进入场所。如果有 PIR 守卫主走廊,它将导致报警面板立即触发,因为有人以异常方式进入场所。同样,如果有人通过设置为 delayed 触发模式的门进入场所,然后触发 PIR,报警将保持在 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 或pending_time延迟后状态为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: 报警面板 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", "状态改变 %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", "传感器就绪状态变为: %s", (id(acp1).get_all_sensors_ready())) ? (const char *) "True" : (const char *) "False"); on_chime: then: - lambda: !lambda |- ESP_LOGD("TEST", "设置了蜂鸣模式的区域已打开");
binary_sensor: - platform: gpio id: zone_1 name: 区域 1 device_class: door pin: number: GPIOXX mode: INPUT_PULLUP inverted: True - platform: gpio id: zone_2 name: 区域 2 device_class: door pin: number: GPIOXX mode: INPUT_PULLUP inverted: True - platform: gpio id: zone_3 name: 区域 3 device_class: motion pin: number: GPIOXX mode: INPUT_PULLUP inverted: True - platform: gpio id: zone_3_tamper name: 区域 3 防拆 device_class: tamper pin: number: GPIOXX mode: INPUT_PULLUP inverted: True - platform: gpio id: zone_4 name: 区域 4 device_class: door pin: number: GPIOXX mode: INPUT_PULLUP inverted: True - platform: homeassistant id: ha_test name: HA 测试 entity_id: input_boolean.test_switch
switch: - platform: gpio id: siren name: 警报器 icon: mdi:alarm-bell pin: GPIOXX