Home Assistant 中 amcrest.disable_recording 动作详解:停止 Amcrest/Dahua 摄像头连续录像
2026/9/16 10:59:46 网站建设 项目流程

Home Assistant 中 amcrest.disable_recording 动作详解:停止 Amcrest/Dahua 摄像头连续录像

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

amcrest.disable_recording是 Home Assistant 中 Amcrest 集成 提供的一个核心动作(action),用于立即停止 Amcrest 或 Dahua 摄像头持续向自身存储介质(SD 卡/NAS 等)写入录像。本文围绕该动作的完整用法展开:既包含在自动化、脚本与开发者工具中的实际操作步骤,也结合本仓库文档源码剖析其目标选择(targets)机制、YAML 调用形态,并与录制系列的其他动作对比,帮助你按需编排"何时录、何时停"的录像策略。

动作概述:作用与行为

根据 amcrest.disable_recording 动作文档 的说明,该动作的职责是:

停止你的 Amcrest 或 Dahua 摄像头持续向已配置的存储位置录像。

它对应的是摄像头"连续录像"(continuous recording)这一模式:只要该动作生效,摄像头不再把视频流持续写入其本地存储,直到再次通过amcrest.enable_recording重新开启。值得注意的是,这一动作控制的是摄像头本地的录像行为(设备端 SD 卡或存储位置),而非 Home Assistant 侧的快照、直播或录制。

该动作是录制动作系列中的一员,与其配套的动作包括:

动作作用
amcrest.enable_recording让摄像头持续录像到其配置的存储位置
amcrest.disable_recording停止摄像头持续录像
amcrest.enable_motion_recording检测到移动时录制一段片段
amcrest.disable_motion_recording停止检测到移动时录制片段

可以看出,"持续录像"与"移动侦测录像"是两套相互独立的开关,可以根据实际场景自由组合(例如:白天关闭连续录像但保留移动录像,夜间离家时开启连续录像)。

在自动化与脚本中使用(UI 方式)

如果你倾向可视化构建自动化与脚本,Home Assistant 会逐步引导你完成该动作的配置,无需编写 YAML。按照动作文档中的步骤:

  1. 进入设置(Settings)>自动化与场景(Automations & scenes)
  2. 打开一个已有的自动化或脚本,或选择创建(Create)新建一个。
  3. 若在创建新自动化,需在当...时(When)部分添加一个触发器;脚本不需要触发器。
  4. 然后执行(Then do)部分,选择添加动作(Add action)
  5. 目标(By target)下选择你要控制的摄像头,也可以选择区域(area)、设备(device)或标签(label)。
  6. 从该目标展示的动作列表中选择Amcrest: Disable recording
  7. 选择保存(Save)

该动作在 UI 中没有额外的选项字段——你只需要指定目标,即可生效。

在 YAML 中使用

在 YAML 自动化或脚本中,该动作以amcrest.disable_recording调用,基础示例:

action: | action: amcrest.disable_recording target: entity_id: camera.driveway

这段配置会停止camera.driveway摄像头的持续录像。该动作除 target 外没有其他可选数据字段,调用形态非常简洁。

如果将其嵌入一个完整的自动化中,例如"早晨离家后停止连续录像",可以这样组织:

alias: "Stop recording when leaving" triggers: - trigger: state entity_id: person.me to: "not_home" actions: - action: amcrest.disable_recording target: entity_id: camera.driveway

动作的目标(Targets)机制

amcrest.disable_recording需要一个目标(target),目标就是动作的作用对象。根据 targets.md 模板 的定义,目标可以指向:

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

你还可以在同一动作中混合不同类型的目标,例如同时指定一个具体实体和一个区域,Home Assistant 会对目标背后匹配的所有 camera 实体依次执行动作。这一机制意味着你可以用一条动作批量关闭整栋房子的摄像头录像,而无需逐个枚举实体。

快速验证:开发者工具(Try it yourself)

如果你想在编写任何 YAML 之前先验证动作的实际效果,可以打开设置(Settings)>工具(Tools)>动作(Actions)(开发者工具),搜索amcrest.disable_recording,填写目标后点击执行动作(Perform action),即可在不写一行 YAML 的情况下在真实实体上观察结果。这是排查"为什么录像没停"类问题的首选调试入口。

前置条件:Amcrest 集成配置

