Search Device Upgrade


查询设备的固件信息及升级状态。

操作权限

需授权的资源 所需操作权限
设备管理 Read

请求格式

POST https://{apigw-address}/connect-service/v2.1/ota-firmwares?action=searchDeviceUpgrade

请求参数(URI)

名称 位置(Path/Query) 必需/可选 数据类型 描述
orgId Query 必需 String 资产所属的组织 ID。 如何获取 orgId 信息>>

请求参数(Body)

名称 必需/可选 数据类型 描述
expression 可选 String

查询表达式,支持类 SQL 的查询。目前支持查询的字段是 productKeyfirmwareVersionisUpgrading

  • productKey firmwareVersion 支持等于(=)、in 运算符。
  • isUpgrading 支持等于(=)运算符。
pagination 可选 Pagination 请求结构体 分页参数。如未指定,默认每页10条。每页最大记录数为200条,但为获得最佳性能,建议每页不超过50条。不支持使用 sorters 参数对结果进行排序。详见 Pagination 请求结构体>>

响应参数

名称 数据类型 描述
data DeviceFirmware 结构体数组 设备的固件的详情列表,DeviceFirmware 结构体的结构参见下表。

DeviceFirmware 结构体

名称 数据类型 描述
orgId String 资产所属的组织 ID。
assetId String 资产的 ID。
productKey String 设备的 product key。
deviceKey String 设备的 device key。
firmwareVersion String 设备的固件版本
isUpgrading Boolean 设备固件升级的状态。 true 表示正在升级。 false 表示升级已经结束,有可能是升级成功,也有可能升级失败。

错误码

有关错误码的描述,参见 通用错误码

示例

请求示例

url: https://{apigw-address}/connect-service/v2.1/ota-firmwares?action=searchDeviceUpgrade&orgId=yourOrgId
method: POST
requestBody:
{
    "expression": "productKey='yourProductKey'",
    "pagination": {
        "pageNo": 1,
        "pageSize": 5
    }
}

返回示例

{
        "code":0,
        "msg":"OK",
        "requestId":"7bd0040b-63c6-4173-b764-d2e8d6642dd3",
        "data":[
                {
                        "orgId":"o15475466766371",
                        "assetId":"rFFJ6j53",
                        "productKey":"8UhOTwV5",
                        "deviceKey":"WnszKfi8NU",
                        "firmwareVersion":"7777",
                        "isUpgrading":false
                },
                {
                        "orgId":"o15475466766371",
                        "assetId":"qOE2FZb5",
                        "productKey":"BXwU4kMk",
                        "deviceKey":"ota-device2",
                        "firmwareVersion":"2.0",
                        "isUpgrading":true
                },
                {
                        "orgId":"o15475466766371",
                        "assetId":"kYK5nVJv",
                        "productKey":"8UhOTwV5",
                        "deviceKey":"bCUsvJvEBT",
                        "firmwareVersion":"2020.01",
                        "isUpgrading":false
                },
                {
                        "orgId":"o15475466766371",
                        "assetId":"VeHlM7wW",
                        "productKey":"8UhOTwV5",
                        "deviceKey":"1HshYDJ3wf",
                        "firmwareVersion":"2020.01",
                        "isUpgrading":false
                },
                {
                        "orgId":"o15475466766371",
                        "assetId":"TGEIuAWG",
                        "productKey":"8UhOTwV5",
                        "deviceKey":"bfb1EcjaKG",
                        "firmwareVersion":"7.7",
                        "isUpgrading":false
                }
        ],
        "pagination":{
                "sortedBy":null,
                "pageNo":1,
                "pageSize":5,
                "totalSize":9
        }
}

Java SDK 调用示例

package com.envisioniot.enos.connect_service.ota.firmware;

import com.envision.apim.poseidon.config.PConfig;
import com.envision.apim.poseidon.core.Poseidon;
import com.envisioniot.enos.api.common.constant.request.Pagination;
import com.envisioniot.enos.connect_service.v2_1.ota.firmware.SearchDeviceUpgradeRequest;
import com.envisioniot.enos.connect_service.v2_1.ota.firmware.SearchDeviceUpgradeResponse;

public class SearchDeviceUpgrade {
    public static void main(String[] args) {
        final String appKey = "yourAppKey";
        final String appSecret = "yourAppSecret";
        String serverUrl = "yourServerUrl";

        String orgId = "yourOrgId";

        SearchDeviceUpgradeRequest request = new SearchDeviceUpgradeRequest();
        request.setOrgId(orgId);

        request.setExpression("productKey='yourProductKey'");

        Pagination pagination = new Pagination();
        pagination.setPageNo(1);
        pagination.setPageSize(5);

        request.setPagination(pagination);

        SearchDeviceUpgradeResponse response = Poseidon
                .config(PConfig.init().appKey(appKey).appSecret(appSecret).debug())
                .url(serverUrl)
                .getResponse(request, SearchDeviceUpgradeResponse.class);
    }
}