四、功能接口章节--Mqtt协议接入讲解

四、功能接口章节--Mqtt协议接入讲解


接口简介

本接口主要针对采用Mqtt协议接入本IOT中继平台的设备,用于通过http API向本IOT中继平台Mqtt消息服务器订阅、发布物模型Topic,用于获取设备向IOT中继平台Mqtt消息服务器订阅、发布的Topic物模型数据,例如:通过操作http API 接口获取接入设备上报到本IOT中继平台Mqtt消息服务器的的设备工作温度。

MQTT消息服务器Topic组成:    在本IOT中继平台中订阅、发布物模型Topic由 标识符 “/iotboxProperties”、“/iotboxEvent”、“/iotboxFunction” +“/”+“设备ID”+“/”+“物模型属性ID”、“物模型事件ID”、“物模型功能ID”组成,
        例如:物模型属性Topic “
/iotboxProperties/44080000001111000016/P_1697771488743”     ---- 格式: “/iotboxProperties/设备ID/物模型属性ID”;
             物模型事件Topic “
/iotboxEvent/44080000001111000016/E_1697248913306”      ---- 格式:“/iotboxEvent/设备ID/物模型事件ID”;
            物模型功能Topic “
/iotboxFunction/44080000001111000016/F_1697771488743”     ---- 格式:“/iotboxFunction/设备ID/物模型功能ID”。

MQTT协议中有三种消息发布服务质量:
    1、 “QOS0” : “至多一次”,消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。
    2、 “QOS1” :“至少一次”,确保消息到达,但消息重复可能会发生。
    3、 “QOS2” :“只有一次”,确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果,资源开销大.
    在订阅、发布Topic时根据需要设置MQTT消息发布服务质量。

a) 订阅物模型属性Topic

接口功能     本接口主要针对采用Mqtt协议接入本IOT中继平台的设备,用于通过http API向本IOT中继平台Mqtt消息服务器订阅物模型属性Topic,用于获取设备向IOT中继平台Mqtt消息服务器发布的Topic物模型属性数据,例如:接入设备上报的设备工作温度,把工作温度数据发布到本IOT中继平台Mqtt消息服务器的Topic。

MQTT消息服务器Topic组成:    在本接口中订阅物模型属性Topic由 “/iotboxProperties”+“/”+“设备ID”+“/”+“物模型属性ID” 组成,
        例如: “/iotboxProperties/44080000001111000016/P_1697771488743”。

Request URL: http://192.168.0.105:18080/openApi/subscribeModelProperties
域名访问URL: http://iotbox.iotrelay.cn:8080/api/openApi/subscribeModelProperties

Request Method:GET

数据提交格式  Query String Parameters

请求头参数  Authorization

请求头参数说明:

参数名类型必须描述
AuthorizationHeader固定值:字符串“Bearer” +“token”组成, "token"为上述登录接口获取的属性值,如:请求头中

“Authorization” : “Bearer eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJiNjE3OGVlN2ZhNWM0OWU2ODlmMGEzNjIxNzkxYzk2OCIsInN1YiI6IntcInVzZXJJZFwiOlwiNDlcIixcInVzZXJOYW1lXCI6XCIxMzQzNzE1NjU2OVwiLFwibmlja05hbWVcIjpcIjQ0MDgwMDAwMDAxMTExMDAwMDE3XCJ9IiwiaXNzIjoic2oiLCJpYXQiOjE2OTcxNTk2NjgsImV4cCI6MTY5NzE2MTQ2OH0.4C3GJIF5ejmySHy9l_LmheoCs5jknq17h9tPsZB3dIM”

请求体参数说明:

参数名类型必须描述
deviceIdstring接入设备ID标识,黄色 "44080000001111000016"为接入设备ID标识值
propertiesIdstringIOT接入设备物模型属性ID标识,黄色 "P_1697771488743"为物模型属性ID标识值
qosstringMqtt消息服务质量, 此处根据需要在三个值 “QOS0”、“QOS1”、“QOS2” 选择一个

正确响应结果示例:

{
  "code": "0",
  "msg": "订阅物模型属性成功,订阅topic为:/iotboxProperties/44080000001111000016/P_1697771488743  消息服务质量为QOS1",
  "data": "true",
}

