Home Assistant 中 Agent DVR 摄像头告警开关:agent_dvr.enable_alerts 动作完全指南
2026/9/15 22:38:36 网站建设 项目流程

Home Assistant 中 Agent DVR 摄像头告警开关:agent_dvr.enable_alerts 动作完全指南

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

导读

本文聚焦 Home Assistant 官方文档中agent_dvr.enable_alerts动作(Action,旧称服务 Service)的完整用法。通过本文,你将掌握:如何在 UI 可视化界面与 YAML 两种方式下为 Agent DVR 摄像头开启告警事件、target(目标)机制的精确配置方法、与agent_dvr.disable_alerts动作的组合应用,以及如何将告警开关接入自动化实现按需启停。文中所有操作均基于当前仓库 agent_dvr.enable_alerts 官方动作文档 与 Agent DVR 集成文档 编写。

动作语义:为 Agent DVR 摄像头开启告警事件

agent_dvr.enable_alerts是 Home Assistant 中 Agent DVR 集成提供的专用动作,其核心语义是:为指定的 Agent DVR 摄像头启用告警事件。当告警开启后,Agent DVR 服务端会为该摄像头持续生成告警事件(alert events),典型场景是检测到运动(motion)时触发告警,这些告警事件可被 Home Assistant 感知并用于驱动自动化。

从文档数据来看,该动作属于agent_dvr域,在 源文档 frontmatter 中声明其action名称为agent_dvr.enable_alertsdomainagent_dvr,并声明了关联动作(related_actions)为agent_dvr.disable_alerts——两者是一对开/关操作,在实际自动化中通常成对出现。

前置条件:Agent DVR 集成的安装与配置

使用该动作前,必须先完成 Agent DVR 集成的配置。根据 Agent DVR 集成文档:

  • Agent DVR 是面向 Windows 10、Mac 与 Linux 的免费软件 DVR 解决方案,支持以服务(service)或控制台应用(console application)方式运行,可管理海量第三方摄像头,并内置高级运动检测能力(含 DeepStack 物体识别集成)。
  • 在 Home Assistant 中通过「设置 → 设备与服务 → 添加集成」以 IP 地址与端口添加,例如http://192.168.1.3:8090/
  • 若 Agent DVR 服务端开启了Protect API,可将用户名密码写入 URL,例如http://username:password@192.168.1.3:8090
  • 版本要求:必须使用 Agent DVRv2.6.1.0 及以上版本。
  • 该集成属于本地轮询(Local Polling)类型的 Hub 集成,自 Home Assistant0.110版本起引入,提供alarm_control_panel(报警控制面板)与camera(摄像头)两类平台;告警开关动作面向的就是其中的 camera 实体。

方式一:在 UI 中通过自动化或脚本开启告警

如果你习惯在界面上可视化构建自动化,Home Assistant 会逐步引导你完成整个动作配置,无需编写任何 YAML。根据官方动作文档的操作步骤:

  1. 进入设置(Settings)→ 自动化与场景(Automations & scenes)
  2. 打开一个现有的自动化或脚本;也可以选择创建自动化(Create automation)→ 创建新自动化(Create new automation)
  3. 若在创建新自动化,先在当(When)部分添加一个触发器;脚本(script)则不需要触发器,脚本在别处被调用时才运行。
  4. 然后做(Then do)部分,选择添加动作(Add action)
  5. 选择要控制的对象:在按目标(By target)下(详见下文 Targets 目标机制)选择你的 Agent DVR 摄像头。
  6. 在该目标展示的动作列表中,选择启用告警(Enable alerts)
  7. 点击保存(Save)

该动作在 UI 中没有任何额外可配置选项(文档原文:"This action has no additional options in the UI"),因此 UI 配置的核心就是「选对目标实体」。

方式二:在 YAML 中调用动作

对于习惯直接编写 YAML 或希望精确控制底层行为的用户,可在自动化或脚本中以agent_dvr.enable_alerts名称调用该动作。官方给出的基础 YAML 示例如下(文档原文):

action: agent_dvr.enable_alerts target: entity_id: camera.living_room

在自动化中完整写法(动作部分)为:

automation: - alias: "Enable alerts for living room camera" trigger: # 示例触发器:家庭成员回家 - platform: state entity_id: person.owner to: "home" action: - action: agent_dvr.enable_alerts target: entity_id: camera.living_room

