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_disarm、domain: alarm_control_panel,说明它归属于alarm_control_panel域,在 UI 中对应的中文动作名为Alarm control panel: Disarm alarm。
在 UI 中配置解除报警动作
如果你偏好可视化搭建自动化,无需编写任何 YAML。根据文档中的操作指引(对应 actions/ui_header.md),配置步骤如下:
- 进入设置 > 自动化与场景(Settings > Automations & scenes);
- 打开一个现有的自动化或脚本,或点击创建新建一个;
- 若是新建自动化,先在When(触发条件)部分添加触发条件;脚本则不需要触发条件,它们由其他自动化或手动调用触发;
- 在Then do(执行)部分点击添加动作(Add action);
- 在按目标(By target)下选择要控制的报警面板所在区域(如门厅、玄关),也可以按楼层、设备、具体实体或标签(label)来选择目标;
- 在动作列表中选择解除报警(Disarm alarm);
- 可选:如果报警面板要求输入密码,在代码(Code)字段中填写;
- 点击保存。
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触发时间触发器; - 条件:限定为周一至周五(
mon到fri),周末不会解除; - 动作:携带密码解除家庭报警。
相关动作:解除之后再布防
解除报警后如需重新布防,文档明确推荐使用同域的两个动作(见 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_away或alarm_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),仅供参考