概述
物聯網平台提供裝置影子功能,用于緩存裝置狀态。裝置線上時,可以直接擷取雲端指令;裝置離線時,上線後可以主動拉取雲端指令。裝置影子是一個 JSON 文檔,用于儲存設備上報狀态、應用程式期望狀态資訊。每個裝置有且隻有一個裝置影子,裝置可以通過MQTT擷取和設定裝置影子來同步狀态,該同步可以是影子同步給裝置,也可以是裝置同步給影子。本文使用MQTT.fx工具快速測試裝置影子的相關功能。
實驗測試
裝置影子Topic
物聯網平台已為每個裝置預定義了兩個Topic,用于實作資料流轉,可以直接使用。
-
/shadow/update/${YourProductKey}/${YourDeviceName}
裝置和應用程式釋出消息到此Topic。物聯網平台收到該Topic的消息後,将消息中的狀态更新到裝置影子中。
-
/shadow/get/${YourProductKey}/${YourDeviceName}
裝置影子更新狀态到該Topic,裝置訂閱此Topic擷取最新消息。
測試工具
這裡使用MQTT.fx驗證測試相關功能,關于MQTT.fx連接配接阿裡雲物聯網平台,參考: 使用MQTT.fx接入物聯網平台
一、裝置主動上報狀态

二、應用程式改變裝置狀态
使用
Open API Exployer調用
UpdateDeviceShadow接口。
三、裝置主動擷取影子内容
四、裝置主動删除影子屬性
五、注意
1、主動更新版本号時,裝置影子會檢查請求中的version值是否大于目前版本号;
2、version參數為long型。為防止參數溢出,您可以手動傳入-1将版本号重置;
3、删除操作也要求版本号大于目前的版本号。