本文檔以MQTT.fx爲例,介紹使用第三方軟件以MQTT協議接入物聯網平臺。MQTT.fx是一款基於Eclipse Paho,使用Java語言編寫的MQTT客戶端工具。支持通過Topic訂閱和發佈消息。
創建協議
自定義消息協議創建,請參考消息協議定義。
例
i. 選擇 設備管理
-->協議管理
--> 點擊新建協議
按鈕
ii. 輸入型號名稱
iii. 選擇型號類型爲 jar
iv. 輸入類名org.jetlinks.demo.protocol.DemoProtocolSupportProvider
v. 上傳jar包 demo-protocol-1.0.jar
vi. 點擊保存,完成協議新增。
創建完成信息展示
創建設備型號
自定義創建設備型號,請參考添加設備型號
例
i.下載型號文件配置JSON
ii. 選擇 設備管理
-->設備型號
--> 點擊導入配置
按鈕
iii. 選擇配置JSON文件
iv.型號導入完成效果如下圖
v.點擊上圖中未發佈
鏈接完成型號發佈,導航欄中發佈狀態變爲已發佈
代表發佈成功。
創建成功的型號信息展示
i. 點擊導航欄中編輯
鏈接查看型號基本信息
ii. 點擊彈出框中設備定義
板塊查看型號設備定義
iii. 點擊屬性定義、事件定義對應操作下的編輯按鈕查看更詳細的型號信息
創建設備實例
自定義創建設備實例,請參考添加設備實例
例
i. 下載設備實例Excel文件設備實例Excel
ii. 選擇 設備管理
-->設備實例
--> 點擊導入實例
按鈕
iii. 選擇設備實例Excel文件
iv. 設備實例導入完成效果如下圖
v. 點擊上圖中激活
鏈接完成設備實例激活,狀態欄中發佈狀態變爲離線
代表設備激活成功。
創建成功的設備實例信息展示
i. 設備基本信息
ii. 設備運行狀態信息
iii. 設備日誌
創建網關配置
參照啓動設備網關服務
例
mqtt服務組件配置
使用MQTT.fx接入
1.下載並安裝MQTT.fx軟件。請訪問MQTT.fx官網。
2.打開MQTT.fx軟件,單擊設置圖標。
3.設置連接參數。
說明 設置參數時,請確保參數值中或參數值的前後均沒有空格。
i. 設置基本信息
參數 | 說明 |
---|---|
Profile Name | 輸入您的自定義名稱。 |
Profile Type | 選擇爲MQTT Broker。 |
MQTT Broker Profile Settings
參數 | 說明 |
---|---|
Broker Address | 連接域名。本地連接可直接填寫 127.0.0.1 ,如爲遠程連接,請填寫遠程連接地址 |
Broker Port | 設置爲1889 |
Client ID | 設備Id。本文檔中爲演示設備實例test001 |
General欄目下的設置項可保持系統默認,也可以根據您的具體需求設置。
ii. 單擊User Credentials,設置User Name和Password。
在消息協議未定義前,username,password可以填寫任意字符,但是不能留空。
參數 | 說明 |
---|---|
User Name | 由消息協議定義中決定User Name值(消息協議未定義時可填寫任意值) |
Password | 由消息協議定義中決定Password值 (消息協議未定義時可填寫任意值) |
iii. (可選)TLS連接。需要選擇SSL/TLS,勾選Enable SSL/TLS,設置Protocol。建議Protocol選擇爲TLSv1.2。
4.設置完成後,單擊右下角的OK。
設備操作
設備連接上平臺,並進行一些基本的事件收發、屬性讀取操作。
設備上下線
單擊 Mqtt fx 中Connect
進行連接
平臺中設備狀態變爲上線即爲連接成功
在設備日誌模塊可以看到設備上線日誌
單擊 Mqtt fx 中Disconnect
斷開連接
平臺中設備狀態變爲離線即爲斷開連接成功
在設備日誌模塊可以看到設備離線日誌
讀取設備屬性
注意:第2步中回覆平臺屬性值需要在第1步平臺發送訂閱以後的十秒鐘內完成,否則平臺會視爲該次操作超時,導致讀取屬性值失敗。
1.平臺告知設備(MQTT.fx)需要設備返回設備屬性
在MQTT.fx上訂閱消息,訂閱物聯網平臺下發設備返回屬性的Topic
i. 在MQTT.fx上,單擊Subscribe。
ii. 輸入平臺獲取設備屬性會發送給網關的topic/read-property
iii. 單擊Subscribe,訂閱這個topic
iv. 平臺發送訂閱操作
單擊設備實例頁面中test001
設備對應的查看
鏈接
選擇彈出框中運行狀態板塊
單擊屬性刷新
v. 訂閱topic: /read-property
對應的消息
注意: 複製好訂閱該topic收到的消息中的messageId。此messageId將作爲回覆與平臺設備屬性的憑據之一 複製好
2.設備(MQTT.fx)回覆平臺設備屬性值
在MQTT.fx上發送消息,發送平臺所需要的設備屬性值。
i. 在MQTT.fx上,單擊 Publish
。
ii. 輸入一個回覆平臺屬性值消息Topic和要發送的消息內容,單擊Publish,向平臺推送該消息。
參數 | 說明 |
---|---|
messageId | 第一步訂閱平臺topic“/read-property”所收到的messageId值 |
deviceId | 設備Id |
timestamp | 當前時間戳 |
success | 成功標識 |
properties | 設備屬性值對象。例如: { "threshold":"50"} |
該文檔所使用的回覆內容
{
"messageId":"第一步訂閱平臺topic“/read-property”所收到的messageId值",
"deviceId":"test001",
"timestamp":"1583809148000",
"success":true,
"properties":{
"temperature":"50"
}
}
iii. 平臺收到Mqtt.fx推送的屬性值
iv. 讀取設備屬性回覆的日誌
獲取設備屬性值完整演示
注意:在下圖中,從在界面上刷新屬性開始直到動圖結束的所有操作,需要在十秒鐘內完成。否則平臺會視爲該次操作超時,導致讀取屬性值失敗。
設備事件上報
MQTT.fx 推送設備事件消息到平臺
以火災報警事件爲例。
1.在MQTT.fx上,單擊 Publish
。
2.輸入事件上報Topic和要發送的事件內容,單擊Publish按鈕,向平臺推送該事件消息。
該文檔使用的topic: /fire_alarm
該文檔所使用的回覆內容
{
"deviceId":"test001",
"pname":"智能溫控",
"aid":105,
"a_name":"未來科技城",
"b_name":"C2 棟",
"l_name":"12-05-201",
"timestamp":"2019-11-06 16:28:50",
"alarm_type":1,
"alarm_describe":"火災報警",
"event_id":1,
"event_count":1
}
參數 | 說明 |
---|---|
deviceId | 設備Id |
pname | 設備型號名稱 |
aid | 區域Id |
a_name | 區域名稱 |
b_name | 建築名稱 |
l_name | 位置名稱 |
timestamp | 上報時間 |
alarm_type | 報警類型 |
alarm_describe | 報警描述 |
event_id | 事件 ID |
event_count | 該事件上報次數 |
3.事件上報設備日誌
4.事件上報內容