一種基於設備快照的物聯網智能設備狀態同步方法及系統與流程
2023-10-31 20:20:02

本發明涉及物聯網技術領域,尤其涉及一種基於設備快照的物聯網智能設備狀態同步方法及系統。
背景技術:
物聯網平臺指的是將無處不在的末端設備和設施,包括具備物聯網技術「內在智能」的傳感器、移動終端、工業系統、數控系統、家庭智能設施、視頻監控系統等,如貼上rfid的各種資產、攜帶無線終端的個人與車輛等等「智能化物件」,通過各種無線或有線的長距離或短距離通訊網絡實現互聯互通(m2m)、應用大集成、以及基於雲計算的saas營運等模式,在內網、專網、網際網路環境下,採用適當的信息安全保障機制,提供安全可控乃至個性化的實時在線監測、定位追溯、報警聯動、調度指揮、預案管理、遠程控制、安全防範、遠程維保、在線升級、統計報表、決策支持等管理和服務功能,實現對「萬物」的「高效、節能、安全、環保」的「管、控、營」一體化的平臺。
物聯網技術中,由於會同時控制多個智能設備,因此對智能設備的狀態監控及同步尤為重要。
如申請號為cn201310581025.0的專利文獻公開的「設備狀態同步控制方法和家電設備」,該發明提供了一種設備狀態同步控制方法和一種家電設備,其中設備狀態同步控制方法包括:記錄多個與家電設備建立通信連接的控制終端的在線信息;在家電設備的狀態信息被更新時,根據記錄的在線信息,將家電設備的最新狀態信息通知每一控制終端,供每一控制終端顯示。
又如申請號為cn201410706098.2的專利文獻公開的「一種調整智能家居設備運行狀態的方法及裝置」,該發明是關於一種調整智能家居設備運行狀態的方法及裝置,用以提高用戶調整智能家居設備運行狀態的便利性。所述方法包括:監聽所述移動終端上的用於控制所述智能家居設備的應用上的設備列表;在監聽到用戶在所述設備列表中選定的智能家居設備的創建快捷方式的第一按鍵消息時,在所述移動終端的桌面上創建用於控制所述智能家居設備的所述快捷按鍵;通過控制所述快捷按鍵調整所述智能家居設備的當前狀態。
實際應用中,智能設備的狀態信息需要同步到手機app,比如空調上的室內溫度,比如門鎖的開關狀態,或者是sd卡格式化的進度等等。
如果利用現有技術,直接讓智能設備發送消息給手機app同步信息,會存在以下問題:
(1)一臺智能設備可能會有多個綁定者,狀態的同步是不能只同步給一個綁定者的,所以用發消息的方案會需要知道所有綁定者,然後需要挨個發送一遍。
(2)狀態的變更有可能是頻繁的,很多情況下最後一次的狀態才是最重要的,而消息通道往往是以可靠不丟消息為設計目標的,這就意味著用戶可能在早晨起床喚起手機app後收到上千條狀態消息。
技術實現要素:
針對上述現有技術的現狀,本發明目的在於提供一種基於設備快照的物聯網智能設備狀態同步方法及系統,可解決過多的設備狀態消息發送給用戶的問題以及多個用戶不能同時收到設備狀態消息的問題。
本發明解決上述技術問題所採用的技術方案為:
一種基於設備快照的物聯網智能設備狀態同步方法,包括步驟:
s1.獲取智能設備當前狀態信息;
s2.獲取狀態偏差信息,所述狀態偏差信息包括:智能設備狀態改變請求、智能設備狀態改變控制命令;
s3.接收並通過所述智能設備狀態改變請求,根據所述智能設備狀態改變控制命令更改所述智能設備狀態。
進一步地,步驟s1具體為:
a1.智能設備基於mqtt協議建立與雲端的通信連接;
a2.智能設備發送當前狀態信息至雲端設備快照;
a3.雲端設備快照接收智能設備發送的當前狀態信息,並將所述當前狀態信息保存至雲端資料庫內。
進一步地,步驟a1具體為:
a11.智能設備使用控制臺申請的密鑰進行籤名請求授權;
a12.雲端伺服器驗證籤名是否合法,若合法,則返回pubkey證書;
a13.智能設備使用pubkey證書tls協議連接mqtt。
進一步地,步驟s2具體為:
b1.應用程式向雲端設備快照請求獲取所述智能設備的當前狀態信息;
b2.雲端設備快照接收請求後,從雲端資料庫內獲取所述智能設備的當前狀態信息,並發送所述當前狀態信息至應用程式;
b3.應用程式接收所述智能設備當前狀態信息後,將所述當前狀態信息與預期狀態信息比對,獲取狀態偏差信息,並將所述狀態偏差信息發送至雲端設備快照。
進一步地,步驟s3具體為:
c1.雲端設備快照接收並通過所述應用程式發送的智能設備狀態改變請求;
c2.若所述智能設備為在線狀態,則雲端設備快照發送所述智能設備狀態改變控制命令至所述智能設備;
c3.智能設備接收所述智能設備狀態改變控制命令,並做對應狀態改變。
進一步地,步驟c2還包括:
若所述智能設備為離線狀態,則雲端設備快照保存所述智能設備狀態改變控制命令。
進一步地,當智能設備上線後,判斷所述智能設備是否存在狀態改變:
若不存在,則雲端設備快照將所述保存的智能設備狀態改變控制命令發送至所述智能設備;
若存在,則雲端設備快照獲取所述智能設備的新的當前狀態信息,發送所述新的當前狀態信息至應用程式,並返回步驟b3。
一種基於設備快照的物聯網智能設備狀態同步系統,包括雲端設備快照模塊、智能設備sdk模塊、移動終端應用程式sdk模塊;
所述雲端設備快照模塊包括:
第一獲取單元,用於獲取智能設備當前狀態信息;
第二獲取單元,用於獲取狀態偏差信息,所述狀態偏差信息包括:智能設備狀態改變請求、智能設備狀態改變控制命令;
執行單元,用於接收並通過所述智能設備狀態改變請求,根據所述智能設備狀態改變控制命令更改所述智能設備狀態;
所述智能設備sdk模塊用於與雲端進行通信,並發送智能設備當前狀態信息至雲端設備快照模塊;
所述移動終端應用程式sdk模塊用於將所述當前狀態信息與預期狀態信息比對,獲取狀態偏差信息,並將所述狀態偏差信息發送至雲端設備快照。
進一步地,所述智能設備sdk模塊包括:
通信單元,用於基於mqtt協議建立與雲端的通信連接;
第一發送單元,用於發送智能設備當前狀態信息至雲端設備快照。
進一步地,所述移動終端應用程式sdk模塊包括:
請求單元,用於向雲端設備快照模塊請求獲取智能設備的當前狀態信息;
對比單元,用於在接收智能設備的當前狀態信息後,將所述當前狀態信息與預期狀態信息比對,獲取狀態偏差信息;
第二發送單元,用於將所述狀態偏差信息發送至雲端設備快照模塊。
本發明提供一種基於設備快照的物聯網智能設備狀態同步方法及系統,可解決過多的設備狀態消息發送給用戶的問題,此外,通過設置智能設備預期狀態信息,能有效對智能設備進行狀態監測及控制。
附圖說明
圖1為本發明實施例中一種基於設備快照的物聯網智能設備狀態同步方法流程圖;
圖2為本發明實施例中一種基於設備快照的物聯網智能設備狀態同步系統結構圖;
圖3為本發明實施例一中雲端設備快照模塊結構圖;
圖4為本發明實施例一中智能設備sdk模塊結構圖;
圖5為本發明實施例一中移動終端應用程式sdk模塊結構圖。
具體實施方式
以下是本發明的具體實施例並結合附圖,對本發明的技術方案作進一步的描述,但本發明並不限於這些實施例。
本發明基於設備快照來保存設備的最新狀態或者app希望的最新狀態在雲端,然後當設備或app連接上來時,同步狀態給設備或app。
本發明涉及到三個模塊,第一是智能設備sdk模塊,此模塊負責將當前狀態上報至一個或多個設備快照,並可從設備快照獲取期望的狀態;第二是雲端設備快照模塊,此模塊負責管理狀態偏差、預期狀態、上報狀態、元數據和版本;第三是移動終端的appsdk模塊,此模塊負責改變設備狀態、獲取設備最後一次上報的狀態和刪除設備快照。
以下為本發明具體實施例。
實施例一
如圖1所示為本實施例中一種基於設備快照的物聯網智能設備狀態同步方法流程圖,該方法包括步驟:
s1.獲取智能設備當前狀態信息;
s2.獲取狀態偏差信息,所述狀態偏差信息包括:智能設備狀態改變請求、智能設備狀態改變控制命令;
s3.接收並通過所述智能設備狀態改變請求,根據所述智能設備狀態改變控制命令更改所述智能設備狀態。
步驟s1具體為:
a1.智能設備基於mqtt協議建立與雲端的通信連接;
a2.智能設備發送當前狀態信息至雲端設備快照;
本步驟中,智能設備發布當前狀態給設備快照
智能設備發布消息到如以下格式的事件主題:
iot/event/event_id/state/format_string。
發布的消息符合上述定義的json字符串格式。
a3.雲端設備快照接收智能設備發送的當前狀態信息,並將所述當前狀態信息保存至雲端資料庫內。
本步驟中,設備快照預先訂閱好上述的topic,當設備發送狀態消息後,消息broker會立即監聽到並把消息轉發給設備快照,設備快照收到json格式的消息後進行解析處理並保存數據到資料庫。一年之內對設備的狀態數據有過更新的歷史都將保存。
設備快照是物聯網平臺在雲端的軟體系統,設備保留每臺設備的最後報告狀態和期望的未來狀態,即便設備處於離線狀態。
app可通過httpsapi獲取設備的最後報告狀態或設置期望的未來狀態。在設置設備的期望未來狀態時無需說明設備的當前狀態。
設備sdk負責同步其設備自身狀態及其設備快照狀態,並響應通過設備快照設置的期望的未來狀態。
設備快照存儲設備狀態最長時間為一年。如果至少每年更新一次狀態,則設備快照將永久保留狀態;否則狀態將過期。
步驟s2具體為:
b1.應用程式向雲端設備快照請求獲取所述智能設備的當前狀態信息;
本步驟中,app通過httpsapi請求帳戶所綁定的設備的當前狀態,設備快照接收請求後從資料庫中讀取設備的最新狀態並返回給app。同時,app也作為訂閱者訂閱了此設備快照的狀態更新topic。多個帳戶的app可同時訂閱單個設備快照的topic,消息broker可同時轉發給這些訂閱者消息。
b2.雲端設備快照接收請求後,從雲端資料庫內獲取所述智能設備的當前狀態信息,並發送所述當前狀態信息至應用程式;
本步驟中,app通過httpsapi請求改變帳戶所綁定的設備的狀態,也就是給快照設置用戶想要的預期的狀態。app將json格式的數據發送給設備快照,json格式的數據中包含了狀態改變的控制命令。
b3.應用程式接收所述智能設備當前狀態信息後,將所述當前狀態信息與預期狀態信息比對,獲取狀態偏差信息,並將所述狀態偏差信息發送至雲端設備快照。
如圖2所示為本實施例中一種基於設備快照的物聯網智能設備狀態同步系統結構圖,該系統包括雲端設備快照模塊100、智能設備sdk模塊200、移動終端應用程式sdk模塊300;
雲端設備快照模塊100負責管理狀態偏差、預期狀態、上報狀態、元數據和版本。
狀態偏差指的是設備上報狀態與預期狀態的偏差;
元數據指的是設備的基本信息;
版本指的是設備固件的版本。
如圖3所示為本實施例中雲端設備快照模塊100結構圖,該結構包括:
第一獲取單元110,用於獲取智能設備當前狀態信息;
第二獲取單元120,用於獲取狀態偏差信息,所述狀態偏差信息包括:智能設備狀態改變請求、智能設備狀態改變控制命令;
執行單元130,用於接收並通過所述智能設備狀態改變請求,根據所述智能設備狀態改變控制命令更改所述智能設備狀態;
所述智能設備sdk模塊200用於與雲端進行通信,並發送智能設備當前狀態信息至雲端設備快照模塊;
所述移動終端應用程式sdk模塊300用於將所述當前狀態信息與預期狀態信息比對,獲取狀態偏差信息,並將所述狀態偏差信息發送至雲端設備快照。
如圖4所示為本實施例中智能設備sdk模塊200結構圖,該結構包括:
通信單元210,用於基於mqtt協議建立與雲端的通信連接;
第一發送單元220,用於發送智能設備當前狀態信息至雲端設備快照。
如圖5所示為本實施例中移動終端應用程式sdk模塊300結構圖,該結構包括:
請求單元310,用於向雲端設備快照模塊請求獲取智能設備的當前狀態信息;
對比單元320,用於在接收智能設備的當前狀態信息後,將所述當前狀態信息與預期狀態信息比對,獲取狀態偏差信息;
第二發送單元330,用於將所述狀態偏差信息發送至雲端設備快照模塊。
本實施例提供一種基於設備快照的物聯網智能設備狀態同步方法及系統,可解決過多的設備狀態消息發送給用戶的問題,此外,通過設置智能設備預期狀態信息,能有效對智能設備進行狀態監測及控制。
實施例二
本實施例為智能設備接入雲端並建立通信連接的具體介紹。
參考圖1,本實施例中,一種基於設備快照的物聯網智能設備狀態同步方法包括步驟:
s1.獲取智能設備當前狀態信息;
s2.獲取狀態偏差信息,所述狀態偏差信息包括:智能設備狀態改變請求、智能設備狀態改變控制命令;
s3.接收並通過所述智能設備狀態改變請求,根據所述智能設備狀態改變控制命令更改所述智能設備狀態。
步驟s1中,智能設備基於mqtt協議建立與雲端的通信連接。
mqtt協議是為大量計算能力有限,且工作在低帶寬、不可靠的網絡的遠程傳感器和控制設備通訊而設計的協議,它具有以下主要的幾項特性:
1、使用發布/訂閱消息模式,提供一對多的消息發布,解除應用程式耦合;
2、對負載內容屏蔽的消息傳輸;
3、使用tcp/ip提供網絡連接;
4、有三種消息發布服務質量:
「至多一次」,消息發布完全依賴底層tcp/ip網絡。會發生消息丟失或重複。這一級別可用於如下情況,環境傳感器數據,丟失一次讀記錄無所謂,因為不久後還會有第二次發送。
「至少一次」,確保消息到達,但消息重複可能會發生。
「只有一次」,確保消息到達一次。這一級別可用於如下情況,在計費系統中,消息重複或丟失會導致不正確的結果。
5、小型傳輸,開銷很小(固定長度的頭部是2位元組),協議交換最小化,以降低網絡流量;
6、使用lastwill和testament特性通知有關各方客戶端異常中斷的機制;
本實施例中,智能設備基於mqtt協議建立與雲端的通信連接步驟具體為:
a11.智能設備使用控制臺申請的密鑰進行籤名請求授權;
本步驟中,設備使用控制臺申請的密鑰進行籤名請求授權,籤名使用hmacmd5算法(可選hmacsha1、md5),籤名內容=devieceid+appkey,使用key=appsecret+devicesecret。
a12.雲端伺服器驗證籤名是否合法,若合法,則返回pubkey證書;
本步驟中,伺服器驗證籤名合法,並返回pubkey證書(x.509格式base64)。
a13.智能設備使用pubkey證書tls協議連接mqtt。
本步驟中,設備使用pubkey證書tls協議連接mqtt。
智能設備與雲端的通信模式採用發布/訂閱模式,基於topic進行消息的路由轉發,讓設備端或者服務端可以發布訂閱消息,實現異步的通信。適用的場景有設備端與雲端的異步通信,也可以適用m2m(設備與設備間通信)。
雲端平臺消息broker維護所有topic的發布訂閱用戶列表。當消息發送到topic,消息broker會檢查該topic的所有訂閱用戶,然後將消息轉發給所有具有訂閱該topic權限的客戶端或者服務端。
本實施例中,通信數據的格式採用json格式,包含期望狀態、上報狀態、狀態偏差、元數據、版本等數據,舉例定義如下:
實施例三
本實施例為控制智能設備進行狀態改變的具體介紹。
參考圖1,本實施例中,一種基於設備快照的物聯網智能設備狀態同步方法包括步驟:
s1.獲取智能設備當前狀態信息;
s2.獲取狀態偏差信息,所述狀態偏差信息包括:智能設備狀態改變請求、智能設備狀態改變控制命令;
s3.接收並通過所述智能設備狀態改變請求,根據所述智能設備狀態改變控制命令更改所述智能設備狀態。
步驟s3具體為:
c1.雲端設備快照接收並通過所述應用程式發送的智能設備狀態改變請求;
c2.若所述智能設備為在線狀態,則雲端設備快照發送所述智能設備狀態改變控制命令至所述智能設備;
c3.智能設備接收所述智能設備狀態改變控制命令,並做對應狀態改變。
設備快照接收請求後,如果設備在線則通過mqtt協議下發給設備,如果設備離線,則保存此命令,以此狀態作為app期望設備達到的狀態。後續設備上線後,如果有狀態變更,則設備快照忽略中間頻繁的狀態上報,以之前所設的預期的狀態來確認設備狀態的改變,並以此確認的狀態發送給app。
步驟c2還包括:
若所述智能設備為離線狀態,則雲端設備快照保存所述智能設備狀態改變控制命令。
當智能設備上線後,判斷所述智能設備是否存在狀態改變:
若不存在,則雲端設備快照將所述保存的智能設備狀態改變控制命令發送至所述智能設備;
若存在,則雲端設備快照獲取所述智能設備的新的當前狀態信息,發送所述新的當前狀態信息至應用程式,並返回實施例一中的步驟b3。
本文中所描述的具體實施例僅僅是對本發明精神作舉例說明。本發明所屬技術領域的技術人員可以對所描述的具體實施例做各種各樣的修改或補充或採用類似的方式替代,但並不會偏離本發明的精神或者超越所附權利要求書所定義的範圍。