YAML 字段说明:

字段类型必填说明
actionstring固定为agent_dvr.enable_alerts
targetobject动作目标,至少指定一个实体、设备、区域、楼层或标签
target.entity_idstring/string[]二选一摄像头实体 ID,如camera.living_room,可传多个实体组成列表

该动作必须有 target——目标就是动作的作用对象,Home Assistant 会对目标背后匹配的每一个camera域实体执行该动作(详见 actions/targets.md 模板)。

Targets 目标机制详解

根据目标机制说明,agent_dvr.enable_alerts支持五种目标类型,你可以将动作指向单个实体、设备、区域、楼层或标签,Home Assistant 会对目标背后所有匹配的 camera 实体执行动作:

  • 实体(Entity):某一个具体的camera实体,例如camera.living_room
  • 设备(Device):属于某设备的所有camera实体。
  • 区域(Area):某个房间/区域内的所有camera实体。
  • 楼层(Floor):某一楼层上的所有camera实体。
  • 标签(Label):共享某一标签的所有camera实体。

你还可以在同一动作中混合不同目标类型——例如同时指定一个具体实体加一个区域,动作会一次性作用于二者覆盖的全部匹配实体。这意味着「一键开启全屋 NVR 摄像头告警」可以通过一个区域或标签目标轻松实现:

action: agent_dvr.enable_alerts target: area_id: living_room # 对整个客厅区域的 camera 实体生效

立即试跑:无需写 YAML 的验证方式

按照官方 Try it yourself 指引,你可以在不写一行 YAML 的情况下实测该动作:进入设置 → 工具 → 动作(Settings > Tools > Actions,即开发者工具的服务页面),搜索agent_dvr.enable_alerts,填写目标字段,点击执行动作(Perform action),即可在真实实体上观察告警是否被开启。

配套动作与实战场景:结合 disable_alerts 按需启停

agent_dvr.enable_alerts的关联动作为 agent_dvr.disable_alerts,其语义是关闭指定 Agent DVR 摄像头的告警事件生成,两者互为反向操作,YAML 结构与 target 要求完全一致:

action: agent_dvr.disable_alerts target: entity_id: camera.living_room

典型实战场景——「家中无人时开启告警、有人时关闭」:

automation: - alias: "Arm Agent DVR alerts when everyone leaves" trigger: - platform: state entity_id: person.owner, person.spouse to: "not_home" for: "00:05:00" action: - action: agent_dvr.enable_alerts target: area_id: all_cameras # 通过标签/区域批量开启 - alias: "Disarm Agent DVR alerts when someone arrives" trigger: - platform: state entity_id: person.owner to: "home" action: - action: agent_dvr.disable_alerts target: area_id: all_cameras # 通过标签/区域批量关闭

补充:Agent DVR 集成还支持标准的 摄像头动作,例如开关摄像头、切换运动检测等;而告警开关动作专门控制「Agent DVR 服务端是否生成告警事件」,两者用途不同,可根据需求组合使用。

排查与求助

  • 动作执行无反应时,请先确认 Agent DVR 服务端版本不低于v2.6.1.0(见集成文档的重要提示),并确认集成的连接地址(含 Protect API 凭据)配置正确。
  • 确认目标选择正确:agent_dvr.enable_alerts只对camera域实体生效,若目标下没有匹配的 camera 实体,动作不会产生效果。
  • 若仍无法解决,官方建议(stuck 模板)是带上「你调用的动作名称 + 预期行为」前往 Home Assistant 社区论坛、Discord 或 Reddit 社区求助;也可以借助 AI 助手用自然语言描述需求来定位正确动作。

小结

agent_dvr.enable_alerts是 Home Assistant 与 Agent DVR 联动中控制摄像头告警的核心开关:在 UI 中它零配置、选对目标即可;在 YAML 中它以action + target结构调用,目标支持实体、设备、区域、楼层、标签五类,可与agent_dvr.disable_alerts组合实现「离家布防、回家撤防」的告警按需启停。配置好 Agent DVR 集成(v2.6.1.0+)后,配合 motion 告警事件,即可构建完整的本地视频告警自动化链路。

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

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

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

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

立即咨询