Skip to content

调用设备功能 (POST)

更新时间:

该接口用于调用设备功能。

与设备端进行调试时,存在以下情况:

  • 设备端未在线,响应参数500,提示设备已离线(client_offline)。
  • 设备端已连接收到平台下发消息未回复,响应参数500,提示超时(time_out)。
  • 设备端已连接收到平台下发消息后回复,实现功能调用。

设备端回复Topic如下:

Topic: /{productId}/{deviceId}/function/invoke/reply

请求接口

POST /api/device/invoked/{deviceId}/function/{functionId}

TIP

访问权限:需要登录超级设备管理平台获取token,并校验token

请求参数

名称位置类型必选说明
X-Access-Tokenheaderstringtrue平台 token
deviceIdpathstringtrue设备ID
functionIdpathstringtrue功能标识

响应参数

以200 Response为例,响应参数如下:

名称类型必选约束说明
» messagestringtruenone返回信息
» result[object]truenone返回结果
»» 属性值-falsenone属性值
» statusintegertruenone响应状态码
» timestampintegertruenone时间戳

响应状态码

状态码状态码含义说明
200OK成功
401Unauthorized登录状态已过期,token不能为空
500Internal Server Error服务器内部异常

Body示例

json
{
  "one":"[1,1,1]"
}
{
  "one":"[1,1,1]"
}

使用示例

  1. 平台下发调用设备功能消息。

Topic: /testMQTT/one/function/invoke

方向:下行

json
{
  "headers":{
    "deviceName":"one",
    "productName":"testMQTT",
    "productId":"testMQTT",
    "_uid":"OIm1iGFa10SO_d28868zIGEdtnXpeZKy",
    "creatorId":"1199596756811550720",
    "async":false,
    "traceparent":"00-74f387a7067b68832ca1560afca7e20e-0c59e7d2ce04b3d8-01"
  },
  "messageId":"1686667155298922497",
  "deviceId":"one",
  "timestamp":1690967761240,
  "functionId":"one",
  "inputs":[
    {
      "name":"one",
      "value":[1,1,1]
    }
  ],
  "messageType":"INVOKE_FUNCTION"
}
{
  "headers":{
    "deviceName":"one",
    "productName":"testMQTT",
    "productId":"testMQTT",
    "_uid":"OIm1iGFa10SO_d28868zIGEdtnXpeZKy",
    "creatorId":"1199596756811550720",
    "async":false,
    "traceparent":"00-74f387a7067b68832ca1560afca7e20e-0c59e7d2ce04b3d8-01"
  },
  "messageId":"1686667155298922497",
  "deviceId":"one",
  "timestamp":1690967761240,
  "functionId":"one",
  "inputs":[
    {
      "name":"one",
      "value":[1,1,1]
    }
  ],
  "messageType":"INVOKE_FUNCTION"
}

以上消息中,deviceId为one,functionId为one。

  1. 设备回复消息。

Topic: /testMQTT/one/function/invoke/reply

方向:上行

json
{
  "timestamp":1690967761240,
  "messageId":"1686668381583388673", //与下行消息中的messageId相同
  "output":[1,1,1], //返回执行结果,具体类型与物模型中功能输出类型一致
  "success":true
}
{
  "timestamp":1690967761240,
  "messageId":"1686668381583388673", //与下行消息中的messageId相同
  "output":[1,1,1], //返回执行结果,具体类型与物模型中功能输出类型一致
  "success":true
}

返回示例

  • 200 Response
json
{
  "message":"success",
  "result":[
    [1,1,1]
  ],
  "status":200,
  "timestamp":1690968302570
}
{
  "message":"success",
  "result":[
    [1,1,1]
  ],
  "status":200,
  "timestamp":1690968302570
}
  • 500 Response(设备端超时未响应)
json
{
  "message":"超时",
  "status":500,
  "code":"time_out",
  "timestamp":1690956875525
}
{
  "message":"超时",
  "status":500,
  "code":"time_out",
  "timestamp":1690956875525
}
  • 500 Response(设备端已离线)
json
{
  "message": "设备已离线",
  "status": 500,
  "code": "client_offline",
  "timestamp": 1690956855460
}
{
  "message": "设备已离线",
  "status": 500,
  "code": "client_offline",
  "timestamp": 1690956855460
}