Home Assistant 停止 Amcrest / Dahua 摄像头 PTZ 巡游:amcrest.stop_tour 动作完整指南
2026/9/16 19:20:50 网站建设 项目流程

Home Assistant 停止 Amcrest / Dahua 摄像头 PTZ 巡游:amcrest.stop_tour 动作完整指南

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

amcrest.stop_tour是 Home Assistant 中用于停止 Amcrest(以及兼容的 Dahua)IP 摄像头 PTZ(云台、俯仰、变焦)巡游(tour)功能的动作(action)。本文以amcrest.stop_tour 动作文档 为主体,结合 Amcrest 集成文档 及配套的 start_tour、ptz_control、goto_preset 等动作说明,完整讲解如何在自动化、脚本和 YAML 中停止 PTZ 巡游,并给出可与该动作配合使用的完整实战方案。读完本文,你将掌握:在图形界面与 YAML 中调用amcrest.stop_tour的完整方法、目标(target)选择规则,以及围绕 PTZ 巡游的"启动—控制—停止"自动化编排技巧。

Amcrest 摄像头 PTZ 控制示例截图

动作概览:何时需要停止巡游

在 Home Assistant 中,Amcrest 或 Dahua 摄像头开启巡游后,云台会在预设位(preset position)之间自动往返转动,实现无人值守的周期性全景巡视。但在以下典型场景中,你需要及时停止巡游:

amcrest.stop_tour动作正是为此设计的:它直接停止当前摄像头正在执行的 PTZ 巡游,与amcrest.start_tour一一对应,且不携带任何额外参数——你只需要指明要操作哪台摄像头(目标)。

从用户界面(UI)停止巡游

如果你偏好可视化配置,Home Assistant 会引导你逐步完成该动作的设置,无需编写 YAML。按照动作文档中的步骤操作即可:

  1. 进入设置(Settings)> 自动化与场景(Automations & scenes)
  2. 打开一个现有的自动化或脚本,或选择创建(Create)新建一个。
  3. 如果是新建自动化,在When(触发条件)区域添加触发器;脚本(script)则不需要触发器。
  4. Then do(动作)区域选择添加动作(Add action)
  5. 按目标(By target)下(目标规则见下文"动作的目标"一节),选择要控制的摄像头;你也可以选择区域(area)、设备(device)或标签(label)。
  6. 在针对该目标显示的动作列表中,选择Amcrest:停止巡游(Stop tour)
  7. 点击保存(Save)

需要特别说明的是:该动作在 UI 中没有额外的选项字段。相比amcrest.ptz_control(有 Movement、Travel time 两个选项)和amcrest.goto_preset(有 Preset 选项),amcrest.stop_tour只做一件事——停,因此界面非常简洁。

在 YAML 中调用 amcrest.stop_tour

如果你直接编写 YAML,或想确切了解 Home Assistant 在底层做了什么,可以参考本节的技术参考。YAML 中该动作的名称是amcrest.stop_tour,基础示例如下:

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

上述示例会停止camera.driveway这台摄像头的巡游功能。

同样地,该动作在 YAML 中也没有额外的选项(data 字段)。可用的字段只有通用的target(必填)。这与配套动作形成鲜明对比,便于记忆:

动作参数(data)说明
amcrest.stop_tour停止巡游,仅需 target
amcrest.start_tour启动巡游,仅需 target
amcrest.goto_presetpreset(必填,integer,从 1 开始)移动到指定预设位
amcrest.ptz_controlmovement(必填,string);travel_time(可选,float,默认 0.2,范围 0–1)按方向手动转动/变焦

其中amcrest.ptz_controlmovement可取值为zoom_inzoom_outupdownleftrightright_upright_downleft_upleft_downtravel_time以秒为单位(支持小数),控制单次移动的持续时长。这些参数细节均来自 ptz_control 动作文档 的参数表。

动作的目标(Target)规则

amcrest.stop_tour需要且仅需要一个目标(target)。目标就是动作的作用对象,你可以把动作指向单个实体(entity)、设备(device)、区域(area)、楼层(floor)或标签(label),Home Assistant 会对该目标背后所有匹配的camera实体执行动作:

你还可以在同一个动作中组合多种目标类型。例如,把一台具体实体和一个区域同时作为目标,Home Assistant 会一次性地对两者全部执行停止巡游。以上规则来自仓库中的 targets 模板。

利用这一特性,一条动作即可批量停止多台摄像头的巡游:

action: | action: amcrest.stop_tour target: entity_id: camera.driveway area_id: backyard

完整实战:巡游启动与停止的自动化编排

