天天看點

IoT存量裝置跨賬号遷移,動态切換region節點,公共區到企業執行個體遷移方案

基于開放API實作IoT平台裝置動态注冊方案

0.背景(裝置無需燒錄IoT三元組)

IoT場景需要每個裝置有唯一身份辨別,

  • 如果裝置産線不具備針對裝置燒錄三元組能力。
  • 已出貨裝置從自建平台,或三方平台(極光IoT,aws,華為雲IoT,百度天工)遷移到阿裡雲IoT物聯網平台

運作時動态注冊方案允許裝置固件可以無差别燒錄,在裝置售賣給消費者手上後,第一次使用時動态注冊三元組,然後再與IoT平台建立網絡連接配接。

步驟

1.裝置端固件更新

  1. 固件燒錄如下三元組擷取邏輯
IoT存量裝置跨賬号遷移,動态切換region節點,公共區到企業執行個體遷移方案

涉及到系統互動如下

IoT存量裝置跨賬号遷移,動态切換region節點,公共區到企業執行個體遷移方案

1. 應用伺服器API設計

企業業務伺服器提供IotDeviceRegister 接口

入參:

字段 描述
deviceId 由裝置唯一辨別根據規則生成的字元串。比如mac,序列号sn等

傳回資料:

productKey 産品Id
deviceName 裝置name
deviceSecret 裝置秘鑰
endpointURL 接入點域名

業務邏輯:

  1. 根據deviceId查詢OTS表,如果查不到裝置,傳回裝置非法
  2. 如果有裝置,有三元組,直接傳回三元組
  3. 如果有裝置,無三元組,去IoT動态注冊裝置,存儲三元組,并傳回三元組和域名

2. 表格存儲OTS庫設計參考

字段列 備注
由mac位址根據規則生成的字元串 主鍵
registerTime 裝置注冊時間
activateTime 裝置激活時間
三元組productKey(裝置所屬産品)
三元組deviceName
三元組deviceSecret
.

3. IoT裝置動态注冊POP API

RegisterDevice API文檔

https://help.aliyun.com/document_detail/69470.html

請求參數

名稱 類型 是否必需
Action String 要執行的操作,取值:RegisterDevice。
ProductKey 指定要為其注冊裝置的産品的Key。
DeviceName 為要注冊的裝置命名。裝置名稱應包含4-32個字元

傳回參數

RequestId 阿裡雲為該請求生成的唯一辨別符。
Success Boolean 是否調用成功。ture表示調用成功,false表示調用失敗。
ErrorMessage 調用失敗時,傳回的出錯資訊。
Data DeviceInfo 調用成功時,傳回注冊的裝置資訊。詳情參見
DeviceInfo 名稱
裝置隸屬的産品Key。
裝置名稱。
DeviceSecret 裝置密鑰。
IotId IoT平台為該裝置頒發的裝置ID,作為該裝置的唯一辨別符。
{
    "RequestId":"57b144cf-09fc-4916-a272-a62902d5b207",
    "Success": true,
    "Data": {
        "DeviceName": "CqXL5h5ysRTA4NxjABjj",
        "ProductKey": "a1ysRTA4N0",
        "DeviceSecret": "tXHf4ezGEHcwdyMwoCDHGBmk9a"
    }
}           

這樣我們裝置激活時,先通路企業伺服器業務API,擷取IoT平台的三元組身份後,發起MQTT的長連接配接建立,最終實作裝置上雲的目的。

繼續閱讀