杰峰开放平台室外安防技能。提供车辆检测、异常告警、智能检测、灵敏度设置、检测区域配置、推送计划管理等功能,全面提升室外安防监控能力。
编程
jf-open-pro-ptz-control
试用杰峰云台设备控制技能(开发版)。支持云台方向控制、变倍聚焦、预置位管理、巡航计划、回到守望位等功能,适用于云台摄像头设备。
它能做什么
杰峰云台设备控制技能(开发版)。支持云台方向控制、变倍聚焦、预置位管理、巡航计划、回到守望位等功能,适用于云台摄像头设备。
技能文档
jf-open-pro-ptz-control - 杰峰云台设备控制技能(开发版)
技能描述
支持杰峰云台设备的全面控制功能:
- 云台方向控制 - 上/下/左/右/左上/左下/右上/右下八个方向
- 变倍和聚焦 - 光学变倍放大/缩小,聚焦远/近调节
- 预置位管理 - 设置/删除/转到/编辑预置位
- 巡航计划 - 添加/删除/开始/停止/清除巡航点
- 特殊预置位 - 移动追踪守望位(100)、自检回归预置位(128)
适用场景:
- 远程调整摄像头视角
- 快速定位到预设监控位置
- 自动巡航监控多个区域
- 变焦查看细节
触发词
- 云台控制 / PTZ 控制 / 方向控制
- 向上转 / 向下转 / 向左转 / 向右转
- 左上 / 左下 / 右上 / 右下
- 变倍 / 聚焦 / 放大 / 缩小
- 预置位 / 巡航 / 守望位
前置条件
硬件要求
- 云台设备 - 设备需支持 PTZ 功能
- 能力集验证 -
OtherFunction.SupportPTZDirectionControl为true
必需配置
- 签名算法 - 使用杰峰官方移位加密算法生成 signature
- 时间戳算法 - counter(7 位) + timeMillis(13 位),实时生成
- 设备绑定 - 设备需先绑定到开放平台账号
环境变量
| 变量名 | 说明 | 默认值 | 必需 |
|---|---|---|---|
JF_UUID | 开放平台用户 uuid | - | ✅ |
JF_APP_KEY | 开放平台应用 appKey | - | ✅ |
JF_APP_SECRET | 开放平台应用密钥 | - | ✅ |
JF_MOVE_CARD | 移动卡标识(用于签名) | 2 | ✅ |
JF_DEVICE_SN | 设备序列号 | - | ✅ |
JF_DEVICE_TOKEN | 设备接口访问令牌 | - | ✅ |
JF_ENDPOINT | API 接入地址 | api-cn.jftechws.com | ❌ |
API 接口
| 功能 | 地址 | 方法 | 需要 Token | 需要在线 |
|---|---|---|---|---|
| 云台方向控制 | POST /gwp/v3/rtc/device/opdev/{token} | POST | ✅ | ✅ |
| 变倍聚焦控制 | POST /gwp/v3/rtc/device/opdev/{token} | POST | ✅ | ✅ |
| 预置位操作 | POST /gwp/v3/rtc/device/opdev/{token} | POST | ✅ | ✅ |
| 巡航计划 | POST /gwp/v3/rtc/device/opdev/{token} | POST | ✅ | ✅ |
| 获取预置位列表 | POST /gwp/v3/rtc/device/getconfig/{token} | POST | ✅ | ✅ |
| 获取巡航配置 | POST /gwp/v3/rtc/device/getconfig/{token} | POST | ✅ | ✅ |
核心功能
1. 云台方向控制(Direction Control)
API: POST /gwp/v3/rtc/device/opdev/{deviceToken}
Name: OPPTZControl
Command 参数:
| 方向 | Command 值 |
|---|---|
| 上 | DirectionUp |
| 下 | DirectionDown |
| 左 | DirectionLeft |
| 右 | DirectionRight |
| 左上 | DirectionLeftUp |
| 左下 | DirectionLeftDown |
| 右上 | DirectionRightUp |
| 右下 | DirectionRightDown |
Parameter 参数:
| 参数 | 类型 | 说明 | 取值 |
|---|---|---|---|
Preset | int | 运动控制 | 0=开始运动,-1=停止运动 |
Channel | int | 通道号 | 0=第一通道 |
Step | int | 运动速度 | 1-8(1 最慢,8 最快) |
⚠️ 重要:
- start/stop 指令需间隔 500ms,避免并发冲突
- 未调用停止,设备会一直转到最大角度
操作步骤:
- 发送 start 指令(Preset=0)
- 等待 500ms
- 发送 stop 指令(Preset=-1)
2. 变倍和聚焦控制(Zoom & Focus)
API: POST /gwp/v3/rtc/device/opdev/{deviceToken}
Name: OPPTZControl
Command 参数:
| 功能 | Command 值 | 说明 |
|---|---|---|
| 变倍 - | ZoomWide | 缩小(广角) |
| 变倍 + | ZoomTile | 放大(长焦) |
| 聚焦 - | FocusFar | 聚焦远处 |
| 聚焦 + | FocusNear | 聚焦近处 |
| 光圈 - | IrisSmall | 缩小光圈 |
| 光圈 + | IrisLarge | 放大光圈 |
Parameter 参数:
| 参数 | 类型 | 说明 | 取值 |
|---|---|---|---|
Channel | int | 通道号 | 0=第一通道 |
Step | int | 操作速度 | 1-8(1 最慢,8 最快) |
Preset | int | 开始/停止 | 0=开始,-1=停止 |
⚠️ 注意: 变倍和聚焦不支持设置特定倍数,只能操作快慢。
3. 预置位管理(Preset)
API: POST /gwp/v3/rtc/device/opdev/{deviceToken}
Name: OPPTZControl
Command 参数:
| 操作 | Command 值 | 说明 |
|---|---|---|
| 设置预置位 | SetPreset | 保存当前位置为预置位 |
| 删除预置位 | ClearPreset | 删除指定预置位 |
| 转到预置位 | GotoPreset | 转动到指定预置位 |
| 编辑预置位名称 | SetPresetName | 修改预置位名称 |
Parameter 参数:
| 参数 | 类型 | 说明 | 取值 |
|---|---|---|---|
Preset | int | 预置位编号 | 1-255 |
Channel | int | 通道号 | 0=第一通道 |
PresetName | string | 预置位名称 | 自定义名称 |
特殊预置位:
| 编号 | 名称 | 说明 |
|---|---|---|
100 | 移动追踪守望位 | 追踪停止后自动回归的位置 |
128 | 自检回归预置位 | 设备重启/自检后回归的位置 |
设置步骤:
- 方向控制,转动设备到某一方向
- 设置预置位(SetPreset)
- 转动到其他方向
- 转到预置位(GotoPreset)验证
4. 巡航计划(PTZ Tour)
API: POST /gwp/v3/rtc/device/opdev/{deviceToken}
Name: OPPTZControl
Command 参数:
| 操作 | Command 值 | 说明 |
|---|---|---|
| 添加巡航点 | AddTour | 往巡航线路添加预置点 |
| 删除巡航点 | DeleteTour | 从巡航线路删除预置点 |
| 开始巡航 | StartTour | 开始自动巡航 |
| 停止巡航 | StopTour | 停止巡航 |
| 清除巡航线路 | ClearTour | 清除整个巡航线路 |
Parameter 参数:
| 参数 | 类型 | 说明 | 取值 |
|---|---|---|---|
Preset | int | 预置点编号 | 0-255 |
Tour | int | 巡航线路编号 | 0(默认) |
Channel | int | 通道号 | 0=第一通道 |
Step | int | 转动速度 | 1-8(添加巡航点时有效) |
巡航说明:
- 设备会在预设的预置点之间自动循环转动
- 可自定义点与点之间的转动速度
- 支持多条巡航线路
5. 获取预置位列表
API: POST /gwp/v3/rtc/device/getconfig/{deviceToken}
Name: Uart.PTZPreset
响应参数:
| 字段 | 类型 | 说明 |
|---|---|---|
| Uart.PTZPreset | object[] | 预置位列表 |
| ├─ Id | int | 预置位编号 |
| ├─ PresetName | string | 预置位名称 |
6. 获取巡航路径配置
API: POST /gwp/v3/rtc/device/getconfig/{deviceToken}
Name: Uart.PTZTour
使用示例
环境准备
# 设置环境变量
export JF_UUID="uuidxxxx"
export JF_APP_KEY="appkeyxxxx"
export JF_APP_SECRET="appsecretxxxx"
export JF_MOVE_CARD=0
export JF_DEVICE_SN="snxxx1"
export JF_DEVICE_TOKEN="NTQ0NzQ3YmE3MXwyYzFk..."
export JF_ENDPOINT="api-cn.jftechws.com"
1. 云台方向控制
cd ~/.openclaw/workspace/skills/developer/jf-open-pro-ptz-control/scripts
# 向上转动
python3 ptz_control.py --action direction --direction up
# 向左转动
python3 ptz_control.py --action direction --direction left
# 向右下转动
python3 ptz_control.py --action direction --direction rightdown
2. 变倍和聚焦
# 变倍放大(拉近)
python3 ptz_control.py --action zoom --zoom in
# 变倍缩小(拉远)
python3 ptz_control.py --action zoom --zoom out
# 聚焦远处
python3 ptz_control.py --action focus --focus far
# 聚焦近处
python3 ptz_control.py --action focus --focus near
3. 预置位管理
# 设置预置位 1
python3 ptz_control.py --action set-preset --preset 1 --name "门口"
# 转到预置位 1
python3 ptz_control.py --action goto-preset --preset 1
# 删除预置位 1
python3 ptz_control.py --action clear-preset --preset 1
# 编辑预置位名称
python3 ptz_control.py --action set-preset-name --preset 1 --name "大门入口"
# 查询预置位列表
python3 ptz_control.py --action list-presets
4. 巡航计划
# 添加预置位 1 到巡航线路 0
python3 ptz_control.py --action add-tour --tour 0 --preset 1
# 添加预置位 2 到巡航线路 0
python3 ptz_control.py --action add-tour --tour 0 --preset 2
# 开始巡航
python3 ptz_control.py --action start-tour --tour 0
# 停止巡航
python3 ptz_control.py --action stop-tour --tour 0
# 清除巡航线路
python3 ptz_control.py --action clear-tour --tour 0
# 查询巡航配置
python3 ptz_control.py --action list-tours
5. 特殊预置位
# 设置移动追踪守望位(预置位 100)
python3 ptz_control.py --action set-preset --preset 100 --name "追踪守望位"
# 设置自检回归预置位(预置位 128)
python3 ptz_control.py --action set-preset --preset 128 --name "自检回归位"
# 转到移动追踪守望位
python3 ptz_control.py --action goto-preset --preset 100
状态码
平台状态码
| code | 说明 | 处理建议 |
|---|---|---|
| 2000 | 成功 | - |
| 28007 | Header 参数错误 | 检查 uuid、appKey、timeMillis、signature |
| 40103 | 无效 Token | deviceToken 过期,重新获取 |
| 50000 | 服务器内部错误 | 联系杰峰技术支持 |
设备状态码(Ret)
| Ret | 说明 |
|---|---|
| 100 | 成功 |
注意事项
- 设备要求 - 设备需支持云台 PTZ 功能
- deviceToken 有效期 - 24 小时,过期需重新获取
- 设备在线要求 - 所有操作需要设备在线
- start/stop 间隔 - 方向控制指令需间隔 500ms
- 未停止会持续转动 - 未调用 stop 设备会转到最大角度
- 预置位编号 - 建议使用 1-199,200 以后可能为特殊用途
- 特殊预置位 - 100=移动追踪守望位,128=自检回归预置位
- 变倍聚焦 - 不支持设置特定倍数,只能操作快慢
相关文件
| 文件 | 说明 |
|---|---|
SKILL.md | 技能文档 |
scripts/ptz_control.py | Python 执行脚本 |
scripts/crypto.py | 签名/时间戳加密工具(复用) |
参考文档
相关技能
杰峰设备本地录像技能(开发版)。支持 TF 卡/硬盘存储设备的录像日历查询、回放列表、录像回放下载、本地报警图片获取、主辅码流切换等功能。
杰峰开放平台室内安防技能。实时监测客厅等居家场景,全方位守护人身与居家安全,实时掌握家人动态。筑牢安全防线,同步感知居家日常,安心守护居家点滴时光。
杰峰设备直播预览技能(开发版)。支持多端集成实时视频播放,兼容 HLS、RTSP、RTMP、FLV、MP4、WebRTC 等主流协议,适配 H.264/H.265 设备。
杰峰看门狗技能。基于杰峰设备抓图 + AI 视觉分析的通用区域状态监控,支持物品防盗、通道占用检测、人员存在检测等场景。
杰峰设备 OSD 水印设置技能(开发版)。支持设备实时画面水印设置,可配置通道标题、时间标题、隐私区域等 OSD 叠加属性。