错误响应结果示例:

{
  "code": "-1",
  "msg": "fail:物模型属性订阅失败"
}
b) 取消订阅物模型属性Topic

接口功能     本接口主要取消通过本IOT中继平台向Mqtt消息服务器订阅的物模型属性Topic,例如取消上一章节接口《 1) 订阅物模型属性 》中订阅的Topic
        “/iotboxProperties/44080000001111000016/P_1697771488743”。

MQTT消息服务器Topic组成:    在本接口中订阅物模型属性Topic由 “/iotboxProperties”+“/”+“设备ID”+“/”+“物模型属性ID” 组成,
        例如: “/iotboxProperties/44080000001111000016/P_1697771488743”。

Request URL: http://192.168.0.105:18080/openApi/unSubscribeModelProperties
域名访问URL: http://iotbox.iotrelay.cn:8080/api/openApi/unSubscribeModelProperties

Request Method: GET

数据提交格式 Query String Parameters

请求头参数 Authorization

请求头参数说明:

参数名类型必须描述
AuthorizationHeader固定值:字符串“Bearer” +“token”组成, "token"为上述登录接口获取的属性值,如:请求头中

“Authorization” : “Bearer eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJiNjE3OGVlN2ZhNWM0OWU2ODlmMGEzNjIxNzkxYzk2OCIsInN1YiI6IntcInVzZXJJZFwiOlwiNDlcIixcInVzZXJOYW1lXCI6XCIxMzQzNzE1NjU2OVwiLFwibmlja05hbWVcIjpcIjQ0MDgwMDAwMDAxMTExMDAwMDE3XCJ9IiwiaXNzIjoic2oiLCJpYXQiOjE2OTcxNTk2NjgsImV4cCI6MTY5NzE2MTQ2OH0.4C3GJIF5ejmySHy9l_LmheoCs5jknq17h9tPsZB3dIM”

请求体参数说明:

参数名类型必须描述
deviceIdstring接入设备ID标识,黄色 "44080000001111000016"为接入设备ID标识值
propertiesIdstringIOT接入设备物模型属性ID标识,黄色 "P_1697771488743"为物模型属性ID标识值

正确响应结果示例:

{
  "code": "0",
  "msg": "取消订阅物模型属性成功,取消订阅topic为:/iotboxProperties/44080000001111000016/P_1697771488743",
  "data": "true",
}

错误响应结果示例:

{
  "code": "-1",
  "msg": "fail:取消订阅Mqtt物模型属性失败"
}
c) 订阅物模型事件Topic

接口功能     本接口主要针对采用Mqtt协议接入本IOT中继平台的设备,用于通过http API向本IOT中继平台Mqtt消息服务器订阅物模型事件Topic,用于获取设备向IOT中继平台Mqtt消息服务器发布的Topic物模型事件数据,例如:接入设备运行故障时,把工作温度数据发布到本IOT中继平台Mqtt消息服务器的Topic。

MQTT消息服务器Topic组成:    在本接口中订阅物模型事件Topic由 “/iotboxEvent”+“/”+“设备ID”+“/”+“物模型事件ID” 组成,
        例如: “/iotboxEvent/44080000001111000017/E_1697771992900”。

Request URL: http://192.168.0.105:18080/openApi/subscribeModelEvent
域名访问URL: http://iotbox.iotrelay.cn:8080/api/openApi/subscribeModelEvent

Request Method:GET

数据提交格式  Query String Parameters

请求头参数  Authorization

请求头参数说明:

参数名类型必须描述
AuthorizationHeader固定值:字符串“Bearer” +“token”组成, "token"为上述登录接口获取的属性值,如:请求头中

“Authorization” : “Bearer eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJiNjE3OGVlN2ZhNWM0OWU2ODlmMGEzNjIxNzkxYzk2OCIsInN1YiI6IntcInVzZXJJZFwiOlwiNDlcIixcInVzZXJOYW1lXCI6XCIxMzQzNzE1NjU2OVwiLFwibmlja05hbWVcIjpcIjQ0MDgwMDAwMDAxMTExMDAwMDE3XCJ9IiwiaXNzIjoic2oiLCJpYXQiOjE2OTcxNTk2NjgsImV4cCI6MTY5NzE2MTQ2OH0.4C3GJIF5ejmySHy9l_LmheoCs5jknq17h9tPsZB3dIM”

