Home Assistant 解除报警指南:alarm_control_panel.alarm_disarm 动作的 UI 配置、YAML 用法与自动化实战
2026/9/15 20:58:27 网站建设 项目流程

Home Assistant 解除报警指南:alarm_control_panel.alarm_disarm 动作的 UI 配置、YAML 用法与自动化实战

【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io

本指南围绕 Home Assistant 文档仓库(home-assistant.io)中 alarm_control_panel.alarm_disarm 动作文档 展开,系统讲解"解除报警"这一核心动作的完整用法。读完本文,你将掌握:如何在可视化 UI 中配置解除报警动作、如何在 YAML 中编写可复制的解除报警调用、code参数的正确用法,以及"到家自动解除""工作日早晨定时解除"等真实自动化场景的落地写法。

动作概览:解除报警做了什么

alarm_control_panel.alarm_disarm用于解除 Home Assistant 中任意报警控制面板(alarm control panel)实体的布防状态。典型场景是:你结束一天工作推开家门时,报警系统自动解除,无需在键盘上急促输入密码。

该动作有两个重要特性:

  • 通用性:适用于 Home Assistant 中的任意报警控制面板实体(entity),无论其底层接入的是何种报警系统;
  • 幂等性:如果报警已经处于解除状态,再次调用此动作不会产生任何效果。

从文档仓库的实现看,该动作的定义位于 alarm_control_panel.alarm_disarm.markdown 的 front matter 中:action: alarm_control_panel.alarm_disarmdomain: alarm_control_panel,说明它归属于alarm_control_panel域,在 UI 中对应的中文动作名为Alarm control panel: Disarm alarm

在 UI 中配置解除报警动作

如果你偏好可视化搭建自动化,无需编写任何 YAML。根据文档中的操作指引(对应 actions/ui_header.md),配置步骤如下:

  1. 进入设置 > 自动化与场景(Settings > Automations & scenes);
  2. 打开一个现有的自动化或脚本,或点击创建新建一个;
  3. 若是新建自动化,先在When(触发条件)部分添加触发条件;脚本则不需要触发条件,它们由其他自动化或手动调用触发;
  4. Then do(执行)部分点击添加动作(Add action)
  5. 按目标(By target)下选择要控制的报警面板所在区域(如门厅、玄关),也可以按楼层、设备、具体实体或标签(label)来选择目标;
  6. 在动作列表中选择解除报警(Disarm alarm)
  7. 可选:如果报警面板要求输入密码,在代码(Code)字段中填写;
  8. 点击保存

UI 中的选项

UI 模式下的可选配置项(对应 actions/ui_header.md 与文档内{% options_ui %}块)只有一项:

选项说明是否必填
代码(Code)用于解除报警的密码。并非所有报警面板都需要密码

在 YAML 中使用解除报警动作

如果你直接编写 YAML,或者想精确掌控 Home Assistant 的底层行为,可以使用 YAML 方式。YAML 方式下动作标识符为alarm_control_panel.alarm_disarm(参见 actions/yaml_header.md 中关于字段名、类型与必填项的说明)。

基础示例:无密码解除报警

action: alarm_control_panel.alarm_disarm target: entity_id: alarm_control_panel.home_alarm

该示例直接解除alarm_control_panel.home_alarm,且不携带密码。

带密码解除报警

如果报警面板配置了密码要求,需要在data段中携带code

action: alarm_control_panel.alarm_disarm target: entity_id: alarm_control_panel.home_alarm data: code: "1234"

YAML 参数参考

YAML 模式下支持的参数(对应文档内{% options_yaml %}块):

参数说明是否必填类型
code用于解除报警的密码。并非所有报警面板都需要密码string

是否需要密码,取决于报警面板本身及其配置:部分面板始终要求密码,另一些则从不要求。建议参考具体报警集成(integration)的文档确认密码策略。

目标(Targets):动作的作用对象

