Install
openclaw skills install tg-cam-api探鸽摄像头 Skill 服务。用于查询当前 Skill 已绑定设备、查看当前画面、查询事件、查看事件图片、确认设备状态和电量。当用户要查看可操作设备、看某个摄像头当前截图、查询某天或某时段发生了什么、查看最近事件或事件图片、确认在线状态、查询电量时使用。
openclaw skills install tg-cam-api这个 Skill 用于查询当前 Skill 已绑定摄像头的设备信息、当前画面、事件记录、事件图片、在线状态和电量,并在需要时完成拍照等操作。默认返回整理后的结论、摘要和图片,不直接回传长段原始接口响应。
https://skill.webcamapp.cc 作为唯一 API Base URL。TIVS_CLI_ID:摄像头 Skill 服务分配的 cli_idTIVS_API_KEY:摄像头 Skill 服务分配的 cli_api_keyX-Client-ID: $TIVS_CLI_ID
X-Api-Key: $TIVS_API_KEY
X-Skill-Version-Code: 2
Content-Type: application/json
TIVS_CLI_ID 或 TIVS_API_KEY 时,提醒用户到摄像头 APP 内获取当前 Skill 的凭据,不要伪造请求TIVS_API_KEY 的真实值GET 且无请求体,否则默认按 JSON 请求发送如果会话中收到 TIVS_CLI_ID 和 TIVS_API_KEY,请将其写入 openclaw.json:
{
"skills": {
"entries": {
"tg-cam-api": {
"env": {
"TIVS_CLI_ID": "{TIVS_CLI_ID}",
"TIVS_API_KEY": "{TIVS_API_KEY}"
}
}
}
}
}
成功或失败都使用统一响应信封:
{
"requestId": "req_xxx",
"code": "ok",
"msg": "ok",
"data": {},
"clientNotice": "发现新版本 Skill,建议升级"
}
dataclientNotice,里面会包含一些重要消息;如果里面包含升级消息,提醒用户升级当前 SkillclientNotice 一天内最多提示 1-2 次,避免频繁打扰用户snake_case,例如 device_id、start_time、event_idcamelCase,字段名固定为 deviceIdcamelCase,以实际返回为准devices 和 device 写混event_id 必须使用系统已经返回过的值,不要自己拼| 用户意图 | 优先调用 | 前置动作 | 回答重点 |
|---|---|---|---|
| 查看设备列表或指定设备 | GET /api/v1/skill/devices | 无 | 设备清单或指定设备信息 |
| 按设备名找目标设备 | GET /api/v1/skill/devices | 用结果确认 deviceId | 设备匹配结果 |
| 看某个设备当前画面 | POST /api/v1/skill/device/snapshot | 先确认 deviceId | 截图和简短说明 |
| 查某天或某时段事件 | GET /api/v1/skill/device/events | 先确认 device_id,再补时间范围 | 事件列表或摘要 |
| 看最近一个事件 | GET /api/v1/skill/device/events/latest | 先确认 device_id | 单条事件摘要和图片 |
| 看某条事件图片 | GET /api/v1/skill/device/events/image | 需要已有 event_id | 图片和简短事件信息 |
| 查设备在线状态 | GET /api/v1/skill/device/online | 先确认 device_id | 是否在线 |
| 查设备电量 | GET /api/v1/skill/device/battery | 先确认 device_id | 电量结果 |
deviceId。以下示例用于帮助快速选路。
用户想看当前有哪些设备:
GET /api/v1/skill/devices用户想看某个设备当前画面:
deviceIdPOST /api/v1/skill/device/snapshot用户想知道今天发生了什么:
device_idGET /api/v1/skill/device/events用户想看下午有没有快递来:
device_idGET /api/v1/skill/device/eventsbody、ai_summary,先看 detailDescription,需要时再查看事件图片用户想看最近一个事件:
device_idGET /api/v1/skill/device/events/latest用户想查询设备电量:
device_idGET /api/v1/skill/device/battery用户想看多个设备某一天发生了什么:
GET /api/v1/skill/devices 确认目标设备,并解析出多个 device_idGET /api/v1/skill/device/events用户想看某个设备最近几天发生了什么:
device_idGET /api/v1/skill/device/eventsGET /api/v1/skill/devices
device_id 时返回指定设备信息device_id:可选;传入后仅返回该设备,不存在或无权限时 items 为空data.items[].deviceId:设备IDdata.items[].deviceName:设备名称data.items[].isOwner:设备归属;true 为本人设备,false 为共享设备data.items[].connectWay:联网方式data.items[].extend.bindTime:绑定时间data.items[].attrs.power 是否有 batteryGET /api/v1/skill/device/online
device_id:必填data.deviceIddata.isOnlinePOST /api/v1/skill/device/snapshot
请求体示例:
{
"deviceId": "678A7QP6Q5WD"
}
deviceId:必填data.deviceIddata.statusdata.imageUrldeviceIdGET /api/v1/skill/device/events
device_id:必填start_time:可选,Unix 秒时间戳end_time:可选,Unix 秒时间戳tag:可选,可重复传多个limit:可选,整数,需大于等于 0offset:可选,整数,需大于等于 0data.items[].iddata.items[].tagdata.items[].timedata.items[].deviceIddata.items[].detailDescriptiontag 说明:
tag 是事件的分类标识,用于表示事件所属分类;tag / tags 都可用于筛选,重复传多个值表示同时关注多个分类motion(移动)、sound(声音)、body(人形)、pet(宠物)、livestock(家畜)、fire(火焰)、guard(看守异常)、image_abnormal(画面异常)、car(发现车辆)、ai_summary(AI 文字摘要)tag 筛选,并优先阅读 data.items[].detailDescriptionid 作为 event_id 调用 GET /api/v1/skill/device/events/image查询start_time 和 end_time 时,默认查询设备时区当天的事件start_time 和 end_time,且需满足 start_time < end_timelimit 和 offset 不能是负数GET /api/v1/skill/device/events/latest
device_id:必填start_time:可选,Unix 秒时间戳end_time:可选,Unix 秒时间戳data.iddata.tagdata.timedata.deviceIddata.detailDescriptiondata.imageUrlGET /api/v1/skill/device/events/image
event_id:必填data.iddata.tagdata.timedata.deviceIddata.imageUrlevent_id 请使用系统已经返回过的事件 ID,不要自己拼,例如 /api/v1/skill/device/events 返回结果中的 idGET /api/v1/skill/device/battery
device_id:必填data.deviceIddata.batteryPercent:电量百分比,值为 0-100data.isCharging:是否正在充电attrs.power 有 battery 时,才可查询电量;若没有 battery,直接说明该设备不支持电量查询deviceId、device_id 或 event_id 时,先提示用户补充,或先走上游查询步骤