请求体参数说明:

参数名类型必须描述
deviceIdstring接入设备ID标识,黄色 "44080000001111000017"为接入设备ID标识值
eventIdstringIOT接入设备物模型事件ID标识,黄色 "E_1697771992900"为物模型事件ID标识值
qosstringMqtt消息服务质量, 此处根据需要在三个值 “QOS0”、“QOS1”、“QOS2” 选择一个

正确响应结果示例:

{
  "code": "0",
  "msg": "订阅物模型事件成功,订阅topic为:/iotboxEvent/44080000001111000016/E_1697771992900  消息服务质量为QOS1",
  "data": "true",
}

错误响应结果示例:

{
  "code": "-1",
  "msg": "fail:物模型事件订阅失败"
}
d) 取消订阅物模型事件Topic

接口功能     本接口主要取消通过本IOT中继平台向Mqtt消息服务器订阅的物模型事件Topic,例如取消上一章节接口《 3) 订阅物模型事件 》中订阅的Topic
        “/iotboxEvent/44080000001111000016/E_1697771992900”。

MQTT消息服务器Topic组成:    在本接口中订阅物模型事件Topic由 “/iotboxEvent”+“/”+“设备ID”+“/”+“物模型事件ID” 组成,
        例如: “/iotboxEvent/44080000001111000016/E_1697771992900”。

Request URL: http://192.168.0.105:18080/openApi/unSubscribeModelEvent
域名访问URL: http://iotbox.iotrelay.cn:8080/api/openApi/unSubscribeModelEvent

Request Method: GET

数据提交格式  Query String Parameters

请求头参数  Authorization

请求头参数说明:

参数名类型必须描述
AuthorizationHeader固定值:字符串“Bearer” +“token”组成, "token"为上述登录接口获取的属性值,如:请求头中

“Authorization” : “Bearer eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJiNjE3OGVlN2ZhNWM0OWU2ODlmMGEzNjIxNzkxYzk2OCIsInN1YiI6IntcInVzZXJJZFwiOlwiNDlcIixcInVzZXJOYW1lXCI6XCIxMzQzNzE1NjU2OVwiLFwibmlja05hbWVcIjpcIjQ0MDgwMDAwMDAxMTExMDAwMDE3XCJ9IiwiaXNzIjoic2oiLCJpYXQiOjE2OTcxNTk2NjgsImV4cCI6MTY5NzE2MTQ2OH0.4C3GJIF5ejmySHy9l_LmheoCs5jknq17h9tPsZB3dIM”

请求体参数说明:

参数名类型必须描述
deviceIdstring接入设备ID标识,黄色 "44080000001111000016"为接入设备ID标识值
eventIdstringIOT接入设备物模型事件ID标识,黄色 "E_1697771992900"为物模型事件ID标识值

正确响应结果示例:

{
  "code": "0",
  "msg": "取消订阅物模型事件成功,取消订阅topic为:/iotboxEvent/44080000001111000016/E_1697771992900",
  "data": "true",
}

错误响应结果示例:

{
  "code": "-1",
  "msg": "fail:取消订阅Mqtt物模型事件失败"
}
e) 发布物模型功能

接口功能     本接口主要针对采用Mqtt协议接入本IOT中继平台的设备,用于通过http API向本IOT中继平台Mqtt消息服务器发布物模型功能Topic,用于向IOT中继平台Mqtt消息服务器发布的Topic物模型功能数据,实现向接入设备下发指令。例如:需要向接入设备下发设备重启、关机指令时,把下发的指令消息发布到本IOT中继平台Mqtt消息服务器的Topic。

MQTT消息服务器Topic组成:    在本接口中发布物模型功能Topic由 “/iotboxFunction”+“/”+“设备ID”+“/”+“物模型功能ID” 组成,
        例如: “/iotboxFunction/44080000001111000016/F_1697774598222”。

