全部產品
Search
文件中心

IoT Platform:裝置影子JSON詳解

更新時間:Feb 11, 2025

本文檔介紹裝置影子的JSON格式表達方法。

裝置影子JSON文檔樣本:

{
    "state": {
        "desired": {
            "color": "RED", 
            "sequence": [
                "RED", 
                "GREEN", 
                "BLUE"
            ]
        }, 
        "reported": {
            "color": "GREEN"
        }
    }, 
    "metadata": {
        "desired": {
            "color": {
                "timestamp": 1469564492
            }, 
            "sequence": {
                "timestamp": 1469564492
            }
        }, 
        "reported": {
            "color": {
                "timestamp": 1469564492
            }
        }
    }, 
    "timestamp": 1469564492, 
    "version": 1
}

JSON屬性描述,如下表JSON屬性說明所示。

表 1. JSON屬性說明
屬性 描述
desired 裝置的預期狀態。僅當裝置影子文檔具有預期狀態時,才包含desired部分。

應用程式向desired部分寫入資料,更新事物的狀態,而無需直接連接到該裝置。

reported 裝置的報告狀態。裝置可以在reported部分寫入資料,報告其最新狀態。

應用程式可以通過讀取該參數值,擷取裝置的狀態。

JSON文檔中也可以不包含reported部分,沒有reported部分的文檔同樣為有效影子JSON文檔。

metadata 當使用者更新裝置狀態文檔後,裝置影子服務會自動更新metadata的值。

裝置狀態的中繼資料的資訊包含以 Epoch 時間表示的每個屬性的時間戳記,用來擷取準確的更新時間。

timestamp 影子文檔的最新更新時間。
version 使用者主動更新版本號碼時,裝置影子會檢查請求中的version值是否大於目前的版本號。

如果大於目前的版本號,則更新裝置影子,並將version值更新到請求的版本中,反之則會拒絕更新裝置影子。

該參數更新後,版本號碼會遞增,用於確保正在更新的文檔為最新版本。

version參數為long型。為防止參數溢出,您可以手動傳入-1將版本號碼重設為0

說明

裝置影子支援數組。更新數組時必須全量更新,不能只更新數組的某一部分。

更新數組資料樣本:

  • 初始狀態:
    {
        "reported" : { 
            "colors" : [
                "RED", 
                "GREEN",
                "BLUE" 
            ]
        }
    }
  • 更新:
    {
        "reported" : {
            "colors" : [
                "RED"
            ] 
        }
    }
  • 最終狀態:
    {
        "reported" : {
            "colors" : [
                "RED"
            ] 
        }
    }