IoT物聯網平臺「設備影子」開發實戰

<meta name="source" content="lake">

簡介: IoT物聯網平臺「設備影子」開發實戰

IoT物聯網平臺提供設備影子功能,在雲端通過一個JSON文件持久化存儲設備上報狀態值和業務系統的期望值。每個設備有且只有一個設備影子,設備可以通過MQTT協議獲取期望值desired和設置設備****狀態reported,業務系統通過HTTPS協議獲取設備狀態reported和設置設備期望值desired

  • 設備可以主動上報運行狀態,業務系統可以隨時讀取,而不需要關心設備是否在線。

  • 當雲端業務系統給指定設備設置期望值後,如果設備在線,可以實時接收雲端期望值變更;設備離線,再次上線可以主動拉取雲端期望值。

設備影子通信的兩個Topic:

設備影子 JSON

在 IoT物聯網平臺控制檯,設備詳情,可以查看設備影子,默認影子JSON數據,如下圖:

1.更新設備狀態 reported

IoT 物聯網設備可以主動更新當前狀態數據到雲端設備影子的(reported)節點中,通信報文,示例如下:

成功更新雲端設備影子後,設備端會收到雲端下發的響應報文,如下:

我們在IoT物聯網控制檯,設備詳情的設備影子中,可以查看完整的設備影子JSON文件,如下圖

2.獲取設備狀態 reported

業務系統可以通過調用設備影子的GetDeviceShadow API,獲取到設備狀態數據(reported),示例代碼如下(Node.js):

返回結果如下,其中 ShadowMessage 爲設備影子JSON的字符串形式,如下圖:

3.設置設備期望值 desired

業務系統調用UpdateDeviceShadow API,可以給設備設置期望值(desired),代碼示例如下(Node.js):

設置成功後,我們在IoT物聯網控制檯,設備詳情的設備影子中,可以查看最新影子文件,如下圖:

與此同時,在線的設備會實時收到設備影子消息推送,內容如下:

離線的設備,再次上線時,可以主動獲取設備影子

雲端回覆設備影子消息推送,內容如下:

4.刪除設備影子

設備可以主動刪除設備影子屬性,其中method爲delete,要刪除的屬性的值爲null

刪除成功後,我們在控制檯查看設備影子如下圖:

設備上報時,將reported設置爲null,可以刪除全部屬性的值。

刪除成功後,我們在控制檯查看設備影子如下圖:

5.增量delta和規則引擎事件

阿里雲IoT物聯網平臺的設備影子不支持增量delta推送,設備更新影子狀態後也不會觸發規則引擎流轉消息事件,業務系統無法實時感知設備狀態(reported)變化

往期推薦

<u>1、39張傳感器工作原理GIF圖</u>

<u>2、智能手持測溫槍開發實踐</u>

<u>3、JMeter壓測MQTT服務性能實戰</u>

<u>4、IoT物聯網平臺日誌服務詳解</u>

<u>5、自建MQTT集羣遷移阿里雲IoT實踐</u>

<u>6、工業Modbus電力104規約接入IoT平臺</u>

<u>7、設備免燒錄三元組,即時註冊解決方案</u>

<u>8、IoT+TSDB+Quick BI 搭建樓宇環境監控</u>

<u>9、JS全棧開發,構建智能家居小程序</u>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章