单独的停止动作价值有限,把它与启动、手动控制动作组合,才能发挥巡游的威力。以下是一个"白天定时巡游、检测到移动立即停止并追踪"的完整自动化示例:

# 白天 9:00 开始巡游 alias: "Start PTZ tour during the day" triggers: - trigger: time at: "09:00:00" conditions: - condition: time weekday: - mon - tue - wed - thu - fri actions: - action: amcrest.start_tour target: entity_id: camera.driveway
# 检测到移动时停止巡游,并转到最近关注的预设位 alias: "Stop tour and focus on motion" triggers: - trigger: state entity_id: binary_sensor.driveway_motion to: "on" actions: - action: amcrest.stop_tour target: entity_id: camera.driveway - action: amcrest.goto_preset target: entity_id: camera.driveway data: preset: 1

脚本(script)中同样可以直接使用该动作,例如"下班回家时停止巡游":

# scripts.yaml 片段 stop_tour_evening: alias: "Stop tour in the evening" sequence: - action: amcrest.stop_tour target: entity_id: camera.driveway

如需在 Lovelace 仪表盘上提供手动控制,可以参考 Amcrest 集成文档 中的picture-elements卡片示例——它为摄像头画面叠加了 8 个方向与缩放控制按钮,通过perform_action: amcrest.ptz_controlservice_data传递movement参数;你也可以在同样的卡片中增加一个"停止巡游"按钮,直接调用amcrest.stop_tour,实现一键接管云台。

前置条件:Amcrest 集成配置

要使用amcrest.stop_tour,首先需要在configuration.yaml中配置 Amcrest 集成。基础配置如下:

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

关键配置项一览(完整参数表见 amcrest.markdown):

参数必填默认值说明
host摄像头 IP 地址或主机名
username摄像头登录用户名(多数 Amcrest 设备即使在其 App 中改过用户名,也仍使用admin
password摄像头登录密码
nameAmcrest Camera覆盖摄像头名称;多摄像头场景强烈建议设置
port80摄像头端口
resolutionhighhigh(1080/720p)或low(640x480p)
stream_sourcesnapshotmjpegsnapshotrtsp
ffmpeg_arguments-pred 1传给 FFmpeg 的额外参数
authenticationbasicstream_sourcemjpeg时的认证方式
scan_interval10传感器更新间隔(秒)
sensors可启用sdcardptz_preset(返回已配置的 PTZ 预设位数量)等传感器
switches可启用privacy_mode等开关

多摄像头场景下,可参考如下进阶配置(来自集成文档):

amcrest: - host: IP_ADDRESS_CAMERA_1 username: YOUR_USERNAME password: YOUR_PASSWORD binary_sensors: - motion_detected - crossline_detected - online sensors: - sdcard # Add second camera - host: IP_ADDRESS_CAMERA_2 username: YOUR_USERNAME password: YOUR_PASSWORD name: Amcrest Camera 2 resolution: low stream_source: snapshot sensors: - ptz_preset

配置完成后,摄像头会以camera实体形式出现在 Home Assistant 中,amcrest.stop_tour等 PTZ 相关动作即可对该实体生效。你可以结合sensors中的ptz_preset传感器(返回摄像头已配置的 PTZ 预设位数量)来确认摄像头预设位已就绪,确保巡游能够在预设位之间正常往返。

动手试一试:开发者工具中的实时验证

如果你急于验证动作效果,无需编写任何 YAML:打开设置 > 工具(Tools)> 动作(Actions),搜索amcrest.stop_tour,在字段中填入目标(例如camera.driveway),点击执行动作(Perform action),即可在真实实体上立即看到效果。这是排查问题、确认目标实体 ID 的最快途径(该入口说明来自 try_it 模板)。

使用注意事项

结合 Amcrest 集成文档 中的说明,使用 PTZ 相关动作时有两点需要留意:

另外,巡游动作依赖摄像头固件对 PTZ 协议的支持。若动作无响应,可先通过摄像头的管理界面确认 PTZ 预设位与巡游配置是否已就绪,再检查amcrest集成日志。

相关动作

amcrest.stop_tour通常与以下动作配合使用(相关动作列表定义在 stop_tour 文档 的 frontmatter 中,由 related 模板 渲染):

四者共同构成了完整的 PTZ 控制闭环:start_tour开启自动巡视 → 发现关注目标时stop_tour立即停住 →ptz_control手动微调或goto_preset跳转预设位 → 需要时再次start_tour恢复巡视。把这一闭环写进自动化与脚本,即可让 Amcrest / Dahua 摄像头真正实现"自动巡视、按需聚焦"的智能监控体验。

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

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

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

立即咨询