异步控制¶
即 Invoke Asynchronous Multipoint Service,执行异步多点控制。
请求格式¶
PUT http://{apigw-address}/edge-service/v1/commands?action=invokeServiceAsync&orgId={}
请求参数(URI)¶
名称 |
位置 (Path/Query) |
是否必须 |
数据类型 |
描述 |
---|---|---|---|---|
orgId |
Query |
是 |
String |
资产所属的组织ID。 如何获取orgId信息>> |
action |
Query |
是 |
String |
invokeServiceAsync |
请求参数(Body)¶
名称 |
是否必须 |
数据类型 |
描述 |
---|---|---|---|
data |
True |
Object |
请求数据的object,结构参见下表 |
名称 |
是否必须 |
数据类型 |
描述 |
---|---|---|---|
requestId |
True |
String |
请求ID。 |
orgId |
True |
String |
OU的ID |
callType |
False |
String |
值必须为 |
controlChannelId |
True |
String |
已创建的控制通道ID。 |
productKey |
True |
String |
测点所属产品的product key,用于与 |
deviceKey |
True |
String |
测点所属产品的device key,用于与 |
assetId |
True |
String |
测点所属设备资产的assetId,用于指定一个设备资产 |
serviceId |
True |
String |
调用的服务ID |
callbackUrl |
False |
String |
回调函数URL |
inputData |
False |
Object |
输入值的键值对构成的object结构 |
timeout |
False |
long |
超时时间,单位为毫秒,默认30000,最大300000 |
gmtServiceRequest |
False |
long |
控制请求时间,如果不指定,则使用系统时间戳 |
备注
在 data `` 对象中,你可以只使用 ``assetId
, 或者使用 productKey
+ deviceKey
的组合的方法来确定一个设备资产。如果在 subscribePointList `` 中三个参数都存在。则以 ``assetId
来确定设备。
响应参数¶
名称 |
数据类型 |
描述 |
---|---|---|
status |
Int |
响应状态码 |
msg |
String |
返回消息,用于描述响应结果 |
submsg |
String |
返回子消息,用于描述响应结果 |
data |
Object |
响应数据object,结构见下表 |
名称 |
数据类型 |
描述 |
---|---|---|
requestId |
String |
服务请求ID |
messageId |
String |
服务消息ID |
requestMethod |
String |
服务请求方法 |
callType |
String |
服务请求类型,值 |
controlChannelId |
String |
控制通道ID |
productKey |
String |
测点所属产品的product key,用于与 |
deviceKey |
String |
测点所属产品的device key,用于与 |
assetId |
String |
测点所属设备资产的asset ID,用于指定一个设备资产 |
serviceName |
String |
服务名 |
serviceId |
String |
服务ID |
callbackUrl |
String |
回调函数URL |
inputData |
Object |
输入数据键值对构成的object |
outputData |
Object |
输出数据键值对构成的object |
status |
Int |
控制状态,0表示成功,其他表示失败 |
msg |
String |
返回消息,用于描述 |
submsg |
String |
返回子消息,用于描述 |
timeout |
long |
超时时间 |
gmtServiceRequest |
long |
服务请求时间 |
gmtServiceReply |
long |
服务响应时间 |
gmtDeviceReply |
long |
设备响应时间 |
备注
在 subscribePointList `` 对象中,优先以 ``assetId
来确定设备。如果 assetId
不存在,则以 deviceKey
+ productKey
的组合来确定设备。
输入输出示例¶
请求示例¶
PUT http://{apigw-address}/edge-service/v1/commands?action=invokeServiceAsync&orgId={}
{
"data":[
{
"requestId":"dfsadfdsafdsaf",
"orgId":null,
"callType":"ASYNC",
"controlChannelId":"DATASVC.CONTROL.afdasfasdf",
"productKey":"dfasdf",
"deviceKey":"dsfa",
"assetId":"aaa",
"serviceId":"bbb",
"callbackUrl":null,
"inputData":{
"arg":10
},
"timeout":30000,
"gmtServiceRequest":132132465464
},
{
"requestId":"erwerwradf",
"orgId":null,
"callType":"ASYNC",
"controlChannelId":"DATASVC.CONTROL.afdasfasdf",
"productKey":"dfasdf",
"deviceKey":"dsfa",
"assetId":"aaa",
"serviceId":"ccc",
"callbackUrl":null,
"inputData":{
"arg":10
},
"timeout":30000,
"gmtServiceRequest":132132465464
}
]
}
响应示例¶
{
"status":0,
"msg":"Success",
"submsg":null,
"data":[
{
"requestId":"testRequestId1",
"messageId":null,
"requestMethod":"thing.service.d",
"callType":"ASYNC",
"controlChannelId":"DATASVC.CONTROL.controlChannelId1",
"productKey":"6Bt59ySj",
"deviceKey":"zBAofs6D4s",
"assetId":"YCdyvNmc",
"serviceName":"testService",
"serviceId":"d",
"callbackUrl":null,
"inputData":{
"testArg":1.0
},
"outputData":{
},
"status":1000,
"msg":"para error",
"submsg":"para error",
"timeout":30000,
"gmtServiceRequest":1536638267507,
"gmtServiceReply":1536638267509,
"gmtDeviceReply":-1
},
{
"requestId":"testRequestId2",
"messageId":null,
"requestMethod":"thing.service.d",
"callType":"ASYNC",
"controlChannelId":"DATASVC.CONTROL.controlChannelId1",
"productKey":"6Bt59ySj",
"deviceKey":"zBAofs6D4s",
"assetId":"YCdyvNmc",
"serviceName":"testService",
"serviceId":"d",
"callbackUrl":null,
"inputData":{
"testArg":1.0
},
"outputData":{
},
"status":1000,
"msg":"para error",
"submsg":"para error",
"timeout":30000,
"gmtServiceRequest":1536638267507,
"gmtServiceReply":1536638267509,
"gmtDeviceReply":-1
}
]
}