创建批量任务
接口说明
应用服务器若需要对多个设备进行批量操作时,可调用此接口创建设备的批量操作任务,当前仅支持给批量设备下发缓存命令。
URI
|
请求方法 |
POST |
|---|---|
|
URI |
/iocm/app/batchtask/v1.1.0/tasks |
|
传输协议 |
HTTPS |
请求参数
|
参数 |
必选/可选 |
类型 |
位置 |
描述 |
|---|---|---|---|---|
|
app_key |
必选 |
String |
header |
访问物联网平台的应用ID,在物联网平台创建应用时由平台分配获得。 |
|
Authorization |
必选 |
String |
header |
访问物联网平台的认证信息,值为“Bearer {accessToken}”,其中{accessToken}为调用鉴权接口返回的accessToken。 |
|
appId |
必选 |
String(64) |
body |
批量任务所属的应用ID,当创建授权应用下的批量任务时才需要填写。 |
|
param |
必选 |
body |
任务详细参数,根据taskType任务类型的不同对应不同类型参数。 |
|
|
taskName |
必选 |
String |
body |
任务名称,最大长度256字符。 |
|
taskType |
必选 |
String |
body |
任务类型,取值范围:DeviceCmd。 |
|
timeout |
必选 |
Integer |
body |
任务超时时长,单位分钟,范围为10到2880。 |
|
tags |
可选 |
List<TagDTO2> |
body |
标签列表。 |
|
参数 |
必选/可选 |
类型 |
位置 |
描述 |
|---|---|---|---|---|
|
type |
必选 |
String |
body |
批量命令类型,取值范围: DeviceList/DeviceType/DeviceArea/GroupList/Broadcast/GroupIdList。 |
|
deviceList |
条件必选 |
List<String> |
body |
设备ID列表,type为DeviceList时需要填写。 |
|
deviceType |
条件必选 |
String |
body |
设备类型,type为DeviceType时需要填写,其值应当与profile中定义的一致。 |
|
manufacturerId |
条件可选 |
String |
body |
厂商ID,type为DeviceType时可填写,其值应当与profile中定义的一致。 |
|
model |
条件可选 |
String |
body |
设备型号,type为DeviceType时可填写,其值应当与profile中定义的一致。 |
|
deviceLocation |
条件必选 |
String |
body |
设备位置,type为DeviceArea时需要填写。 |
|
groupList |
条件必选 |
List<String> |
body |
群组Id列表或设备组名称列表,type为GroupIdList时需要填写群组Id,type为GroupList时需要填写设备组名称。 |
|
command |
必选 |
body |
命令信息。 |
|
|
callbackUrl |
可选 |
String |
body |
命令执行结果的推送地址。 |
|
maxRetransmit |
可选 |
Integer(0~3) |
body |
命令下发最大重传次数,取值范围:0-3。 |
|
参数 |
必选/可选 |
类型 |
位置 |
描述 |
|---|---|---|---|---|
|
serviceId |
必选 |
String(1-64) |
body |
命令对应的服务ID,要与profile中定义的serviceId保持一致。 |
|
method |
必选 |
String(1-128) |
body |
服务下具体的命令名称,要与profile中定义的命令名保持一致。 |
|
paras |
可选 |
ObjectNode |
body |
命令参数,jsonString格式,里面是一个个健值对,每个健都是profile中命令的参数名(paraName),具体格式需要应用和设备约定。 |
|
参数 |
必选/可选 |
类型 |
位置 |
描述 |
|---|---|---|---|---|
|
tagName |
必选 |
String(1-128) |
body |
标签名称。 |
|
tagValue |
必选 |
String(1-1024) |
body |
标签值。 |
响应参数
Status Code: 200 OK
|
参数 |
类型 |
描述 |
|---|---|---|
|
taskID |
String |
批量任务的ID。 |
请求示例
POST https://{host}:{port}/iocm/app/batchtask/v1.1.0/tasks
Content-Type: application/json
app_key: ******
Authorization: Bearer ******
{
"appId": "******",
"timeout": 1000,
"taskName": "******",
"taskType": "DeviceCmd",
"param": {
"type": "******",
"deviceList": [
"********",
"********",
"********"
],
"command": {
"serviceId": "********",
"method": "********",
"paras": {
"paraName1": "paraValue1",
"paraName2": "paraValue2"
}
}
}
}
正常响应示例
Status Code: 200 OK
Content-Type: application/json
{
"taskID": "******"
}
错误码
|
Http状态码 |
错误码 |
错误描述 |
说明 |
|---|---|---|---|
|
200 |
100203 |
The application is not existed. |
应用不存在。 处理建议:
|
|
200 |
101001 |
Resource doesn't exist. |
资源不存在。 |
|
200 |
105001 |
The batchTask count has reached the limit. |
单个用户未完成的批量任务数大于等于1个时,返回任务达到数量限制。 |
|
200 |
105002 |
The batchTask name has exist. |
任务名字已存在。 处理建议:修改任务名称。 |
|
400 |
105201 |
The tagName and tagValue has been used on the platform. |
平台已使用tagName和tagValue 。 |
|
400 |
50400 |
The input is invalid. |
输入参数无效。 处理建议:请检查接口调用请求中携带参数的合法性。 |
|
401 |
100028 |
The user has no right. |
用户没有操作权限。 |
|
403 |
100203 |
The application is not existed. |
应用不存在。 处理建议:
|
|
403 |
100217 |
The application hasn't been authorized. |
应用未被授权。 处理建议:若非应用授权场景,请确认请求参数中的appId为空。 |
|
403 |
1010009 |
app throttle exceed. |
应用调用接口过于频繁,超过流控值(默认值是100次/60s)。 处理建议:联系物联网平台维护人员调大流控阈值或者控制接口的调用频率。 |
|
403 |
1010005 |
Invalid access token or appId. |
错误的token信息。 处理建议:请检查接口请求中所携带的accessToken是否有误。 |
|
404 |
105202 |
The tag is not existed. |
标签不存在。 |
|
500 |
100203 |
The application is not existed. |
应用不存在。 处理建议:
|
|
500 |
50252 |
Internal server error. |
服务器运行内部错误。 处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。 |
Last Article: 批量处理
Next Article: 查询指定批量任务信息
Did this article solve your problem?
Thank you for your score!Your feedback would help us improve the website.