报警控制面板组件
基本报警控制面板配置
Section titled “基本报警控制面板配置”alarm_control_panel: - platform: ... name: 报警面板配置变量:
- id (可选, 字符串):手动指定用于代码生成的 ID。id 和 name 中至少必须指定一个。
- name (可选, 字符串):报警控制面板的名称。id 和 name 中至少必须指定一个。
NOTE
如果您为设备设置了 friendly_name,并且希望开关使用该名称,可以设置 name: None。
-
on_state (可选, 动作):报警状态改变时执行的自动化。请参阅
on_state触发器。 -
on_arming (可选, 动作):报警状态变为
arming时执行的自动化。请参阅on_arming触发器。 -
on_pending (可选, 动作):报警状态变为
pending时执行的自动化。请参阅on_pending触发器。 -
on_armed_home (可选, 动作):报警状态变为
armed_home时执行的自动化。请参阅on_armed_home触发器。 -
on_armed_night (可选, 动作):报警状态变为
armed_night时执行的自动化。请参阅on_armed_night触发器。 -
on_armed_away (可选, 动作):报警状态变为
armed_away时执行的自动化。请参阅on_armed_away触发器。 -
on_triggered (可选, 动作):报警触发时执行的自动化。请参阅
on_triggered触发器。 -
on_disarmed (可选, 动作):报警状态变为
disarmed时执行的自动化。请参阅on_disarmed触发器。 -
on_cleared (可选, 动作):报警清除时执行的自动化。请参阅
on_cleared触发器。 -
on_ready (可选, 动作):所有区域传感器的逻辑”与”状态改变时执行的自动化。请参阅
on_ready触发器。 -
on_chime (可选, 动作):当区域在配置中标记为蜂鸣,并且从关闭变为打开时执行的自动化。请参阅
on_chime触发器。 -
如果启用了 Webserver 并选择了版本 3,则来自 Webserver 组件的所有其他选项。请参阅 Webserver 版本 3。
-
如果启用了 MQTT,则来自 MQTT 组件 的所有其他选项。
on_state 触发器
Section titled “on_state 触发器”每次报警状态改变时都会触发此触发器。
alarm_control_panel: # ... on_state: then: - logger.log: "报警面板状态已改变!"on_pending 触发器
Section titled “on_pending 触发器”当报警变为待定状态时触发此触发器。
alarm_control_panel: # ... on_pending: then: - logger.log: "报警待定!"on_arming 触发器
Section titled “on_arming 触发器”当报警变为布防状态时触发此触发器。
alarm_control_panel: # ... on_arming: then: - logger.log: "报警布防中!"on_armed_home 触发器
Section titled “on_armed_home 触发器”当报警变为在家布防状态时触发此触发器。
alarm_control_panel: # ... on_armed_home: then: - logger.log: "报警在家布防!"on_armed_night 触发器
Section titled “on_armed_night 触发器”当报警变为夜间布防状态时触发此触发器。
alarm_control_panel: # ... on_armed_night: then: - logger.log: "报警夜间布防!"on_armed_away 触发器
Section titled “on_armed_away 触发器”当报警变为离家布防状态时触发此触发器。
alarm_control_panel: # ... on_armed_away: then: - logger.log: "报警离家布防!"on_triggered 触发器
Section titled “on_triggered 触发器”当报警变为触发状态时触发此触发器。
alarm_control_panel: # ... on_triggered: then: - logger.log: "报警已触发!"on_cleared 触发器
Section titled “on_cleared 触发器”当报警从触发状态恢复到之前的布防状态或撤防状态时触发此触发器。
alarm_control_panel: # ... on_cleared: then: - logger.log: "报警已清除!"on_disarmed 触发器
Section titled “on_disarmed 触发器”当报警变为撤防状态时触发此触发器。
alarm_control_panel: # ... on_disarmed: then: - logger.log: "报警已撤防!"on_ready 触发器
Section titled “on_ready 触发器”当所有报警传感器的逻辑”与”状态改变时触发此触发器。这对于实现”报警就绪”LED 非常有用。一旦调用此触发器,您可以通过在 lambda 块中调用 get_all_sensors_ready() 来获取就绪状态。
alarm_control_panel: # ... on_disarmed: then: - lambda: !lambda |- ESP_LOGI("AlarmPanel", "传感器就绪状态变为: %s", ((id(acp1).get_all_sensors_ready()) ? (const char *) "True" : (const char *) "False"));on_chime 触发器
Section titled “on_chime 触发器”当标记为蜂鸣的区域传感器从关闭变为打开时触发此触发器。这对于在区域打开时实现键盘蜂鸣非常有用。
alarm_control_panel: # ... on_chime: then: - logger.log: "报警蜂鸣!"alarm_control_panel.arm_away 动作
Section titled “alarm_control_panel.arm_away 动作”此动作以离家模式布防报警。当 requires_code_to_arm 为 true 时需要 code。
on_...: then: - alarm_control_panel.arm_away: id: acp1 code: "1234"alarm_control_panel.arm_home 动作
Section titled “alarm_control_panel.arm_home 动作”此动作以在家模式布防报警。当 requires_code_to_arm 为 true 时需要 code。
on_...: then: - alarm_control_panel.arm_home: id: acp1 code: "1234"alarm_control_panel.arm_night 动作
Section titled “alarm_control_panel.arm_night 动作”此动作以夜间模式布防报警。当 requires_code_to_arm 为 true 时需要 code。
on_...: then: - alarm_control_panel.arm_night: id: acp1 code: "1234"alarm_control_panel.disarm 动作
Section titled “alarm_control_panel.disarm 动作”此动作撤防报警。当 codes 不为空时需要 code。
on_...: then: - alarm_control_panel.disarm: id: acp1 code: "1234"alarm_control_panel.pending 动作
Section titled “alarm_control_panel.pending 动作”此动作将报警置于待定状态(pending_time 之后触发之前的状态)。
on_...: then: - alarm_control_panel.pending: acp1alarm_control_panel.triggered 动作
Section titled “alarm_control_panel.triggered 动作”此动作将报警置于触发状态。
on_...: then: - alarm_control_panel.triggered: acp1alarm_control_panel.is_armed 条件
Section titled “alarm_control_panel.is_armed 条件”此 条件 检查报警控制面板是否已布防。
on_...: if: condition: alarm_control_panel.is_armed: acp1lambda 调用
Section titled “lambda 调用”从 lambda 中,您可以调用以下方法:
arm_away(code)arm_home(code)arm_night(code)disarm(code)get_all_sensors_ready()
id(acp1).arm_away();id(acp1).arm_home();id(acp1).arm_night();id(acp1).disarm(std::string("1234"));bool all_sensors_ready = id(acp1).get_all_sensors_ready();