EM-BOX接口说明
本文档提供了EM-BOX单机版的接口文档,支持进行二次开发。
接口整体说明
- 每个接口的完整调用地址由
IP:端口+接口地址
拼接而成。默认端口为:8000 -
下文将讲述的接口列表总体分为这几类:
- 事件相关接口:用于查询事件列表与事件详情,配置事件推送方案
- 设备管理接口:用于添加设备、设置抽帧功能、以及进行设备的增删改
- 技能管理接口:用于设置以及查看某个技能的配置详情
- 图片管理接口:用于上传图片给模型进行分析
- 人脸库相关接口:用于进行人脸库的管理,进行用户的增删改查
- 系统设置相关接口:用于对系统进行设置
接口列表
以下为全部接口的列表以及详情信息。
事件相关接口
查询事件列表
-
/rpc/2.0/cvsaas/v1/event/list [POST]
请求格式:header应为Content-Type:application/json
接口说明:查询事件列表
请求说明:
参数名称 类型 是否必填 说明 edgeToken String 否 盒子token deviceToken String 否 设备token skillId int 否 技能ID pageNo int 否 页码 pageSize int 否 单页记录数 startTime int 否 开始时间 "yyyy-MM-dd HH: mm:ss" endTime int 否 结束时间 "yyyy-MM-dd HH: mm:ss" 请求示例:
{ "edgeToken":"xxxxx", "deviceToken": "XXXX-XXXX-XXXX-XXXX", "skillId": 10, "pageNo": 1, "pageSize": 20, "startTime":"2021-9-12 0:0:0", "endTime":"2021-9-13 0:0:0" }
返回说明:
字段名 类型 是否一定存在 说明 log_id Long 是 调用唯一ID error_code Int 否 服务调用提示码,失败才返回,成功不返回 error_msg String 否 服务调用提示信息,失败才返回,成功不返回 result JSON 是 返回结果 +pageNo int 否 页码 +pageSize int 否 单页记录数 +totalCount int 否 总记录数 +totalPage int 否 总页数 +data JSONArray 是 数据 ++eventId string 是 事件ID ++skillId Long 是 技能ID ++skillName String 是 技能名称(中文) ++deviceToken String 是 设备token ++originResourceFileKey String 是 原始资源fileKey,
http://盒子ip:8000/app/data/storage/拼接上fileKey 即可得到完整的访问地址,下同
注意:如果您想永久保存该图片,请将图片下载到服务器单独保存,由于盒子存储空间有限,会定期删除图片(删除策略见"系统设置-事件设置-事件保存时长"),图片被删后,地址将无法访问。++originImageFileKey String 是 原始图片fileKey,
originImageFileKey与originResourceFileKey的关系及区别:
资源包含图片及视频,当资源类型是图片时,image==resource;
当资源类型是视频时,image代表视频的封面图片,resource为真正视频;由于目前资源都是图片,所以目前image字段和resource字段是相同的。++renderResourceFileKey String 是 渲染资源fileKey,为节省盒子计算及存储资源,渲染图没有在后端生成渲染图,因此renderResourceFileKey==originResourceFileKey ++renderImageFileKey String 是 渲染图片fileKey,renderImageFileKey==renderResourceFileKey ++requestTime String 是 抓拍时间 毫秒时间戳 ++createTime String 是 事件发生时间 毫秒时间戳 ++isFalseAlarm byte 是 事件是否是误报事件,0:否 1:是 返回示例:
{ "error_code": 0, "log_id": 1603933898182943, "trace_id": "38d33531c0f24a21a6e10980f80fcba7", "result": { "pageNo": 1, "pageSize": 20, "totalCount": 1, "totalPage": 1, "data": [ { "eventId": 1, "skillId": 19, "title": "烟火检测", "skillName": "烟火检测", "deviceToken": "QDHG-LWMS-8DHY-G09F", "deviceName": "test", "originImageFileKey": "/resource/event/QDHG-LWMS-8DHY-G09F/1603920042988_48548396908690.jpg", "originResourceFileKey": "/resource/event/QDHG-LWMS-8DHY-G09F/1603920042988_48548396908690.jpg", "renderImageFileKey": "/resource/event/4fab59ed79049e1f82fe5ab54809a513/QDHG-LWMS-8DHY-G09F/1603920045286_662456897570735.jpg", "renderResourceFileKey": "/resource/event/4fab59ed79049e1f82fe5ab54809a513/QDHG-LWMS-8DHY-G09F/1603920045286_662456897570735.jpg", "requestTime": 1603920043000, "createTime": 1603920045000, "isFalseAlarm":0 } ] } }
事件详情接口
接口描述: 查询事件详情
接口地址: /rpc/2.0/cvsaas/v1/event/detail
请求方式: POST
请求格式: application/json
参数说明:
参数名称 | 数据类型 | 是否必须 | 备注 | 样例 |
---|---|---|---|---|
id(或eventId) | Int | 是 | 事件id |
请求示例:
{
"id": 1
}
返回结果说明:以json格式返回。
字段名 | 类型 | 是否必须 | 备注 | 样例 |
---|---|---|---|---|
log_id | Long | 是 | 调用唯一ID | |
error_code | Int | 否 | 服务调用提示码,失败才返回,成功不返回 | |
error_msg | String | 否 | 服务调用提示信息,失败才返回,成功不返回 | |
result | JSON | 是 | 返回结果 | |
+eventId | Int | 是 | 事件id | |
+title | String | 是 | 事件标题 | |
+deviceToken | String | 是 | 设备token | |
+deviceName | String | 设备名称 | ||
+skillId | Int | 技能id | ||
+skillName | String | 技能名称 | ||
+mediaType | Int | 媒体类型,0:图片,1:视频,目前都是0 | ||
+requestTime | Long | 请求时间 | ||
+createTime | Long | 事件生成时间 | ||
+originResourceFileKey | String | 原始资源fileKey, http://盒子ip:8000/app/data/storage/拼接上fileKey 即可得到完整的访问地址,下同 注意:如果您想永久保存该图片,请将图片下载到服务器单独保存,由于盒子存储空间有限,会定期删除图片(删除策略见"系统设置-事件设置-事件保存时长"),图片被删后,地址将无法访问。 |
||
+originImageFileKey | String | 原始图片fileKey, originImageFileKey与originResourceFileKey的关系及区别: 资源包含图片及视频,当资源类型是图片时,image==resource; 当资源类型是视频时,image代表视频的封面图片,resource为真正视频;由于目前资源都是图片,所以目前image字段和resource字段是相同的。 |
||
+renderResourceFileKey | String | 渲染资源fileKey,为节省盒子计算及存储资源,渲染图没有在后端生成渲染图,因此renderResourceFileKey==originResourceFileKey | ||
+renderImageFileKey | String | 渲染图片fileKey,renderImageFileKey==renderResourceFileKey | ||
+skillInput | JSON | 启动技能时的入参 | ||
++resource | JSON | 启动技能时的资源(比如图片) | ||
+++areas | Array | 框选的检测区域 | ||
++++nodes | Array | 框选的检测节点 | ||
++customParameter | JSON | 自定义技能参数,比如模型的阈值 | ||
+skillOutput | JSON | 技能执行完成后的输出 | ||
++result | JSON | 技能执行返回的模型结果,每个技能有区别,参考下文技能执行结果 | ||
+isFalseAlarm | byte | 事件是否是误报事件,0:否 1:是 |
返回示例:
{
"error_code": 0,
"log_id": 1632300250782065,
"trace_id": "9b12dbee66d743808d056706cb839129",
"result": {
"eventId": 743234,
"title": "电子围栏",
"deviceToken": "OAAN-4DLE-SFKH-LYVS",
"deviceName": "2",
"skillId": 10,
"skillName": "电子围栏",
"mediaType": 0,
"requestTime": 1631879809000,
"createTime": 1631879810000,
"originResourceFileKey": "/resource/event/OAAN-4DLE-SFKH-LYVS/1631879808684_795328448709808.jpg",
"originImageFileKey": "/resource/event/OAAN-4DLE-SFKH-LYVS/1631879808684_795328448709808.jpg",
"renderImageFileKey": "/resource/event/OAAN-4DLE-SFKH-LYVS/1631879810477_795330242209336.jpg",
"renderResourceFileKey": "/resource/event/OAAN-4DLE-SFKH-LYVS/1631879810477_795330242209336.jpg",
"skillInput": {
"skillName": "电子围栏",
"ext": {
"alarmContext": {
"mode": "INSTANT"
},
"skillModel": {
"0:1:0": {
"vendorModelId": 1,
"vendorModelVersionId": 0,
"vendor": 0,
"name": "人体检测",
"serviceAddress": "http://localhost:8082",
"id": 1,
"userId": "system",
"runEnvironment": 0
}
}
},
"requestTime": 1631879808686,
"skillId": 10,
"debug": false,
"resource": {
"path": "/resource/origin/OAAN-4DLE-SFKH-LYVS/1631879808684_795328448709808.jpg",
"areas": [
{
"nodes": [
[
66,
85
],
[
1888,
76
],
[
1883,
1048
],
[
23,
1046
]
],
"name": "area0"
}
],
"type": "object_storage"
},
"appId": "10000_0",
"customParameter": {
"skillId": 10,
"modelThresholds": {
"bodyProbabilityThreshold": {
"lowerLimit": 0.3
}
},
"skillVersion": 1,
"alarmSetting": {
"bodyFrameAlarmControl": 0
}
},
"deviceName": "2",
"userId": "10000_0",
"sync": false,
"deviceToken": "OAAN-4DLE-SFKH-LYVS"
},
"skillOutput": {
"persons": [
{
"score": 0.3154655396938324,
"top": 766,
"left": 1086,
"width": 268,
"height": 308
}
],
"normal": false
},
"isFalseAlarm": 1
}
}
事件删除接口
接口描述: 查询事件列表,技能分析的结果
接口地址: /rpc/2.0/cvsaas/v1/event/delete
接口说明:删除未被标记为误报事件的事件
请求方式: POST
请求格式: application/json,请求头headers添加 Authorization:Basic YWRtaW46YWRtaW4yMDIwIQ==
(YWRtaW46YWRtaW4yMDIwIQ==为 用户名:密码 进行base64编码后的结果)
参数说明:(如果都为空,则删除所有事件)
参数名称 | 数据类型 | 是否必须 | 备注 | 样例 |
---|---|---|---|---|
edgeToken | String | 否 | 盒子token | |
skillId | Int | 否 | 技能id | |
deviceToken | String | 否 | 设备token | |
startTime | String | 否 | 起始时间 | 2020-11-20 11:11:11 |
endTime | String | 否 | 终止时间 | 2020-11-20 11:11:11 |
请求示例:
{
"edgeToken":"xxxxxxx",
"skillId": 10,
"deviceToken":"ABCD-ABCD-DFDF-DFDF",
"startTime":"2020-11-19 11:11:11",
"endTime":"2020-11-20 11:11:11"
}
返回结果说明:以json格式返回。
字段名 | 类型 | 是否必须 | 备注 | 样例 |
---|---|---|---|---|
log_id | Long | 是 | 调用唯一ID | |
error_code | Int | 否 | 服务调用提示码,失败才返回,成功不返回 | |
error_msg | String | 否 | 服务调用提示信息,失败才返回,成功不返回 | |
result | JSON | 是 | 返回结果 | |
+successCount | Int | 是 | 成功删除记录条数 | |
+failureCount | Int | 是 | 失败删除条数 |
返回示例:
{
"error_code": 0,
"log_id": 1607341423989015,
"trace_id": "49c03db9fbbb41238f613f57e6711db2",
"result": {
"successCount": 0,
"failureCount": 0
}
}
下载事件相关图片
-
/rpc/2.0/cvsaas/v1/event/downloadImage [GET]
请求格式:form表单,key=value的键值对形式
接口说明:下载事件相关图片,对http://盒子ip:8000/app/data/storage/图片fileKey访问的图片下载。
请求说明:
参数名称 类型 是否必填 说明 fileKey String 是 待下载图片fileKey 请求示例:
fileKey:/resource/event/YMXN-BXCF-H5IB-YIWY/1637064321733_965087935020196.jpg
返回说明:
文件流,下载指定图片。
设备管理接口
添加设备
-
/rpc/2.0/cvsaas/v1/device/add [POST]
请求格式:header应为Content-Type:application/json,
请求头headers添加 Authorization:Basic YWRtaW46YWRtaW4yMDIwIQ==
(说明:YWRtaW46YWRtaW4yMDIwIQ==为 用户名:密码 进行base64编码后的结果)
接口说明:添加设备
请求说明:
参数名称 类型 是否必填 说明 deviceName String 是 设备名称。长度不超过30。 rtspAddress String 是 视频流地址。长度不超过1000。 remark String 否 备注。长度不超过255。 edgeToken String 否 盒子token tags List 否 设备tag deviceType Byte 否 设备类型
0:视频设备,1:虚拟设备,2:视频文件(用于图片上传接口使用)
默认是0deviceProtocol Byte 否 设备协议 controlTransport Byte 否 信令控制协议 mediaTransport Byte 否 媒体数据协议 请求示例:
{ "deviceName":"守护小猪窝", "rtspAddress":"rtsp://admin:admin123456@172.20.76.10:8888//Streaming/Channels/1", "remark":"监控小猪窝", "edgeToken":"xxxxxx" }
返回说明:
参数名称 类型 是否一定存在 说明 log_id Long 是 logid,调用唯一ID error_code int 是 服务调用提示码,0表示成功,非0表示失败 error_msg String 否 服务调用提示信息,失败时返回 返回示例:
{ "error_code": 0, "log_id": 1632310147794716, "trace_id": "f9b8b227a3414299a00838305eedfa4d", "result": { "deviceToken": "FZXA-C2PS-LRRK-AFXZ" } }
删除设备
-
/rpc/2.0/cvsaas/v1/device/delete [POST]
请求格式:header应为Content-Type:application/json
请求头headers添加 Authorization:Basic YWRtaW46YWRtaW4yMDIwIQ==
(说明:YWRtaW46YWRtaW4yMDIwIQ==为 用户名:密码 进行base64编码后的结果)
接口说明:删除设备
请求说明:
参数名称 类型 是否必填 说明 deviceToken String 是 设备token 请求示例:
{ "deviceToken": "KYAX-AOJ0-21DE-5853" }
返回说明:
参数名称 类型 是否一定存在 说明 log_id Long 是 logid,调用唯一ID error_code int 是 服务调用提示码,0表示成功,非0表示失败 error_msg String 否 服务调用提示信息,失败时返回 返回示例:
{ "error_code": 0, "log_id": 1632312459307804, "trace_id": "8916f9f287b649c3b95914c8c80f18f9" }
查询设备详情
-
/rpc/2.0/cvsaas/v1/device/detail [POST]
请求格式:header应为Content-Type:application/json
接口说明:查询设备详情
请求说明:
参数名称 类型 是否必填 说明 deviceToken String 是 设备token 请求示例:
{ "deviceToken": "KYAX-AOJ0-21DE-5853" }
返回说明:
参数名称 类型 是否一定存在 说明 logId Long 是 logid,调用唯一ID error_code int 是 服务调用提示码,0表示成功,非0表示失败 errorMsg String 否 服务调用提示信息,失败时返回 result jsonObject 是 返回结果体 +edgeToken String 是 盒子token +deviceType byte 是 设备类型
0:视频设备,1:虚拟设备,2:视频文件+rtspAddress String 是 视频流地址 +deviceToken String 是 设备token +deviceName String 是 设备名称 +deviceStatus int 是 设备状态码。
0:设备已离线
1:未配置技能
2: 抽帧成功
3:抽帧失败
4:图片上传成功
5:图片上传失败
6:抽帧暂停
7:不在配置的运行时间
8:(因为磁盘空间不足)抽帧停止+updateTime Date 是 设备更新时间 +remark String 是 备注 +skills List 是 技能列表 +deviceProtocol Byte 是 设备协议 +controlTransport Byte 是 信令控制协议 +mediaTransport Byte 是 媒体数据协议 返回示例:
{ "error_code": 0, "log_id": 1581236800659916, "result": { "edgeToken": "16049721218a", "deviceType": 0, "rtspAddress": "rtsp://admin:admin123456@10.255.129.41:8880//Streaming/Channels/1", "deviceToken": "TYEG-ZGPL-ABC6-TDIH", "deviceName": "xkb-test--", "deviceStatus": 2, "updateTime": 1578898920000, "remark": "", "skills": [ "电子围栏" ], "deviceProtocol": 0, "controlTransport": 0, "mediaTransport": 0 } }
查询设备列表
-
/rpc/2.0/cvsaas/v1/device/list [POST]
请求格式:header应为Content-Type:application/json
接口说明:查询设备列表
请求说明:
参数名称 类型 是否必填 说明 edgeToken String 否 盒子token pageNo int 否 页码。默认为1。 pageSize int 否 单页记录数。默认为20。 请求示例:
{ "edgeToken":"xxxxxx", "pageNo":1, "pageSize":20 }
返回说明:
参数名称 类型 是否一定存在 说明 logId Long 是 logid,调用唯一ID error_code int 是 服务调用提示码,0表示成功,非0表示失败 error_msg String 否 服务调用提示信息,失败时返回 result jsonObject 是 返回结果体 +pageNo int 是 页码 +pageSize int 是 每页记录数 +totalCount int 是 总记录数 +totalPage int 是 总页数 +data jsonArray 是 设备列表 ++edgeToken String 是 盒子token ++deviceType byte 是 设备类型
0:视频设备
1:虚拟设备
2:视频文件++rtspAddress String 是 视频流地址 ++deviceToken String 是 设备token ++deviceName String 是 设备名称 ++deviceStatus int 是 设备状态码。
0:设备已离线
1:未配置技能
2: 抽帧成功
3:抽帧失败
4:图片上传成功
5:图片上传失败
6:抽帧暂停
7:不在配置的运行时间
8:(因为磁盘空间不足)抽帧停止++updateTime Date 是 设备更新时间 ++remark String 是 备注 ++deviceProtocol Byte 是 设备协议 ++controlTransport Byte 是 信令控制协议 ++mediaTransport Byte 是 媒体数据协议 返回示例:
{ "error_code": 0, "log_id": 1632313448890845, "trace_id": "68f0651e67914ec098868717e39fc800", "result": { "pageNo": 1, "pageSize": 20, "totalCount": 3, "totalPage": 1, "data": [ { "edgeToken": "16049721218a", "deviceType": 0, "rtspAddress": "rtsp://admin:Aa123456@192.168.1.9:554", "deviceToken": "AOPU-2XCV-XS0E-EFIF", "deviceName": "守护小猪窝", "deviceStatus": 1, "updateTime": 1632313320000, "remark": "监控小猪窝", "deviceProtocol": 0, "controlTransport": 0, "mediaTransport": 0 }, { "edgeToken": "16049721218a", "deviceType": 0, "rtspAddress": "rtsp://admin:Aa123456@192.168.1.9:554", "deviceToken": "OAAN-4DLE-SFKH-LYVS", "deviceName": "2", "deviceStatus": 6, "updateTime": 1631856257000, "remark": "", "deviceProtocol": 0, "controlTransport": 0, "mediaTransport": 0 } ] } }
更新设备信息
-
/rpc/2.0/cvsaas/v1/device/update [POST]
请求格式:header应为Content-Type:application/json
请求头headers添加 Authorization:Basic YWRtaW46YWRtaW4yMDIwIQ==
(说明:YWRtaW46YWRtaW4yMDIwIQ==为 用户名:密码 进行base64编码后的结果)
接口说明:更新设备信息
请求说明:
参数名称 类型 是否必填 说明 deviceToken String 是 设备token deviceName String 否 设备名称。长度不超过30。 rtspAddress String 否 视频流地址。长度不超过1000。 deviceType Byte 否 设备类型
0:视频设备,1:虚拟设备,2:视频文件(用于图片上传接口使用)
默认是0deviceStatus Byte 否 设备状态码。
0:设备已离线
1:未配置技能
2: 抽帧成功
3:抽帧失败
4:图片上传成功
5:图片上传失败
6:抽帧暂停
7:不在配置的运行时间
8:(因为磁盘空间不足)抽帧停止remark String 否 备注。长度不超过255。 tags List 否 设备tag deviceProtocol Byte 否 设备协议 controlTransport Byte 否 信令控制协议 mediaTransport Byte 否 媒体数据协议 请求示例:
{ "deviceToken":"4REQ-XOQV-T5TV-0NDP", "deviceName":"守护小猪窝", "rtspAddress":"rtsp://admin:admin123456@172.20.76.10:8888//Streaming/Channels/1", "deviceType":0, "deviceStatus":6, "remark":"监控小猪窝是都有陌生人进入" }
返回说明:
参数名称 类型 是否一定存在 说明 log_id Long 是 logid,调用唯一ID error_code int 是 服务调用提示码,0表示成功,非0表示失败 error_msg String 否 服务调用提示信息,失败时返回 返回示例:
{ "error_code": 0, "log_id": 1632365564644903, "trace_id": "fa3ddeae6dac458bbacebfe06cd150fa" }
获取设备所绑定的技能列表
-
/rpc/2.0/cvsaas/v1/device/skill/bind/list [POST]
请求格式:header应为Content-Type:application/json
接口说明:查询设备上绑定了哪些技能
请求说明:
参数名称 类型 是否必填 说明 deviceToken String 是 设备token pageNo int 否 页码 pageSize Int 否 单页记录数 请求示例:
{ "deviceToken":"4REQ-XOQV-T5TV-0NDP" }
返回说明:
参数名称 类型 是否一定存在 说明 log_id Long 是 logid,调用唯一ID error_code int 是 服务调用提示码,0表示成功,非0表示失败 error_msg String 否 服务调用提示信息,失败时返回 result List 是 技能id数组 返回示例:
{ "error_code": 0, "log_id": 1579088750143069, "result": [ 13, 10 ] }
设备绑定技能
-
/rpc/2.0/cvsaas/v1/device/skill/bind [POST]
请求格式:header应为Content-Type:application/json
请求头headers添加 Authorization:Basic YWRtaW46YWRtaW4yMDIwIQ==
(说明:YWRtaW46YWRtaW4yMDIwIQ==为 用户名:密码 进行base64编码后的结果)
接口说明:将设备配置上对应的技能,注意该接口为增量的绑定,即假如设备A已经绑定了技能10,此时调用该接口将设备A再与技能11绑定,则最终结果是设备A绑定了[10,11]。
请求说明:
参数名称 类型 是否必填 说明 deviceToken String 是 设备token skillId Long 是 技能id,请参考技能id列表 请求示例:
{ "deviceToken":"4REQ-XOQV-T5TV-0NDP", "skillId":10 }
返回说明:
参数名称 类型 是否一定存在 说明 log_id Long 是 logid,调用唯一ID error_code int 是 服务调用提示码,0表示成功,非0表示失败 error_msg String 否 服务调用提示信息,失败时返回 返回示例:
{ "error_code": 0, "log_id": 1632370038056165, "trace_id": "808e924c71cb418c904a241159f24ccb" }
设备绑定多技能
-
/rpc/2.0/cvsaas/v1/device/skills/bind [POST]
请求格式:header应为Content-Type:application/json
请求头headers添加 Authorization:Basic YWRtaW46YWRtaW4yMDIwIQ==
(说明:YWRtaW46YWRtaW4yMDIwIQ==为 用户名:密码 进行base64编码后的结果)
接口说明:将设备配置上对应的技能,注意该接口为全量的绑定,即假如设备A已经绑定了技能10,此时调用该接口将设备A再与技能11,12绑定,则最终结果是设备A绑定了[11,12],之前的10会自动解绑。
请求说明:
参数名称 类型 是否必填 说明 deviceToken String 是 设备token skills List 是 技能id列表,请参考技能id列表 请求示例:
{ "deviceToken":"4REQ-XOQV-T5TV-0NDP", "skills":[11,12] }
返回说明:
参数名称 类型 是否一定存在 说明 log_id Long 是 logid,调用唯一ID error_code int 是 服务调用提示码,0表示成功,非0表示失败 error_msg String 否 服务调用提示信息,失败时返回 返回示例:
{ "error_code": 0, "log_id": 1632370172661180, "trace_id": "e24ad5b1a31c47158f1b43f910204bf0" }
设备解绑技能
-
/rpc/2.0/cvsaas/v1/device/skill/unbind [POST]
请求格式:header应为Content-Type:application/json
请求头headers添加 Authorization:Basic YWRtaW46YWRtaW4yMDIwIQ==
(说明:YWRtaW46YWRtaW4yMDIwIQ==为 用户名:密码 进行base64编码后的结果)
接口说明:将设备与技能解除绑定
请求说明:
参数名称 类型 是否必填 说明 deviceToken String 是 设备token skillId Long 是 技能id,请参考技能id列表 请求示例:
{ "deviceToken":"4REQ-XOQV-T5TV-0NDP", "skillId":10 }
返回说明:
参数名称 类型 是否一定存在 说明 log_id Long 是 logid,调用唯一ID error_code int 是 服务调用提示码,0表示成功,非0表示失败 error_msg String 否 服务调用提示信息,失败时返回 返回示例:
{ "error_code": 0, "log_id": 1632370413547229, "trace_id": "9f27d20cf5bb465d9c8227a54d04667c" }
获取设备绑定的技能的配置
-
/rpc/2.0/cvsaas/v1/device/skill/config/get [POST]
请求格式:header应为Content-Type:application/json
接口说明:在此先要说明一点,每个技能有一套默认的配置模板,当设备与技能进行绑定时,会根据技能的配置模版复制出一套配置与设备相关联。也就是说,同一个技能,在与不同的设备绑定时,可以有不同的配置。这个接口就是查询某技能在与某设备绑定时的配置。
请求说明:
参数名称 类型 是否必填 说明 deviceToken String 是 设备token skillId Long 是 技能id,请参考技能id列表 请求示例:
{ "deviceToken":"4REQ-XOQV-T5TV-0NDP", "skillId":10 }
返回说明:
参数名称 类型 是否一定存在 说明 log_id Long 是 logid,调用唯一ID error_code int 是 服务调用提示码,0表示成功,非0表示失败 error_msg String 否 服务调用提示信息,失败时返回 result Object 是 结果 +deviceToken String 是 请求参数中的deviceToken原样返回 +skillId Long 是 请求参数中的skillId原样返回 +configInfo String 是 技能配置,是String类型,值是json的格式,每一个技能的configInfo格式不同,格式参考文档技能配置说明 +extraction Object 否 抽帧配置 ++timePeriods[] Array 否 运行时间段 +++startTime String 否 开始时间,例如11:00 +++endTime String 否 结束时间,如果结束时间等于开始时间,则表示全天抽帧 ++image Object 否 图片抽帧配置 +++frames Int 否 帧数 +++duration Int 否 时间段 +++durationUnit Int 否 时间段单位,0:秒,1:分钟 +++durationInSeconds Int 否 时间段(换算成秒),fps即frames/durationInSeconds +areas[] Array 否 技能分析区域,如果为空,则表示分析区域为全图 ++name String 否 区域名称 ++nodes Array 否 顶点,参考返回示例 +createTime Date 否 创建时间 +updateTime Date 否 更新时间 返回示例:
{ "error_code": 0, "log_id": 1607341754739206, "trace_id": "fae1dbab65d24ab3be5f03f7f7303dad", "result": { "deviceToken": "NRVO-59QL-PUBM-BJVL", "skillId": 10, "configInfo": "{\"skillId\":10,\"skillVersion\":1,\"faceSet\":{},\"modelThresholds\":{\"faceScoreThreshold\":{\"lowerLimit\":80},\"faceQualityControl\":0,\"bodyProbabilityThreshold\":{\"lowerLimit\":0.3}},\"alarmSetting\":{\"bodyFrameAlarmControl\":0}}", "extraction": { "timePeriods": [ { "startTime": "00:00", "endTime": "00:00" } ], "image": { "frames": 1, "duration": 2, "durationUnit": 0, "durationInSeconds": 2 } }, "areas": [ { "name":"area0", "nodes": [ [ 114, 141 ], [ 1168, 83 ], [ 1195, 596 ], [ 131, 666 ] ] } ], "createTime": 1607340692000, "updateTime": 1607391091000 } }
设置设备绑定的技能的配置
-
/rpc/2.0/cvsaas/v1/device/skill/config/set [POST]
请求格式:header应为Content-Type:application/json
请求头headers添加 Authorization:Basic YWRtaW46YWRtaW4yMDIwIQ==
(说明:YWRtaW46YWRtaW4yMDIwIQ==为 用户名:密码 进行base64编码后的结果)
接口说明:在此先要说明一点,每个技能有一套默认的配置模板,当设备与技能进行绑定时,会根据技能的配置模版复制出一套配置与设备相关联。也就是说,同一个技能,在与不同的设备绑定时,可以有不同的配置。这个接口就是设置某技能在与某设备绑定时的配置。
请求说明:
参数名称 类型 是否必填 说明 deviceToken String 是 设备token skillId Long 是 技能id,请参考技能id列表 configInfo String 否 技能配置,是String类型,值是json的格式,每一个技能的configInfo格式不同 extraction Object 否 抽帧配置,具体格式请参考上个接口中的返回即可 areas Array 否 分析区域,具体格式请参考上个接口中的返回即可 createTime Date 否 创建时间 updateTime Date 否 更新时间 注:configInfo/extraction/areas不需要一起传,比如只传extraction,则只更新extraction部分,configInfo和areas则保持不变。
请求示例:
{ "deviceToken": "NRVO-59QL-PUBM-BJVL", "skillId": 10, "configInfo": "{\"skillId\":10,\"skillVersion\":1,\"faceSet\":{},\"modelThresholds\":{\"faceScoreThreshold\":{\"lowerLimit\":80},\"faceQualityControl\":0,\"bodyProbabilityThreshold\":{\"lowerLimit\":0.3}},\"alarmSetting\":{\"bodyFrameAlarmControl\":0}}", "extraction": { "timePeriods": [ { "startTime": "00:00", "endTime": "00:00" } ], "image": { "frames": 1, "duration": 2, "durationUnit": 0, "durationInSeconds": 2 } }, "areas": [ { "nodes": [ [ 114, 141 ], [ 1168, 83 ], [ 1195, 596 ], [ 131, 666 ] ] } ] }
返回说明:
参数名称 类型 是否一定存在 说明 log_id Long 是 logid,调用唯一ID error_code int 是 服务调用提示码,0表示成功,非0表示失败 error_msg String 否 服务调用提示信息,失败时返回 返回示例:
{ "error_code": 0, "log_id": 1603345106274424, "trace_id": "a8fd8896f0bd48209d94171b0909a40c" }
设备暂停
-
/rpc/2.0/cvsaas/v1/device/pause [POST]
请求格式:header应为Content-Type:application/json
请求头headers添加 Authorization:Basic YWRtaW46YWRtaW4yMDIwIQ==
(说明:YWRtaW46YWRtaW4yMDIwIQ==为 用户名:密码 进行base64编码后的结果)
接口说明:让设备暂停抽帧
请求说明:
参数名称 类型 是否必填 说明 deviceToken String 是 设备token 请求示例:
{ "deviceToken": "NRVO-59QL-PUBM-BJVL" }
返回说明:
参数名称 类型 是否一定存在 说明 log_id Long 是 logid,调用唯一ID error_code int 是 服务调用提示码,0表示成功,非0表示失败 error_msg String 否 服务调用提示信息,失败时返回 返回示例:
{ "error_code": 0, "log_id": 1603345106274424 }
设备恢复
-
/rpc/2.0/cvsaas/v1/device/resume [POST]
请求格式:header应为Content-Type:application/json
请求头headers添加 Authorization:Basic YWRtaW46YWRtaW4yMDIwIQ==
(说明:YWRtaW46YWRtaW4yMDIwIQ==为 用户名:密码 进行base64编码后的结果)
接口说明:让设备重新开始抽帧
请求说明:
参数名称 类型 是否必填 说明 deviceToken String 是 设备token 请求示例:
{ "deviceToken": "NRVO-59QL-PUBM-BJVL" }
返回说明:
参数名称 类型 是否一定存在 说明 log_id Long 是 logid,调用唯一ID error_code int 是 服务调用提示码,0表示成功,非0表示失败 error_msg String 否 服务调用提示信息,失败时返回 返回示例:
{ "error_code": 0, "log_id": 1603345106274424 }
上传图片
-
/rpc/2.0/cvsaas/v1/resource/upload [POST]
请求格式:header应为Content-Type:application/json
接口说明:上传设备图片
请求说明:
参数名称 类型 是否必填 说明 resource String 是 图片base64(不包含协议头) ,图片大小不能超过4M,
图片类型支持:jpeg、jpg、png、bmpresourceType String 是 资源类型:base64 deviceToken String 是 设备token correlation String 否 业务方关联信息,默认为图片hash值 请求示例:
{ "resource":"XXXX", "resourceType":"base64", "deviceToken":"XXXX-XXXX-XXXX-XXXX", "correlation":"class_id_1" }
返回说明:
参数名称 类型 是否一定存在 说明 log_id Long 是 log_id,请求唯一标识。 error_code String 是 服务调用提示码,0表示成功,非0表示失败 error_msg String 否 服务调用提示信息,失败时返回 返回示例:
{ "error_code":0, "log_id":15525510868630003, }
人脸库相关接口
添加用户人脸
-
/rpc/2.0/cvsaas/v1/faceset/face/add [POST]
请求格式:header应为Content-Type:application/json
请求头headers添加 Authorization:Basic YWRtaW46YWRtaW4yMDIwIQ==
(说明:YWRtaW46YWRtaW4yMDIwIQ==为 用户名:密码 进行base64编码后的结果)
接口说明:增加用户的人脸图片信息
请求说明:
参数名称 类型 是否必填 说明 image String 是 用户图片信息(总数据大小应小于10M)。
图片的base64值,base64编码后的图片数据(编码后的图片大小不超过2M)。groupId String 是 用户组ID,标识一组用户组(由数字、字母、下划线组成,长度:1~48(数据库长度为1024))。 userId String 是 用户ID(由数字、字母、下划线组成,长度1~20(数据库长度为1024)) 请求示例:
{ "image":"/9j/4AAQSkZJRgABAQAAAQABAADs...", "groupId":"pig_face", "userId":"pig_1" }
返回说明:
参数名称 类型 是否一定存在 说明 log_id Long 是 log_id,请求唯一标识。 error_code String 是 服务调用提示码,0表示成功,非0表示失败 error_msg String 否 服务调用提示信息,失败时返回 返回示例:
{ "log_id":1572936858518049, "error_code":0 }
删除用户人脸
-
/rpc/2.0/cvsaas/v1/faceset/face/del [POST]
请求格式:header应为Content-Type:application/json
请求头headers添加 Authorization:Basic YWRtaW46YWRtaW4yMDIwIQ==
(说明:YWRtaW46YWRtaW4yMDIwIQ==为 用户名:密码 进行base64编码后的结果)
接口说明:删除用户人脸图片(删除用户的某一张人脸,如果该用户只有一张人脸图片,则同时删除用户)
请求说明:
参数名称 类型 是否必填 说明 groupId String 是 用户组ID,标识一组用户组(由数字、字母、下划线组成,长度:1~48(数据库长度为1024))。 userId String 是 用户ID(由数字、字母、下划线组成,长度1~20(数据库长度为1024)) faceToken String 是 人脸图片token,人脸图片的唯一标识 请求示例:
{ "groupId":"pig_face", "userId":"pig_2", "faceToken":"86b8e1ed31bf87b661f31887cdfc1677" }
返回说明:
参数名称 类型 是否一定存在 说明 log_id Long 是 log_id,请求唯一标识。 error_code String 是 服务调用提示码,0表示成功,非0表示失败 error_msg String 否 服务调用提示信息,失败时返回 返回示例:
{ "log_id":1572937218173051, "error_code":0 }
查询用户人脸列表
-
/rpc/2.0/cvsaas/v1/faceset/face/getlist [POST]
请求格式:header应为Content-Type:application/json;
接口说明:查询用户人脸列表
请求说明:
参数名称 类型 是否必填 说明 groupId String 是 用户组ID,标识一组用户组(由数字、字母、下划线组成,长度:1~48(数据库长度为1024))。 userId String 是 用户ID(由数字、字母、下划线组成,长度1~20(数据库长度为1024)) 请求示例:
{ "groupId":"pig_face", "userId":"pig_1" }
返回说明:
参数名称 类型 是否一定存在 说明 log_id Long 是 log_id,请求唯一标识。 error_code String 是 服务调用提示码,0表示成功,非0表示失败 error_msg String 否 服务调用提示信息,失败时返回 result jsonObject 否 人脸图片信息列表 +faceImage String 是 人脸图片 +faceToken String 是 人脸token,人脸图片的唯一标识 +createTime String 是 人脸创建时间 返回示例:
{ "log_id":1572936303776047, "error_code":0, "result":[ { "faceImage":"/9j/4AAQSkZJRgABAQAAAQABAAD...", "faceToken":"86b8e1ed31bf87b661f31887cdfc1677", "createTime":"2019-11-22 00:00:00" } ] }
创建用户组
-
//rpc/2.0/cvsaas/v1/faceset/group/add [POST]
请求格式:header应为Content-Type:application/json
请求头headers添加 Authorization:Basic YWRtaW46YWRtaW4yMDIwIQ==
(说明:YWRtaW46YWRtaW4yMDIwIQ==为 用户名:密码 进行base64编码后的结果)
接口说明:创建用户组
请求说明:
参数名称 类型 是否必填 说明 groupId String 是 用户组ID,标识一组用户组(由数字、字母、下划线组成,长度:1~48(数据库长度为1024)) groupName jsonArray 是 用户组名称(长度:1~32(数据库长度为1024)) groupRemark String 否 用户组备注(长度:0~128(数据库长度为1024)) 请求示例:
{ "groupId":"pig_user", "groupName":"小猪组", "groupRemark":"小猪用户" }
返回说明:
参数名称 类型 是否一定存在 说明 log_id Long 是 log_id,请求唯一标识。 error_code String 是 服务调用提示码,0表示成功,非0表示失败 error_msg String 否 服务调用提示信息,失败时返回 返回示例:
{ "log_id":1572937218173051, "error_code":0 }
删除用户组
-
/rpc/2.0/cvsaas/v1/faceset/group/del [POST]
请求格式:header应为Content-Type:application/json
请求头headers添加 Authorization:Basic YWRtaW46YWRtaW4yMDIwIQ==
(说明:YWRtaW46YWRtaW4yMDIwIQ==为 用户名:密码 进行base64编码后的结果)
接口说明:删除用户组
请求说明:
参数名称 类型 是否必填 说明 groupId String 是 用户组ID,标识一组用户组(由数字、字母、下划线组成,长度:1~48(数据库长度为1024))。 请求示例:
{ "groupId":"pig_face" }
返回说明:
参数名称 类型 是否一定存在 说明 log_id Long 是 log_id,请求唯一标识。 error_code String 是 服务调用提示码,0表示成功,非0表示失败 error_msg String 否 服务调用提示信息,失败时返回 返回示例:
{ "log_id":1572937372320054, "error_code":0 }
查询全量用户组
-
/rpc/2.0/cvsaas/v1/faceset/group/getall [POST]
请求格式:header应为Content-Type:application/json
接口说明:查询所有用户组,按照创建时间倒序排列
请求说明:
参数名称 类型 是否必填 说明 edgeToken String 否 盒子token 请求示例:
{ "edgeToken":"xxxxxxx" }
返回说明:
参数名称 类型 是否一定存在 说明 log_id Long 是 log_id,请求唯一标识。 error_code String 是 服务调用提示码,0表示成功,非0表示失败 error_msg String 否 服务调用提示信息,失败时返回 result jsonObject 否 查询结果 +groupId String 是 用户组ID +groupName String 是 用户组名称 +groupRemark String 是 用户组备注 +createTime String 是 用户组创建时间 +version Long 是 用户组版本 返回示例:
{ "error_code": 0, "log_id": 1632388347387203, "trace_id": "3403a278b49249688152c8489722f173", "result": [ { "groupId": "pig_user", "groupName": "小猪组", "groupRemark": "小猪用户", "createTime": "2021-09-23 09:12:25", "version": 0 }, { "groupId": "abc", "groupName": "111", "groupRemark": "", "createTime": "2021-09-23 09:02:00", "version": 0 } ] }
查询用户组列表
-
/rpc/2.0/cvsaas/v1/faceset/group/getlist [POST]
请求格式:header应为Content-Type:application/json
接口说明:查询用户组列表(可分页查询),按照创建时间倒序排列
请求说明:
参数名称 类型 是否必填 说明 pageNo int 否 页码(默认为1) pageSize int 否 每页记录数(默认为20,最大为200) 请求示例:
{ "pageNo":1, "pageSize":20 }
返回说明:
参数名称 类型 是否一定存在 说明 log_id Long 是 log_id,请求唯一标识。 error_code String 是 服务调用提示码,0表示成功,非0表示失败 error_msg String 否 服务调用提示信息,失败时返回 result jsonObject 否 查询结果 +totalCount int 是 总记录数 +totalPage Int 是 总页数 +pageNo int 是 页码 +pageSize int 是 每页记录数 +data jsonArray 是 用户组列表 ++groupId String 是 用户组ID ++groupName String 是 用户组名称 ++groupRemark String 是 用户组备注 ++createTime String 是 用户组创建时间 +version Long 是 用户组版本 返回示例:
{ "error_code": 0, "log_id": 1632388441533206, "trace_id": "b11ed2a0b10544a2851fccbb6e966682", "result": { "pageNo": 1, "pageSize": 20, "totalCount": 2, "totalPage": 1, "data": [ { "groupId": "pig_user", "groupName": "小猪组", "groupRemark": "小猪用户", "createTime": "2021-09-23 09:12:25", "version": 0 }, { "groupId": "abc", "groupName": "111", "groupRemark": "", "createTime": "2021-09-23 09:02:00", "version": 0 } ] } }
查询用户列表
-
/rpc/2.0/cvsaas/v1/faceset/group/getuserlist [POST]
请求格式:header应为Content-Type:application/json
接口说明:查询用户组列表(可分页查询),按照创建时间倒序排列
请求说明:
参数名称 类型 是否必填 说明 groupId String 是 用户组ID,标识一组用户组(由数字、字母、下划线组成,长度:1~48(数据库长度为1024))。 pageNo int 否 页码(默认为1) pageSize int 否 每页记录数(默认为20,最大为200) userName String 否 用户组name 请求示例:
{ "groupId":"pig_face", "pageNo":1, "pageSize":20, "userName":"xxxx" }
返回说明:
参数名称 类型 是否一定存在 说明 log_id Long 是 log_id,请求唯一标识。 error_code String 是 服务调用提示码,0表示成功,非0表示失败 error_msg String 否 服务调用提示信息,失败时返回 result jsonObject 否 查询结果 +totalCount int 是 总记录数 +totalPage Int 是 总页数 +pageNo int 是 页码 +pageSize int 是 每页记录数 +data jsonArray 是 用户组列表 ++userId String 是 用户ID ++userName String 是 用户名称 ++userRemark String 是 用户备注 ++createTime String 是 用户创建时间 返回示例:
{ "log_id":1572935213678040, "error_code":0, "result":{ "totalCount":2, "totalPage":1, "pageNo":1, "pageSize":20, "data":[ { "userId":"pig_1", "userName":"小猪1号", "userRemark":"小猪崽", "createTime":"2019-11-22 00:00:00" }, { "userId":"pig_2", "userName":"小猪2号", "userRemark":"小猪崽", "createTime":"2019-11-22 00:00:00" } ] } }
注册用户
-
/rpc/2.0/cvsaas/v1/faceset/user/add [POST]
请求格式:header应为Content-Type:application/json
请求头headers添加 Authorization:Basic YWRtaW46YWRtaW4yMDIwIQ==
(说明:YWRtaW46YWRtaW4yMDIwIQ==为 用户名:密码 进行base64编码后的结果)
接口说明:在用户组中新增用户信息,并保存用户人脸图片
请求说明:
参数名称 类型 是否必填 说明 userId String 是 用户ID(由数字、字母、下划线组成,长度1~20(数据库长度为1024)) userName String 是 用户名称(长度:1~32(数据库长度为1024)) userImage String 是 用户图片信息(总数据大小应小于10M)。
图片的base64值,base64编码后的图片数据(编码后的图片大小不超过2M)。userRemark String 是 用户组备注(长度:0~128(数据库长度为1024)) groupId String 是 用户组ID,标识一组用户组(由数字、字母、下划线组成,长度:1~48(数据库长度为1024))。 请求示例:
{ "userId":"pig_1", "userName":"小猪1号", "userImage":"/9j/4AAQSkZJRgABAQAAAQABAADs...", "userRemark":"小猪崽", "groupId":"pig_face" }
返回说明:
参数名称 类型 是否一定存在 说明 log_id Long 是 log_id,请求唯一标识。 error_code String 是 服务调用提示码,0表示成功,非0表示失败 error_msg String 否 服务调用提示信息,失败时返回 返回示例:
{ "log_id":1572927268813037, "error_code":0 }
删除用户
-
/rpc/2.0/cvsaas/v1/faceset/user/del [POST]
请求格式:header应为Content-Type:application/json
请求头headers添加 Authorization:Basic YWRtaW46YWRtaW4yMDIwIQ==
(说明:YWRtaW46YWRtaW4yMDIwIQ==为 用户名:密码 进行base64编码后的结果)
接口说明:删除用户
请求说明:
参数名称 类型 是否必填 说明 groupId String 是 用户组ID,标识一组用户组(由数字、字母、下划线组成,长度:1~48(数据库长度为1024))。 userId String 是 用户ID(由数字、字母、下划线组成,长度1~20(数据库长度为1024)) 请求示例:
{ "groupId":"pig_face", "userId":"pig_2" }
返回说明:
参数名称 类型 是否一定存在 说明 log_id Long 是 log_id,请求唯一标识。 error_code String 是 服务调用提示码,0表示成功,非0表示失败 error_msg String 否 服务调用提示信息,失败时返回 返回示例:
{ "log_id":1572935959767041, "error_code":0 }
系统配置相关接口
获取系统配置
-
/rpc/2.0/cvsaas/v1/config/get [POST]
请求格式:header应为Content-Type:application/json
接口说明:获取系统配置
请求说明:
参数名称 类型 是否必填 说明 edgeToken String 是 盒子token group String 是 配置组,配置组包含了一批关联的配置,目前可选为:event-notify,event-cleaner 请求示例:
{ "edgeToken":"xxxxx", "group":"event-notify" }
返回说明:
参数名称 类型 是否一定存在 说明 log_id Long 是 log_id,请求唯一标识。 error_code String 是 服务调用提示码,0表示成功,非0表示失败 error_msg String 否 服务调用提示信息,失败时返回 result Object 否 各配置项的值,根据group不同而不同 +retry-interval String 否 重试间隔 +retry-times String 否 重试次数,如果往url推送失败,需重试几次,默认0 +enabled String 否 事件通知:是否启用 +url String 否 事件通知:url 返回示例:
{ "error_code": 0, "log_id": 1607343358450854, "trace_id": "4e2c8da82e6b49918a7960da9dee615c", "result": { "retry-interval": "6", "retry-times": "1", "enabled": "true", "url": "http://172.20.76.9:8002/easymonitor/edge/#/eventsetting" } }
设置系统配置
-
/rpc/2.0/cvsaas/v1/config/set [POST]
请求格式:header应为Content-Type:application/json
请求头headers添加 Authorization:Basic YWRtaW46YWRtaW4yMDIwIQ==
(说明:YWRtaW46YWRtaW4yMDIwIQ==为 用户名:密码 进行base64编码后的结果)
接口说明:获取系统配置
请求说明:
参数名称 类型 是否必填 说明 edgeToken String 是 盒子token group String 是 配置组,配置组包含了一批关联的配置,目前可选为:event-notify,event-cleaner name String 是 配置名,比如retry-times value String 是 配置值,比如11 请求示例:
{ "edgeToken":"*****", "group":"event-notify", "name":"retry-interval", "value":"6" }
返回说明:
参数名称 类型 是否一定存在 说明 log_id Long 是 log_id,请求唯一标识。 error_code String 是 服务调用提示码,0表示成功,非0表示失败 error_msg String 否 服务调用提示信息,失败时返回 返回示例:
{ "error_code": 0, "log_id": 1607343358450854, "trace_id": "4e2c8da82e6b49918a7960da9dee615c" }
配置项说明
# | 组 | 配置名 | 默认值 | 说明 |
---|---|---|---|---|
1 | event-notify | enabled | false | 是否启用事件推送 |
2 | event-notify | url | 推送地址,系统将向该地址发起post请求 | |
3 | event-notify | retry-times | 0 | 重试次数,如果往url推送失败,需重试几次,默认0,举例: 1.如果retry-times==0,则先推送1次,失败后重试0次; 2.如果retry-times==2,则先推送1次,失败后重试2次 |
4 | event-notify | retry-interval | 0 | 重试间隔,单位秒 |
5 | event-cleaner | max-retain-time | 720 | 事件最大保留时间,单位小时 |
推送说明
当成功调用接口设置event-notify,且enabled为true时,系统中如果再产生告警事件,会向url的地址发送一个http POST请求,请求报文为json格式,携带如下参数:
参数名称 | 类型 | 是否一定存在 | 说明 |
---|---|---|---|
eventId | Long | 是 | 事件id |
skillId | int | 是 | 技能id |
deviceToken | String | 是 | 设备token |
deviceName | String | 是 | 设备名称 |
skillInput | Map | 是 | 技能输入 |
skillOutput | Map | 是 | 技能输出 |
originImage | String | 是 | 原图base64 |
renderImage | String | 是 | 渲染图片base64 |
推送示例:
{
"eventId":88120,
"deviceToken":"PABB-03O5-JYIP-LQEU",
"deviceName":"test1",
"skillId":10,
"skillInput":{
"skillName":"电子围栏",
"ext":{
"skillModel":{
"0:1:0":{
"id":1,
"name":"人体检测",
"userId":"system",
"vendor":0,
"vendorModelId":1,
"vendorModelVersionId":0,
"runEnvironment":0,
"serviceAddress":"http://localhost:8082"
}
},
"alarmContext":{
"mode":"INSTANT"
}
},
"requestTime":1627634242340,
"skillId":10,
"debug":false,
"resource":{
"type":"object_storage",
"path":"/resource/origin/PABB-03O5-JYIP-LQEU/1627634242339_2406068456234.jpg",
"areas":[
{
"name":"area0",
"nodes":[
[
10,
101
],
[
1838,
98
],
[
1865,
1001
],
[
48,
1021
]
]
}
]
},
"appId":"10000_0",
"customParameter":{
"skillId":10,
"modelThresholds":{
"bodyProbabilityThreshold":{
"lowerLimit":0.3
}
},
"skillVersion":1,
"alarmSetting":{
"bodyFrameAlarmControl":0
}
},
"deviceName":"test1",
"userId":"10000_0",
"sync":false,
"deviceToken":"PABB-03O5-JYIP-LQEU"
},
"skillOutput":{
"persons":[
{
"left":1318,
"top":671,
"width":115,
"height":335,
"score":0.45007309317588806
}
],
"normal":false
},
"originImage":"",
"renderImage": ""
}
业务系统接收到推送请求后,应返回(code==0表示接收推送成功):
{
"code":0,
"message":"success"
}
如果业务系统无响应,或者code!=0,则会根据retry-times和retry-interval进行重试推送。