設備鏡像topic 簇

MQTT物聯網套件支援用戶通過設備鏡像實現設備狀態、配置信息的同步,如下圖所示,詳情見設備鏡像

設備鏡像topic 簇topic 列表如下:

系統topic 用途 QoS 可訂閱 可發佈
$sys/{pid}/{device- name}/image/update 設備更新鏡像中屬性 0/1
$sys/{pid}/{device- name}/image/update/accepted 系統通知"設備鏡像更新成功" 0
$sys/{pid}/{device- name}/image/update/rejected 系統通知"設備鏡像更新失敗" 0
$sys/{pid}/{device- name}/image/update/delta 系統通知"屬性中上報值與期望值存在差異" 0
$sys/{pid}/{device- name}/image/get 設備鏡像信息查詢 0/1
$sys/{pid}/{device- name}/image/get/accepted 系統通知"設備鏡像查詢成功" 0
$sys/{pid}/{device- name}/image/get/rejected 系統通知"設備鏡像查詢失敗" 0

設備鏡像屬性更新

設備可以通過向系統topic:$sys/{pid}/{device-name}/image/update發佈消息更新,payload示例:

{
    "state": {
        "desired": {            
            "color": "green"
        },
        "reported": {    
            "color": "red"
        }
    }
}

其中,參數說明如下:

參數 類型 是否必填 說明
state object Yes
desired object 用於更新設備狀態/配置信息期望狀態,與 reported至少存在一項
reported object 用於更新設備狀態/配置信息當前狀態,與 desired至少存在一項

設備鏡像更新支援QoS1,若publish QoS=1,則平台回復publish ack

  • 若鏡像更新成功,平台通過系統topic:$sys/{pid}/{device-name}/image/update/accepted 下發成功消息

  • 若鏡像更新失敗,平台通過系統topic:$sys/{pid}/{device-name}/image/update/rejected 下發更新失敗消息,見錯誤碼表

  • 設備進行更新成功後,若reported內容與desired內容產生了差異,則觸發delta消息,設備可以通過訂閱系統topic:$sys/{pid}/{device- name}/image/update/delta 獲取該差異消息

設備獲取屬性差異

當應用/設備更新reported或者desired屬性後,平台會計算屬性差異delta,若delta存在,平台會發送該差異消息至系統topic:$sys/{pid}/{device-name}/image/update/delta,設備可以通過訂閱該topic獲取屬性差異消息,消息示例如下:

{
    "state": {
        "color": "green"
    },
    "metadata": {
        "color": {
            "timestamp": 1469574492
        }
    },
    "version":2,
    "timestamp":1469574492
}

設備鏡像屬性查詢

設備可以通過向系統topic:$sys/{pid}/{device-name}/image/get 發佈空消息查詢當前鏡像最新數據

  • 設備鏡像查詢支援QoS1,若publish QoS=1,則平台回復publish ack

  • 若鏡像查詢成功,平台通過系統topic:$sys/{pid}/{device- name}/image/get/accepted 下發鏡像最新數據

  • 若鏡像更新失敗,平台通過系統topic:$sys/{pid}/{device- name}/image/get/rejected 下發更新失敗消息,見錯誤碼表

錯誤碼

錯誤碼 err_code 錯誤消息err_msg 說明
128 unspecified error 未明確的錯誤
160 illegal json 非法json
161 json out of bound json數據過長
162 json depth out of bound json嵌套層級過多
163 state key not found state欄位不存在
164 desired or reported key not found 未包含"desired" 與"reported"欄位
165 invalid parameters 存在非法參數
166 device image existed 設備鏡像已存在
167 device image not exists 設備鏡像不存在

更多幫助

了解使用設備鏡像進行設備狀態同步的最佳實例

个搜索结果,搜索内容 “

    0 个搜索结果,搜索内容 “