alarm_control_panel.alarm_disarm必须指定目标。根据 actions/targets.md 的说明,目标是动作的作用对象,你可以将动作指向单个实体、设备、区域、楼层或标签,Home Assistant 会对目标背后所有匹配的alarm_control_panel实体执行该动作:

  • 实体(Entity):某个具体的报警控制面板实体,如alarm_control_panel.home_alarm
  • 设备(Device):属于某台设备的全部报警控制面板实体;
  • 区域(Area):某个房间或区域内的全部报警控制面板实体;
  • 楼层(Floor):某个楼层上的全部报警控制面板实体;
  • 标签(Label):共享同一标签的全部报警控制面板实体。

你还可以在同一次动作中混用多种目标类型,例如同时指定一个具体实体和一个区域,让动作对两者一并生效。

实战示例:三个真实场景

以下示例均来自 alarm_control_panel.alarm_disarm.markdown 的 More examples 部分,可直接复制并适配你的环境。

场景一:带密码解除报警(适用于仪表盘快捷按钮或脚本)

在仪表盘上放置一个快捷操作,或从脚本中调用,使用 PIN 码解除家庭报警:

action: alarm_control_panel.alarm_disarm target: entity_id: alarm_control_panel.home_alarm data: code: "1234"

场景二:到家自动解除报警

当你开车驶入车道、手机上报位置为 home 时,自动解除报警,避免在警报响起前手忙脚乱地输入密码:

automation: alias: "Disarm alarm on arrival" triggers: - trigger: state entity_id: person.paulus to: home actions: - action: alarm_control_panel.alarm_disarm target: entity_id: alarm_control_panel.home_alarm data: code: "1234"

要点拆解:

  • 触发器person.paulus的状态变为home(人物实体);
  • 动作:对alarm_control_panel.home_alarm执行解除报警;
  • 数据:携带code: "1234"

场景三:工作日早晨定时解除报警

工作日早上 7 点自动解除报警,开门不再惊动警报:

automation: alias: "Disarm alarm on weekday mornings" triggers: - trigger: time at: "07:00:00" conditions: - condition: time weekday: - mon - tue - wed - thu - fri actions: - action: alarm_control_panel.alarm_disarm target: entity_id: alarm_control_panel.home_alarm data: code: "1234"

要点拆解:

  • 触发器:每日07:00:00触发时间触发器;
  • 条件:限定为周一至周五(monfri),周末不会解除;
  • 动作:携带密码解除家庭报警。

相关动作:解除之后再布防

解除报警后如需重新布防,文档明确推荐使用同域的两个动作(见 alarm_control_panel.alarm_arm_away.markdown 与 alarm_control_panel.alarm_arm_home.markdown):

  • Arm alarm away(离家布防):离家场景下全面布防;
  • Arm alarm home(居家布防):人在家中时的部分布防模式。

在 UI 中,这两个动作与 Disarm alarm 一起出现在报警控制面板的动作列表里,可组合出完整的"布防—解除—再布防"自动化闭环。

快速试用手动测试

如果你不想先写 YAML,可以通过 Home Assistant 内置的开发工具立即验证此动作。根据 actions/try_it.md 的指引:进入设置 > 工具 > 动作(Settings > Tools > Actions),搜索alarm_control_panel.alarm_disarm,填写字段后点击执行动作(Perform action),即可在不编写任何 YAML 的情况下,在实际实体上观察动作效果。

常见疑问速查

  • 该动作适用于哪些报警面板?所有 Home Assistant 中的报警控制面板实体均可使用(参见文档 Good to know 部分)。
  • 报警已解除时调用会怎样?不会产生任何效果,动作具有幂等性。
  • 何时需要提供code取决于报警面板及其配置——有的始终要求,有的从不要求,请以实际面板为准。
  • 解除后如何重新布防?使用alarm_control_panel.alarm_arm_awayalarm_control_panel.alarm_arm_home动作。

如需排查问题或交流实现方案,可参考 actions/stuck.md 中社区支持的说明,描述你调用的动作与预期行为以获取帮助。

【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询