异步控制¶
即 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 | 值必须为 ASYNC ,表示异步模式 |
controlChannelId | True | String | 已创建的控制通道ID。 |
productKey | True | String | 测点所属产品的product key,用于与 deviceKey 一起使用以指定一个设备资产 |
deviceKey | True | String | 测点所属产品的device key,用于与 productKey 一起使用以指定一个设备资产 |
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 | 服务请求类型,值 SYNC 表示同步, ASYNC 表示异步 |
controlChannelId | String | 控制通道ID |
productKey | String | 测点所属产品的product key,用于与 deviceKey 一起使用以指定一个设备资产 |
deviceKey | String | 测点所属产品的device key,用于与 productKey 一起使用以指定一个设备资产 |
assetId | String | 测点所属设备资产的asset ID,用于指定一个设备资产 |
serviceName | String | 服务名 |
serviceId | String | 服务ID |
callbackUrl | String | 回调函数URL |
inputData | Object | 输入数据键值对构成的object |
outputData | Object | 输出数据键值对构成的object |
status | Int | 控制状态,0表示成功,其他表示失败 |
msg | String | 返回消息,用于描述 status |
submsg | String | 返回子消息,用于描述 status |
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
}
]
}