天天看點

任務管理-輕松搞定 IoT 裝置重新開機、資源包更新、固件更新等業務

面對 IoT 裝置線上營運和遠端管理的訴求,IoT企業物聯網平台釋出了任務管理功能,可按産品次元、分組、或根據業務訴求批量選取裝置,發起裝置重新開機、配置參數變更、資源包更新、固件更新等業務定義任務。

任務管理的系統Topic和業務流程設計如下圖:

任務管理-輕松搞定 IoT 裝置重新開機、資源包更新、固件更新等業務

 任務管理實戰  

我們以批量裝置遠端更新運作參數場景為例,講解任務管理的開發過程。

我們業務中有10000多台洗衣機,7836台處于線上狀态,其餘離線或未激活。如下圖:

任務管理-輕松搞定 IoT 裝置重新開機、資源包更新、固件更新等業務
任務管理-輕松搞定 IoT 裝置重新開機、資源包更新、固件更新等業務

1.裝置端開發

通過閱讀任務管理文檔,我們知道線上裝置需要訂閱任務Topic,才能實時擷取到任務通知。

對應Topic和Payload如下:

/sys/{productKey}/{deviceName}/thing/job/notify
{
    "id":"7542940",
    "version":"1.0",
    "params":{
        "task":{
            "taskId":"i5Ks6F010101",
            "status":"SENT",
            "jobDocument":{
                "operatingMode":23
            },
            "jobFile":{
                "signMethod":"Md5",
                "sign":"wssxff56dhdsd",
                "fileUrl":"https://iotx-oss.aliyuncs.com/ota.zip"
            }
        }
    }
}           

離線裝置上線後,需要主動拉取任務Topic,才能擷取到曆史任務資訊。

請求任務對應Topic和Payload如下:

/sys/{productKey}/{deviceName}/thing/job/get
{
    "id":"127542",
    "version":"1.0.0",
    "params":{
        "taskId":"$next"
    }
}
```
IoT物聯網平台響應任務資訊的Topic和Payload如下:
> /sys/{productKey}/{deviceName}/thing/job/get_reply



```json
{
    "code":200,
    "data":{
        "task":{
            "jobDocument":{
                "operatingMode":23
            },
            "taskId":"b2ceb5ddsd69",
            "status":"SENT"
        },
        "taskId":"$next"
    },
    "id":"1610526478300",
    "method":"thing.job.get",
    "version":"1.0"
}           

裝置接收到任務資訊後,需要根據業務情況主動上報裝置任務執行進度和結果資訊,對應Topic和Payload如下:

/sys/{productKey}/{deviceName}/thing/job/update
{
    "id":"175423",
    "version":"1.0",
    "params":{
        "taskId":"i5Kssgc010101",
        "status":"IN_PROGRESS",
        "statusDetails":{
            "endTime":1610629200000
        },
        "progress":64
    }
}           

2.IoT控制台建立任務

在企業物聯網執行個體控制台,選擇裝置管理的任務,選擇指定産品,上傳任務模闆,模闆中攜帶了運作參數 "operatingMode":23。

任務管理-輕松搞定 IoT 裝置重新開機、資源包更新、固件更新等業務

在作業配置選擇每分鐘執行的裝置數量和任務逾時時間。

任務管理-輕松搞定 IoT 裝置重新開機、資源包更新、固件更新等業務

點選完成,我們看到建立的任務處于執行中,如下圖:

任務管理-輕松搞定 IoT 裝置重新開機、資源包更新、固件更新等業務

3.任務執行

進入任務詳情,在作業概覽,我們可以看到處于執行中,成功,失敗,已逾時等不同狀态下的裝置情況。

任務管理-輕松搞定 IoT 裝置重新開機、資源包更新、固件更新等業務

同理,我們可以借助任務管理來批量更新裝置端資源包,批量重新開機裝置,甚至固件更新功能。

任務管理-輕松搞定 IoT 裝置重新開機、資源包更新、固件更新等業務