device.detail.list(按 ID 批量详情)
device.detail.list:按 ID 批量详情
功能详情
按序列号批量查询设备详情。本方法不会出现在 device.capability.list 里。详情里的 capabilityIds[] 是一组能力的 id,不要拿去发 get / set / invoke。canBeUpgrade 等为 Boolean;能力目录里的开关仍是 0 / 1,两套不要混。
请求地址
POST https://openapi-[DataCenter].easy4ip.com/openapi/v2/device.detail.list
最小权限
管理员:绑定或被分享的设备可见。子用户:自己绑定的设备可见。子账号:已授权的设备可见,并按通道权限过滤。
传入参数说明
| 参数名 | 参数类型 | 是否必填 | 默认值 | 合法值 | 参数说明 |
|---|---|---|---|---|---|
token | String | 是 | 管理员、子用户或子账号 accessToken | ||
deviceList | Array | 是 | 1~50 项 | 要查的设备列表 | |
deviceList[].deviceId | String | 是 | 设备序列号 | ||
deviceList[].channelId | String[] | 否 | 全部通道 | 通道号数组,IPC 常见 ["0"] | 指定通道;不传 = 全部 |
openid | String | 否 | 子账号 |
样例输入
{
"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>",
"deviceList": [
{
"deviceId": "TESTIPC000012345",
"channelId": ["0"]
}
]
}
}
返回 data 字段说明
| 参数名 | 参数类型 | 参数说明 |
|---|---|---|
count | Int | 本批条数 |
deviceList | Array | 设备详情,字段见下表 |
deviceList[]
| 参数名 | 参数类型 | 参数说明 |
|---|---|---|
deviceId | String | 设备序列号 |
productId | String | 已知则返回 |
deviceStatus | String | online / offline / sleep / upgrading |
deviceModel | String | 型号 |
catalog | String | 大类 |
brand | String | 品牌 |
accessType | String | 接入类型 |
deviceVersion | String | 版本 |
deviceName | String | 名称 |
canBeUpgrade | Boolean | 是否可升级 |
upgradeInfo | Object | 可升级时返回 |
upgradeInfo.version | String | 目标版本 |
upgradeInfo.attention | String | 升级说明 |
upgradeInfo.packageUrl | String | 升级包地址 |
encryptMode | String | 0 / 1 |
lastOffLineTime | String | 最后离线时间 |
bindTime | Long | 绑定时间 |
source | String | 来源 |
channelNum | Int | 通道数 |
playTokenV2 | String | 播放码 |
sdcardStatus | String | SD 状态 |
wifiTransferMode | String | 频段 |
isSubDevice | Boolean | 是否子设备 |
parentDeviceId | String | 父设备序列号 |
parentProductId | String | 父设备型号 |
capabilityIds | String[] | 一组能力的 id。不要拿去发 get / set / invoke |
channelList | Array | 通道列表,字段见下表 |
subDeviceList | Array | 子设备摘要 |
httpPort | String | 海外端口 |
rtspPort | String | 海外端口 |
tlsPrivatePort | String | 海外端口 |
deviceUsernameV2 | String | 海外加密账号 |
devicePasswordV2 | String | 海外加密密码 |
channelList[]
| 参数名 | 参数类型 | 参数说明 |
|---|---|---|
channelId | String | 通道号 |
channelName | String | 通道名称 |
channelStatus | String | online / offline / sleep / upgrading |
cameraStatus | String | on / off |
channelPicUrl | String | 封面 |
alarmStatus | String | 布撤防 |
csStatus | String | 云存储 |
aiInsightStatus | String | 智见 |
shareStatus | String | 分享状态 |
shareFunctions | String | 分享功能 |
lastOffLineTime | String | 离线时间 |
capabilityIds | String[] | 通道级,一组能力的 id。不要拿去发 get / set / invoke |
resolutions | Array | 分辨率列表 |
resolutions[].name | String | 分辨率名称 |
resolutions[].imageSize | String | 图像尺寸 |
resolutions[].streamType | String | 码流类型 |
productId | String | 多目等场景下的通道型号 |
样例输出
{
"id": "d5c287b4-5b2f-4f03-baf5-8032c5c354af",
"result": {
"code": "0",
"msg": "Operation is successful",
"data": {
"count": 1,
"deviceList": [
{
"deviceId": "TESTIPC000012345",
"productId": "56WGTET2",
"deviceStatus": "online",
"deviceModel": "IPC-C22EP",
"catalog": "IPC",
"brand": "lechange",
"deviceVersion": "2.800.0000000.0.R.230101",
"deviceName": "客厅",
"canBeUpgrade": false,
"encryptMode": "0",
"lastOffLineTime": "",
"bindTime": 1599031074,
"source": "bind",
"channelNum": 1,
"playTokenV2": "pt_xxx",
"sdcardStatus": "empty",
"wifiTransferMode": "5G",
"isSubDevice": false,
"capabilityIds": ["detection.motion", "ptz.aim"],
"channelList": [
{
"channelId": "0",
"channelName": "通道1",
"channelStatus": "online",
"cameraStatus": "on",
"channelPicUrl": "https://example.imou.com/pic/cover.jpg",
"alarmStatus": "on",
"csStatus": "off",
"aiInsightStatus": "off",
"shareStatus": "",
"shareFunctions": "",
"lastOffLineTime": "",
"capabilityIds": ["detection.motion", "ptz.aim"],
"resolutions": [
{
"name": "1080P",
"imageSize": "1920x1080",
"streamType": "main"
}
]
}
],
"subDeviceList": []
}
]
}
}
}
错误码
网关与鉴权(SN / TK / OP)
| 错误码 | 错误码说明 | 下一步 |
|---|---|---|
SN1001 | 签名校验异常 | 按 HTTP 开发规范 核对 sign |
TK1002 | token 无效或过期 | 重新获取 accessToken |
OP1002 | 缺少必填参数 | 补必填字段 |
OP1003 | 参数不合法 | 按本页参数表核对 |
OP1009 | 权限不足 | 核对 token 与设备绑定/分享权限 |
OP1013 | 接口总次数超限 | 降低调用频率 |
OP1014 | 接口日限额超限 | 见 接口调用限额 |
DV1007 | 设备离线 | 等设备上线 |
更多见 错误码 · OP/SN/TK。
子账号(SUB)
| 错误码 | 错误码说明 | 下一步 |
|---|---|---|
SUB1001–SUB1002 | 子账号无接口权限 | 在 addPolicy 中补策略 |
SUB1005 | 子账号 token 过期 | 重新 subAccountToken |
SUB1006 | 子账号与设备无授权 | 核对 Resource 与设备序列号 |
SUB1008 | 子账号未绑定应用 | 先创建并绑定子账号 |
更多见 错误码 · SUB。
设备查询(DV20xx)
| 错误码 | 错误码说明 | 下一步 |
|---|---|---|
DV2012 | 设备不存在 | 核对序列号 |
| :--- | :--- | :--- |
DV2013 | 设备未绑定 | 先绑定(device.capability.list 不用于判绑定) |
| :--- | :--- | :--- |
DV2011 | 无该能力权限 | 见 权限码 |
