异步控制

即 Invoke Asynchronous Multipoint Service,执行异步多点控制。

请求格式

PUT http://{apigw-address}/edge-service/v1/commands?action=invokeServiceAsync&orgId={}

请求参数(URI)

请求参数 (URI)

名称

位置 (Path/Query)

是否必须

数据类型

描述

orgId

Query

String

资产所属的组织ID。 如何获取orgId信息>>

action

Query

String

invokeServiceAsync

请求参数(Body)

请求参数 (Body)

名称

是否必须

数据类型

描述

data

True

Object

请求数据的object,结构参见下表

data结构

名称

是否必须

数据类型

描述

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,结构见下表

data结构体

名称

数据类型

描述

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
        }
    ]
}