天天看點

有一種糖叫文法糖【10】IOT實踐之如影随形

地球上的萬物和生靈,受到太陽的普照和恩澤,遵循着生長化收藏的自然規律而繁衍生息。在陽光的照耀下,也根據自身獨特的輪廓,在大地

上留下了黑暗的區域,人類稱之為影子;阿裡IOT的裝置影子功能主要用于兩個方面,裝置線上時,作為裝置狀态資訊的緩存;裝置離線時,作為裝置再次上線時,離線前狀态的儲存;

關于SHADOW在雲端的api一共有兩個,主要是查詢和更新裝置影子常用的兩個操作;

本次用來實驗和驗證的軟體連結如下:

http://xysuger.xunyun17.xyz/v0.0.10.rar

讀者如果感興趣的話,可以自行下載下傳運作驗證;

第一個操作是GetDeviceShadow,這個接口提供了使用者可以通過雲端,獲得目前裝置的影子資訊。這個指令帶有兩個參數,分别為産品關鍵字和裝置的名稱;發送的詳細格式如下:

XYsayFrO.IoT.Srv.GetDeviceShadow.a141rgUXgFl.lamp3_dev.

發送完後,傳回結果如下:

有一種糖叫文法糖【10】IOT實踐之如影随形

這裡如果發送成功後,會傳回裝置的影子資訊,詳細資訊是通過json格式傳回的,是以我們可以在裡面看到很多大括号;這裡的可以看到的是期望的資料和實際發送的資料,以color屬性為例,這裡實際上報的值為藍色blue,期望的值為綠色green。版本号在最後顯示為3。如果裝置第一次使用,是沒有裝置影子的,這裡的值也就為空;

第二個接口為更新裝置影子,這個接口可以通過雲端向指定産品下的裝置發送更新影子的具體消息,發送的指令為UpdateDeviceShadow,這個指令帶有三個參數第一個為産品的辨別符,第二個發送的裝置名稱,這前兩個參數和上面介紹的接口一樣,第三個參數為json格式的影子資訊,是以稍微有些複雜,json格式的主要要求就是用大括号把每種類别的資訊括起來,然後每一類單獨的資訊通過分号把類型和值分開,對于裝置影子的資訊,一般要求有這麼四種資訊需要上傳,第一種資訊為上傳的方法method,這裡是update表示更新;第二種資訊為期待的狀态desired,這裡我們将color屬性的期待狀态改為藍色blue,第三種資訊為實際上報的狀态,這裡我們将color屬性的實際上報狀态改為red紅色,第四種為更新的版本号,要求大于目前的版本号,我們通過上面的接口得知,目前的版本号為3,這裡配置為4;最後組合起來的完整指令如下:

XYsayFrO.IoT.Srv.UpdateDeviceShadow.a141rgUXgFl.lamp3_dev.{"method":"update","state":{"desired":{"color":"blue"},"reported":{"color":"red"}},"version":4}.

運作後,傳回success:true,表示運作成功;接着我們重複運作第一條指令,校驗以下我們修改的資訊是否生效;

有一種糖叫文法糖【10】IOT實踐之如影随形

這裡如果發送成功後,會在success字段傳回true;

通過察看ShadowMessage的json資料包,可以看到版本已經被改成4了,期望和實際的color值,也和以前的不一樣了,而是和我們修改後的一緻;

由于阿裡iot關于裝置影子的接口隻有2個,是以關于裝置影子在雲端接口基本操作的解釋就介紹到這裡;

随着這篇文章的結束,這個系列的文章也完結了。特此寫個順口溜作為這個系列的結尾:

阿裡物聯奧妙多,

諸多功能來加持,

産品管理定格局,

裝置操作分細節,

分組定義劃功能,

主題來把特性顯,

規則引擎邏輯強,

消息通信最及時,

裝置影子促穩定,

七類接口全學會,

物聯世界任我遊。

快到年底了,工作也忙起來了,提前預祝各位讀者,元旦快樂,新年快樂;明年開春再見;)