Asynchronous Control¶
The Invoke Asynchronous Multipoint Service executes the asynchronous multi-point control.
Request Format¶
PUT http://{apigw-address}/dataService/devices/multiInvoke?orgId={}
Request Parameters (URI)¶
Name | Location (Path/Query) | Required or not | Data type | Description |
---|---|---|---|---|
orgId | Query | Yes | String | Organization ID which the asset belongs to. How to get orgId>> |
Request Parameters (Body)¶
Name | Required or not | Data type | Description |
---|---|---|---|
data | True | Object | Request data object. See the table below for its structure |
Name | Required or not | Data type | Description |
---|---|---|---|
requestId | True | String | Request ID. |
orgId | True | String | OU ID |
callType | False | String | Its value must be ASYNC, which indicates asynchronous mode |
controlChannelId | True | String | Created control channel ID. |
productKey | True | String | Product key of the product that the measurement point belongs to, which is used to specify a device asset along with the deviceKey |
deviceKey | True | String | Device key of the product that the measurement point belongs to, which is used to specify a device asset along with the productKey |
assetId | True | String | Asset ID of the device asset that the measurement point belongs to, which is used to specify a device asset |
serviceId | True | String | Invoked service ID |
callbackUrl | False | String | Callback function URL |
inputData | False | Object | JSON object consisting of the key-value pairs of input value |
timeout | False | long | Timetout in milliseconds. Its default value is 30000 and maximum value 300000. |
gmtServiceRequest | False | long | Timestamp when the request is made. If it is not specified, the system timestamp will be used. |
Note
In the data
object, you may use either `assetId
or the combination of productKey
and deviceKey
to identify a device asset. If all the three parameters exist in the subscribePointList
, the assetId
will be used to identify the device.
Response Parameters¶
Name | Data type | Description |
---|---|---|
status | Int | Status code |
msg | String | Response message |
submsg | String | Response sub-message |
data | Object | Response data object, the structure of which is in the table below |
Name | Data type | Description |
---|---|---|
requestId | String | Service request ID |
messageId | String | Service message ID |
requestMethod | String | Service request method |
callType | String | Service request type, where SYNC means synchronous while the value ASYNC means asynchronous |
controlChannelId | String | Control channel ID |
productKey | String | Product key of the product that the measurement point belongs to, which is used to specify a device asset along with the deviceKey |
deviceKey | String | Device key of the product that the measurement point belongs to, which is used to specify a device asset along with the productKey |
assetId | String | Asset ID of the device asset that the measurement point belongs to, which is used to specify a device asset |
serviceName | String | Service name |
serviceId | String | Service ID |
callbackUrl | String | Callback function URL |
inputData | Object | Object consisting of the key-value pairs of input data |
outputData | Object | Object consisting of the key-value pairs of output data |
status | Int | Control status, where 0 means success and other values mean failure |
msg | String | Response message |
submsg | String | Response sub-message |
timeout | long | Timeout |
gmtServiceRequest | long | Service request time |
gmtServiceReply | long | Service response time |
gmtDeviceReply | long | Device response time |
Note
In the subscribePointList object, the assetId is preferred to identify a device. If assetId does not exist, the combination of deviceKey and productKey will be used to identify a device.
Samples¶
Request Sample¶
PUT http://{apigw-address}/dataService/devices/multiInvoke?orgId=o15434988531231
{
"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
}
]
}
Response Sample¶
{
"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
}
]
}