天天看點

阿裡雲物聯網平台裝置影子功能示範

作者:俏巴

概述

物聯網平台提供裝置影子功能,用于緩存裝置狀态。裝置線上時,可以直接擷取雲端指令;裝置離線時,上線後可以主動拉取雲端指令。裝置影子是一個 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、删除操作也要求版本号大于目前的版本号。

更多參考

裝置影子資料流 裝置影子JSON詳解 裝置影子概覽

繼續閱讀