
# MQTT协议设备接入LINK
#### 概述
设备可以通过集成MQTT客户端实现接入ROMA Connect。设备接入ROMA Connect后，即可以上报设备数据到ROMA Connect。您也可以通过ROMA Connect向设备下发控制命令，以达到控制设备的效果。
ROMA Connect不会直接存储设备上报的数据，您需要[配置数据转发规则](https://support.huaweicloud.com/usermanual-roma/rule-engine-basic.html)，把设备数据转发到其他服务进行存储。
#### 约束与限制
通过MQTT协议设备时，当前仅支持MQTT协议中的QoS0和QoS1。
#### 前提条件
设备与ROMA Connect实例一般通过公网互通，请确保ROMA Connect实例已绑定弹性IP。
#### 接入设备
设备可以使用开源Eclipse paho MQTT Client与ROMA Connect进行连接。您也可以使用[MQTTX客户端](https://mqttx.app/)进行设备接入的调测验证。
1. 获取MQTT客户端。 根据您所使用的编程语言获取对应的[Eclipse paho MQTT Client](https://github.com/eclipse-paho/paho.mqtt.java)。
   
2. 获取设备的接入信息。
   1. 登录ROMA Connect控制台，在"实例"页面单击实例上的"查看控制台"，进入实例控制台。
   
   2. 在左侧的导航栏选择"设备集成 LINK \> 设备管理"。
   
   3. 获取设备的连接信息。
      - MQTT/MQTTS连接地址：在设备管理页面上方获取设备的接入地址，如果使用MQTT接入，则获取"MQTT连接地址"；如果使用MQTTS接入，则获取"MQTTS连接地址"，并下载SSL证书。
      
      - 客户端ID/用户名/密码：在设备页签下找到对应的设备，并获取设备的"客户端ID"、"用户名"和"密码"。
       
   
   4. 获取设备的Topic信息。 单击设备的名称进入设备详情页面，在Topic列表页签下，获取设备上报（发布）和接收（订阅）消息的Topic信息。
      设备创建成功后系统会自动生成5个基础Topic，Topic说明见[表1]，具体使用方法请参考[MQTT协议Topic规范](https://support.huaweicloud.com/devg-roma/roma_04_4002.html)。
       表1基础Topic说明 
      | Topic名称                            | Topic类 | 说明                                                                                    |
      |:---|:---|:---|
      | {产品标识}/out/{设备标识}                  | 发布     | 用于设备发布消息，消息处理按照规则引擎配置进行，用户可灵活使用。                                                      |
      | {产品标识}/in/{设备标识}                   | 订阅     | 用于设备订阅消息，消息处理按照规则引擎配置进行，用户可灵活使用。                                                      |
      | /v1/devices/{设备标识}/datas           | 发布     | 用于设备上报基于MQTT的配电物联网通信协议的消息，消息处理先按照此协议处理过滤一遍，再按照规则引擎配置进行。在开启设备影子功能时，该topic上报的数据将会被记录影子。 |
      | /v1/devices/{设备标识}/command         | 订阅     | 用于设备订阅平台下发的命令消息。平台下发的命令消息默认发布至此Topic。                                                 |
      | /v1/devices/{设备标识}/commandResponse | 发布     | 用于设备发布回应消息。设备接收到平台下发的命令消息后，通过此Topic回应平台下发的命令。                                         |
         
      
    
3. 设备集成MQTT客户端。 设备开发集成Eclipse paho MQTT Client，并在集成过程中写入设备的接入信息。具体开发集成过程请参考[设备集成开发](https://support.huaweicloud.com/devg-roma/link-devg-java.html)。
   
4. 设备接入ROMA Connect。 设备完成集成开发后，上电并联网，接入ROMA Connect。
   
 
#### 调试设备
- 上报数据到ROMA Connect： ROMA Connect已默认订阅了发布类型的Topic，设备向数据上报Topic发送消息，即可把数据上报到ROMA Connect。
  
- 接收ROMA Connect的命令： 设备订阅命令下发Topic，ROMA Connect向命令下发Topic发送控制命令，即可把命令下发到设备，实现对设备的控制。
  
 
