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停住自动转动,再用 amcrest.ptz_control 手动调整方向,或用 amcrest.goto_preset 跳转到指定预设位; - 夜间或离家模式下,按日程定时结束巡视任务。
amcrest.stop_tour动作正是为此设计的:它直接停止当前摄像头正在执行的 PTZ 巡游,与amcrest.start_tour一一对应,且不携带任何额外参数——你只需要指明要操作哪台摄像头(目标)。
从用户界面(UI)停止巡游
如果你偏好可视化配置,Home Assistant 会引导你逐步完成该动作的设置,无需编写 YAML。按照动作文档中的步骤操作即可:
- 进入设置(Settings)> 自动化与场景(Automations & scenes)。
- 打开一个现有的自动化或脚本,或选择创建(Create)新建一个。
- 如果是新建自动化,在When(触发条件)区域添加触发器;脚本(script)则不需要触发器。
- 在Then do(动作)区域选择添加动作(Add action)。
- 在按目标(By target)下(目标规则见下文"动作的目标"一节),选择要控制的摄像头;你也可以选择区域(area)、设备(device)或标签(label)。
- 在针对该目标显示的动作列表中,选择Amcrest:停止巡游(Stop tour)。
- 点击保存(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_preset | preset(必填,integer,从 1 开始) | 移动到指定预设位 |
amcrest.ptz_control | movement(必填,string);travel_time(可选,float,默认 0.2,范围 0–1) | 按方向手动转动/变焦 |
其中amcrest.ptz_control的movement可取值为zoom_in、zoom_out、up、down、left、right、right_up、right_down、left_up、left_down,travel_time以秒为单位(支持小数),控制单次移动的持续时长。这些参数细节均来自 ptz_control 动作文档 的参数表。
动作的目标(Target)规则
amcrest.stop_tour需要且仅需要一个目标(target)。目标就是动作的作用对象,你可以把动作指向单个实体(entity)、设备(device)、区域(area)、楼层(floor)或标签(label),Home Assistant 会对该目标背后所有匹配的camera实体执行动作:
- 实体(Entity):某一个具体的
camera实体,例如camera.living_room。 - 设备(Device):属于某台设备的所有
camera实体。 - 区域(Area):某个房间或区域内的所有
camera实体。 - 楼层(Floor):某一楼层上的所有
camera实体。 - 标签(Label):共享某个标签的所有
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_control与service_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 | 是 | — | 摄像头登录密码 |
name | 否 | Amcrest Camera | 覆盖摄像头名称;多摄像头场景强烈建议设置 |
port | 否 | 80 | 摄像头端口 |
resolution | 否 | high | high(1080/720p)或low(640x480p) |
stream_source | 否 | snapshot | mjpeg、snapshot或rtsp |
ffmpeg_arguments | 否 | -pred 1 | 传给 FFmpeg 的额外参数 |
authentication | 否 | basic | stream_source为mjpeg时的认证方式 |
scan_interval | 否 | 10 | 传感器更新间隔(秒) |
sensors | 否 | 无 | 可启用sdcard、ptz_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 的变焦(zoom)能力不控制可变焦距(VariFocal)镜头的焦距调整,二者是两套机制;
- 视频画面(快照或实时流)反映云台移动结果可能存在数秒延迟,因此在停止巡游、转向或变焦后,画面不会立即定格到位,设计自动化触发条件时应预留缓冲时间。
另外,巡游动作依赖摄像头固件对 PTZ 协议的支持。若动作无响应,可先通过摄像头的管理界面确认 PTZ 预设位与巡游配置是否已就绪,再检查amcrest集成日志。
相关动作
amcrest.stop_tour通常与以下动作配合使用(相关动作列表定义在 stop_tour 文档 的 frontmatter 中,由 related 模板 渲染):
- Start tour:启动 PTZ 巡游,让摄像头在配置好的预设位之间自动移动;
- PTZ control:手动平移、俯仰或缩放摄像头,可指定方向与移动时长;
- Go to preset:将摄像头移动到某个已配置的 PTZ 预设位(编号从 1 开始)。
四者共同构成了完整的 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
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考