1. 程式人生 > >乾貨分享丨玩轉物聯網IoTDA服務系列四-智慧閘道器

乾貨分享丨玩轉物聯網IoTDA服務系列四-智慧閘道器

摘要:該場景主要描述的是裝置可以通過MQTT協議與物聯網平臺進行互動,使用者可以在控制檯產品詳情中自定義Topic,通過應用側介面或控制檯建立資料轉發規則,把裝置上報的訊息轉發給其他華為雲服務,供應用側使用者主動去消費。

場景簡介

已對接存量裝置的閘道器,不用遷移就可以實現對既有裝置和新裝置的相容控制。

該場景主要描述的是裝置可以通過MQTT協議與物聯網平臺進行互動,使用者可以在控制檯產品詳情中自定義Topic,通過應用側介面或控制檯建立資料轉發規則,把裝置上報的訊息轉發給其他華為雲服務,供應用側使用者主動去消費。

核心知識點:產品模型、訊息上報、訊息下發、MQTT協議、資料轉發規則、自定義Topic。

場景流程

流程解釋:

1.建立閘道器產品:物聯網平臺是以產品為粒度管理批量裝置,產品的建立與管理,可以通過平臺提供的API介面或控制檯

2.自定義topic:您可以在產品詳情中自定義topic,該產品下的所有裝置都將可以通過自定義topic,與平臺間進行資料上下行互動。

3.註冊閘道器裝置:平臺提供了應用側API介面可以之策裝置,也可以通過控制檯註冊。註冊的裝置ID,是裝置側與平臺互動的唯一標識。這裡是用手機APP進行應用側介面呼叫註冊,就如前面概念串聯時提到的,應用側不侷限於web服務端。

4.建立資料轉發規則:閘道器APP可以通過API介面建立規則,也可以通過控制檯建立,指定過濾指定的屬性,給指定的通道轉發資料。

5.開通DIS通道/OBS服務:華為公有云上有豐富的SaaS服務和PaaS服務,供您結合自己的業務需要進行組合使用。DIS服務提供高效採集、傳輸、分發能力,支援多種IoT協議,OBS服務提供海量、安全、高可靠、低成本的資料儲存能力,可以開通該兩個服務(或之一),通過IoTDA規則引擎,把閘道器的資料轉發給DIS/OBS。

6.裝置建鏈:MQTT裝置是指通過MQTT協議接入的裝置,不論是集成了華為IoT Device SDK,還是原生MQTT協議接入,只要是json資料格式傳輸給平臺,平臺就無需使用編解碼外掛。如果是二進位制上傳,則需要先做編解碼外掛的開發。MQTT是長連線,需要先建鏈才能進行資料傳輸,可以通過安全加密方式8883埠接入(推薦),也可以通過非安全加密方式1883埠接入。

7.訂閱訊息下發Topic:MQTT裝置與平臺建立長連線後,可以訂閱平臺下行的topic,實現對平臺下發訊息的實時監聽。

8.閘道器訊息上報:閘道器裝置把資料透傳到平臺,由平臺不做任何處理按規則轉發給DIS/OBS等儲存通道。訊息跟屬性的主要區別是不用指定產品模型,平臺對上報的訊息不做處理(包括儲存和快照都沒有),僅做純資料轉發。

9.按規則資料轉發:平臺收到裝置上報的屬性後,規則引擎會進行過濾(不論屬性還是訊息,平臺都會做規則過濾),把設定好的訊息值轉發到指定的DIS通道,放到訊息佇列中。或者轉發到OBS做物件儲存。

10.消費訊息資料:由於平臺對訊息僅做透傳,而且APP無法配置訂閱通知的callback url,所以將裝置上報的資料通過訊息轉儲到DIS/OBS,再由APP呼叫DIS/OBS的介面或整合SDK,消費裝置資料,進而實現對閘道器裝置上報訊息的接收。

11.訊息下發:閘道器APP通過應用側介面下發訊息,平臺同樣不會做任何的處理,訊息下發是非同步的,不用等到裝置側閘道器的響應。

12.訊息下發:平臺通過訊息下發的下行topic把訊息透傳給閘道器。這個需要前面閘道器裝置訂閱了訊息下發的topic,否則接收不到平臺下行訊息。

最佳實踐

場景說明

自定義Topic功能用於MQTT協議裝置接入物聯網平臺的場景,支援裝置訊息上報、平臺訊息下發的Topic進行自定義。根據Topic不同,應用側可實現不同的業務邏輯處理,也適用於應用側和裝置側之間,裝置無法按照產品模型中定義的屬性或命令進行資料上報的場景。

本示例中,應用伺服器收到裝置上報Topic為室內溫度的資料,判斷是否開啟或關閉室內空調。

新增自定義Topic

具體操作細節請參考新增自定義Topic。

1、在產品詳情頁中,選擇“可選配置”頁籤,點選“新增自定義topic”按鈕。

2、在彈出的頁面中,選擇裝置操作許可權,填寫topic名稱。

3、點選“確認”,完成新增自定義topic。

自定義Topic新增成功後,您可以在自定義topic列表執行修改和刪除操作。

MQTT裝置訊息上報

1、登入控制檯,進入指定裝置詳情頁,啟動訊息跟蹤。

2、以MQTT.fx模擬器(請參考裝置快速接入)為例,模擬裝置上報自定義Topic訊息。

使用IoT Device SDK或原生MQTT協議接入的裝置,需要在裝置程式中,設定裝置上報的自定義Topic名稱。

3、登入控制檯,在裝置詳情訊息跟蹤頁面,檢視裝置上報的自定義Topic訊息。

4、應用側通過資料轉發的方式,獲取MQTT裝置上報的自定義Topic訊息。更多資料轉發方式,請參考資料轉發。您也可以參考最佳實踐案例資料轉發到OBS長期儲存。

MQTT裝置訊息下發

應用側收到MQTT裝置上報的自定義Topic訊息後,需要進行相應的業務處理。本示例通過自定義Topic,下發開啟室內空調指令。

MQTT裝置需要先訂閱自定義Topic,才可以接收應用側下發的自定義Topic訊息。

  • 確保建立自定義Topic時,裝置操作許可權包含“訂閱”功能,詳細操作請參考裝置操作許可權。
  • 使用IoT Device SDK或者原生MQTT協議接入的裝置,需要在裝置程式中,設定裝置訂閱的自定義Topic名稱。

1、本文使用postman工具模擬應用側呼叫下發裝置訊息介面,下發開啟室內空調的命令。

2、呼叫查詢裝置訊息介面,檢視下發命令是否成功。

至此,通過該文件的學習,您應該對智慧閘道器和自定義Topic場景有了一定的瞭解。接下來,可以在系列後續文章中,可以學習到更多的物聯網業務場景。

 

 

點選關注,第一時間瞭解華為雲新鮮技