要让上述动作可用,首先需要在configuration.yaml中配置 Amcrest 集成。最基础的配置示例:

# Example configuration.yaml entry amcrest: - host: IP_ADDRESS_CAMERA username: YOUR_USERNAME password: YOUR_PASSWORD

其中常用配置项包括:

  • host(必填):摄像头的 IP 地址或主机名。
  • username(必填):访问摄像头的用户名,多数 Amcrest 设备即使在其 App 中另行配置了用户名,也仍使用admin
  • password(必填):摄像头访问密码。
  • name(可选,默认Amcrest Camera):覆盖摄像头名称;多摄像头场景强烈建议设置,否则未命名时摄像头 ID 在每次重启后可能随机变化。
  • port(可选,默认80):摄像头运行端口。
  • resolution(可选,默认high):high对应 1080/720p,low对应 VGA(640x480p)。
  • stream_source(可选,默认snapshot):mjpeg使用原生 MJPEG 流,snapshot基于快照 API 生成流,rtsp则通过 RTSP 协议推流(需按 FFmpeg 集成 文档安装 ffmpeg)。
  • scan_interval(可选,默认10):传感器更新间隔(秒)。
  • sensors:可启用sdcard(SD 卡总空间与已用空间)、ptz_preset(PTZ 预置位数量)等传感器。

配置完成后需重启 Home Assistant 使配置生效。摄像头正确接入后,camera.xxx实体即会出现,amcrest.*系列动作也随之可用。

录像存储的观测方式

配合sensors中的sdcard选项,你可以同时监控摄像头本地存储的用量变化:

amcrest: - host: IP_ADDRESS_CAMERA username: YOUR_USERNAME password: YOUR_PASSWORD sensors: - sdcard

这样一来,"关闭录像"动作的实际效果(SD 卡空间不再增长)可以直接通过传感器数据验证,便于自动化调试。

录制动作系列实战编排

将四个录制动作组合起来,可以形成一套完整的录像策略。例如,一个典型的"在家不录、离家连续录、夜晚保留移动录像"自动化:

alias: "Camera recording strategy" triggers: - trigger: state entity_id: person.me to: "home" id: arrived_home - trigger: state entity_id: person.me to: "not_home" id: left_home actions: - choose: - conditions: - condition: trigger id: arrived_home sequence: - action: amcrest.disable_recording target: entity_id: camera.driveway - action: amcrest.enable_motion_recording target: entity_id: camera.driveway - conditions: - condition: trigger id: left_home sequence: - action: amcrest.enable_recording target: entity_id: camera.driveway

要点:disable_recordingdisable_motion_recording互不干扰,连续录像关闭后,移动侦测录像是否保留由enable/disable_motion_recording独立决定,编排时需按需求显式设置。

常见问题排查

若动作执行后摄像头仍持续录像,可依序检查:

  1. 目标是否选对:确认 target 指向的实体确实是 Amcrest/Dahua 摄像头实体,而非其他集成生成的 camera 实体。
  2. 设备端配置:部分机型若在摄像头固件/App 中锁定了录像计划,设备端设置可能与动作冲突,需要先在摄像头管理界面(如 Settings > Storage / Record)确认录像模式可被远程改写。
  3. 固件兼容性:文档指出较新固件的 Amcrest 摄像头可能不再支持 MJPEG 高分辨率流;若涉及stream_source配置,mjpeg不可用时建议改用rtsp。若集成本身状态异常,可先在开发者工具中执行动作并观察摄像头状态。
  4. 动作与实体状态amcrest.disable_recording没有返回值或状态回读,验证手段以观察存储用量(sdcard传感器)或摄像头管理界面为准。

若仍无法解决,可以前往 Home Assistant 社区论坛、Discord 或 /r/homeassistant 提问,描述你调用的动作与预期行为,便于快速定位。

小结

amcrest.disable_recording是精细控制 Amcrest/Dahua 摄像头本地连续录像的关键开关:它没有多余参数,核心就是"目标 + 执行",既能在 UI 中一键配置,也能在 YAML 自动化中与其他录制动作组合成完整的录像策略。配合 Amcrest 集成配置、目标(targets)批量机制与sdcard传感器验证,你可以轻松实现按在家/离家、昼夜等条件自动启停录像的实战方案。

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

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

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

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

立即咨询