该接口用于调用设备功能。
与设备端进行调试时,存在以下情况:
- 设备端未在线,响应参数500,提示设备已离线(client_offline)。
- 设备端已连接收到平台下发消息未回复,响应参数500,提示超时(time_out)。
- 设备端已连接收到平台下发消息后回复,实现功能调用。
设备端回复Topic如下:
Topic: /{productId}/{deviceId}/function/invoke/reply
请求接口
POST /api/device/invoked/{deviceId}/function/{functionId}
请求参数
名称 | 位置 | 类型 | 必选 | 说明 |
---|---|---|---|---|
X-Access-Token | header | string | true | 平台 token |
deviceId | path | string | true | 设备ID |
functionId | path | string | true | 功能标识 |
响应参数
以200 Response为例,响应参数如下:
名称 | 类型 | 必选 | 约束 | 说明 |
---|---|---|---|---|
» message | string | true | none | 返回信息 |
» result | [object] | true | none | 返回结果 |
»» 属性值 | - | false | none | 属性值 |
» status | integer | true | none | 响应状态码 |
» timestamp | integer | true | none | 时间戳 |
响应状态码
状态码 | 状态码含义 | 说明 |
---|---|---|
200 | OK | 成功 |
401 | Unauthorized | 登录状态已过期,token不能为空 |
500 | Internal Server Error | 服务器内部异常 |
Body示例
json
{
"one":"[1,1,1]"
}
{
"one":"[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。
- 设备回复消息。
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
}