设备能力
设备能力
设备已经绑定。改开关、转云台、收告警,都是 POST https://openapi-[DataCenter].easy4ip.com/openapi/v2/{方法名}。外层是 id、system、params。各页样例里的 id 是同一条请求号,方便对照,不是业务字段。sign 见 开发规范。
查这台支持哪些项、读配置、写配置、做动作,用能力使用最前面四页:
| 做什么 | 方法名 | 去哪 |
|---|---|---|
| 查这台或这个型号支持哪些项 | device.capability.list | 查询可用能力 |
| 一次读多项配置 | device.property.get | 批量读配置 |
| 一次写多项配置 | device.property.set | 批量写配置 |
| 转云台、抓图等 | device.service.invoke | 调用一次动作 |
侦测、云台、灯光等见侧栏各域。能力事件见 设备消息、接收设备消息 与 接收告警;历史 msgType 见 事件消息类型定义。重启、Wi-Fi、校时、升级等见 设备维护。设备绑定见 设备管理。
拿管理员、子用户或子账号 accessToken。子账号 token 见 获取子账号 Token,授权见 添加子账号权限。调用次数见 限额与频率。回调地址见 推送配置。子账号 / 被分享权限。失败看 result.code,见 全局返回码。
调用方式(能力发现 / v2 / 遗留 OpenAPI)
- 能力发现:已绑定设备用
deviceId调device.capability.list;未绑定或需按型号预览时,用设备详情中的productId(与deviceId至少传一个)。清单里有的propertyId/serviceId才能用 v2 读写或 invoke。 - 仅发现能力叶:页内标明「仅发现」,无 property/service 样例;不要对这类叶调 get/set/invoke。
- 公开 v2:下文「先跑通一次」及多数能力子页。get/set/invoke 与 list 相同:已绑定传
deviceId,productId可选(不一致 →DV2009)。 - 遗留 OpenAPI:见 设备能力对接 与 旧版接口。
先跑通一次
对一台已绑定设备打开动检。需要管理员、子用户或子账号 accessToken 和设备序列号。
通道级要带 channelId(IPC 常见 "0"),漏了返回 DV2007。管理员操作自己绑定的设备不需要权限。操作被分享设备需要基础配置权限。子用户绑定不需要。子账号需要 Config。其他能力以各自能力页为准。
1. 看这台设备有没有动检
POST https://openapi-[DataCenter].easy4ip.com/openapi/v2/device.capability.list
{
"id": "d5c287b4-5b2f-4f03-baf5-8032c5c354af",
"system": {
"ver": "1.0",
"appId": "lcdxxxxxxxxx",
"sign": "xjhCQBoJ9hRDsCjyDcHjtDNzRZ3ZJezcawsfWeiaoxU=",
"time": 1706511734,
"nonce": "f5a1ae2d-c09c-4d39-a744-83a5c2c653c2"
},
"params": {
"token": "<yourAccessToken>",
"deviceId": "TESTIPC000012345",
"channelId": "0"
}
}
在 result.data.capabilities 里找到 capabilityId 为 detection.motion 的块,确认有 detection.motion.enabled,且 accessMode 含 w。
2. 获取当前开关
POST https://openapi-[DataCenter].easy4ip.com/openapi/v2/device.property.get
完整请求见 获取移动检测开关属性。
{
"id": "d5c287b4-5b2f-4f03-baf5-8032c5c354af",
"system": {
"ver": "1.0",
"appId": "lcdxxxxxxxxx",
"sign": "xjhCQBoJ9hRDsCjyDcHjtDNzRZ3ZJezcawsfWeiaoxU=",
"time": 1706511734,
"nonce": "f5a1ae2d-c09c-4d39-a744-83a5c2c653c2"
},
"params": {
"token": "<yourAccessToken>",
"deviceId": "TESTIPC000012345",
"channelId": "0",
"properties": ["detection.motion.enabled"]
}
}
成功时 result.code 为 "0",data.properties["detection.motion.enabled"] 为 0 或 1。
3. 打开开关
POST https://openapi-[DataCenter].easy4ip.com/openapi/v2/device.property.set
完整请求见 设置移动检测开关属性。
{
"id": "d5c287b4-5b2f-4f03-baf5-8032c5c354af",
"system": {
"ver": "1.0",
"appId": "lcdxxxxxxxxx",
"sign": "xjhCQBoJ9hRDsCjyDcHjtDNzRZ3ZJezcawsfWeiaoxU=",
"time": 1706511734,
"nonce": "f5a1ae2d-c09c-4d39-a744-83a5c2c653c2"
},
"params": {
"token": "<yourAccessToken>",
"deviceId": "TESTIPC000012345",
"channelId": "0",
"properties": {
"detection.motion.enabled": 1
}
}
}
成功时 result.code 为 "0",data 为 {}。再获取一次确认值为 1。
要收这条动检告警,在 callbackFlag 中订阅 capabilityEvent,见 接收设备消息。灵敏度、区域、时间段见 动检 各页(侧栏 侦测与告警 → 动检)。转云台见侧栏 云台 域。失败看 result.code:DV2007 补 channelId;DV2004 核对取值。没有 detection.motion.enabled 时 list 不返回该项。更多见 全局返回码。