Request URL: http://192.168.0.105:18080/openApi/pushModelFunction
域名访问URL: http://iotbox.iotrelay.cn:8080/api/openApi/pushModelFunction

Request Method: GET

数据提交格式 Query String Parameters

请求头参数  Authorization

请求头参数说明:

参数名类型必须描述
AuthorizationHeader固定值:字符串“Bearer” +“token”组成, "token"为上述登录接口获取的属性值,如:请求头中

“Authorization” : “Bearer eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJiNjE3OGVlN2ZhNWM0OWU2ODlmMGEzNjIxNzkxYzk2OCIsInN1YiI6IntcInVzZXJJZFwiOlwiNDlcIixcInVzZXJOYW1lXCI6XCIxMzQzNzE1NjU2OVwiLFwibmlja05hbWVcIjpcIjQ0MDgwMDAwMDAxMTExMDAwMDE3XCJ9IiwiaXNzIjoic2oiLCJpYXQiOjE2OTcxNTk2NjgsImV4cCI6MTY5NzE2MTQ2OH0.4C3GJIF5ejmySHy9l_LmheoCs5jknq17h9tPsZB3dIM”

请求体参数说明:

参数名类型必须描述
deviceIdstring接入设备ID标识,黄色 "44080000001111000016"为接入设备ID标识值
functionIdstringIOT接入设备物模型功能ID标识,黄色 "F_1697774598222"为物模型功能ID标识值
sendMsgstring向MQTT服务器发布消息体格式采用json字符串BASE64加密传输。
加密前消息体内容加密后消息体内容消息体数据为json数值格式,由物模型功能中的输入参数组成。加密前格式如:{“deviceId”: “44080000001111000016”,“functionId”: “F_1697774598222”,“functionName”: “远程关机”,“inputParamsList”: [{“paramsId”: “aaaaaa”, “paramsName”: “小车归位”, “dataValue”: “true” },…]}ewogICAgICJkZXZpY2VJZCI6ICI0NDA4MDAwMDAwMTExMTAwMDAxNiIsCiAgICAgImZ1bmN0aW9uSWQiOiAiRl8xNjk3Nzc0NTk4MjIyIiwKICAgICAiZnVuY3Rpb25OYW1lIjogIui/nOeoi+WFs+acuiIsCiAgICAgWwogICAgIHsicGFyYW1zSWQiOiAiYWFhYWFhIiwgInBhcmFtc05hbWUiOiAi5bCP6L2m5b2S5L2NIiwgImRhdGFWYWx1ZSI6ICJ0cnVlIiB9LAogICAgIF0KIH0=json字符串内容说明deviceId定义的设备ID标识         如上例黄色 “44080000001111000016” 为需要处理下发的功能指令设备标识functionId设备物模型功能定义中的功能ID标识         如上例黄色 “F_1697774598222” 为设备物模型功能定义中的功能ID标识functionName设备物模型功能定义中的功能名称         如上例黄色 “远程关机” 为设备物模型功能定义中的功能名称paramsId输入参数ID标识,为设备物模型功能定义中的输入参数ID标识         如上例黄色 “aaaaaa” 为输入参数标识paramsName输入参数名称,为设备物模型功能定义中的输入参数名称         如上例黄色 “小车归位” 为设备物模型功能定义中的输入参数名称dataValue输入参数数据值,dataValue 为设备物模型功能定义中的输入参数数值标识         上例黄色 “true” 设备物模型功能定义中的输入参数数值,为输入参数“小车归位”数据值
qosstringMqtt消息服务质量, 此处根据需要在三个值 “QOS0”、“QOS1”、“QOS2” 选择一个

正确响应结果示例:

{
  "code": "0",
  "msg": "发布物模型功能成功,发布topic为:/iotboxFunction/44080000001111000016/F_1697774598222  消息服务质量为QOS2",
  "data": "true",
}

错误响应结果示例:

{
  "code": "-1",
  "msg": "fail:发布物模型功能失败"
}


IOT中继宝盒 长按关注宜联科技公众号

QQ在线咨询

点击这里给我发消息 咨询客服专员

QQ咨询

专业咨询

199-4502-1328

电话咨询

微信扫一扫

IOT中继宝盒

微信咨询
返回顶部