V2.1 Get OTA Job


查询一个固件 OTA 升级 job 详情。

如果你在使用 API 批量更新相关 OTA 升级任务信息后调用当前 API,建议两次调用间隔 2 秒左右,以免获取到未更新数据。


该 API 支持在 EnOS 2.2.0 及以上环境中使用。

操作权限


使用此 API 前,确保服务账号已被授予包含下列服务和操作权限的策略。有关授权服务账号的更多信息,参见 管理服务账号


需授权的服务 所需操作权限
固件 Read OTA

请求格式

GET https://{apigw-address}/connect-service/v2.1/ota-jobs?action=get

请求参数(URI)

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

响应参数

名称 数据类型 描述
data JobInfo 结构体 OTA job 的详情。其结构参见 JobInfo 结构体

JobInfo 结构体

名称 数据类型 描述
orgId String 组织 ID。
productKey String 设备的 Product key。
jobId String OTA Job ID。
name StringI18n Job 名称。
firmwareId String 固件 ID。
firmwareVersion String 固件版本。
firmwareName StringI18n 固件名称。
type String

任务类型。

  • verify:固件验证 job。
  • upgrade:固件升级 job。
enableUpgradeRequest Boolean 是否允许设备主动请求升级。
upgradePolicy String

升级策略。

  • snapshot:快照式升级
  • incremental:增量式升级

其含义参见 升级策略

upgradeScope UpgradeScope 结构体 待升级的设备及其固件版本号等信息,待升级的设备及版本号等信息,其结构参见 UpgradeScope 结构体
upgradeTimeout Long 升级超时时间,当 OTA task 进入 upgrading 状态时开始计算。单位是秒。你可以使用 Search OTA Task 来查询 OTA task 的状态。
retryPolicy RetryPolicy 结构体 失败 OTA 任务重试的策略,其结构参见 RetryPolicy 结构体
schedulePolicy SchedulePolicy 结构体 OTA 任务调度的策略,其结构参见 SchedulePolicy 结构体
maximumConcurrency Integer 升级任务最大并发量。
status String

任务状态。

  • started :已启动
  • stopped :已停止
createTime Long 任务的创建时间。

UpgradeScope 结构体

名称 数据类型 描述
type String

待升级设备的范围。有以下可选值:

  • total : 所有的固件版本号为 versionNumbers 中指定的版本号的设备
  • partial : 固件版本号为 versionNumbers 中指定的版本号的设备的其中一部分。升级任务 可以通过结构体内的 deviceKeys attributes tags assetTrees 中的某一个参数来具体指定升级哪些设备,固件验证任务 则只能通过 deviceKeys 指定验证哪些设备。
versionNumbers String 数组 待升级的固件版本号列表。
deviceKeys String 数组 指定固件待验证或升级的设备的 Device Key。只能通过 deviceKeys attributes tags assetTrees 其中一个参数来指定设备。
attributes Map(Key 为 String,Value 为 Object 数组) 指定具有特定属性和属性值的设备加入固件验证或升级。只能通过 deviceKeys attributes tags assetTrees 其中一个参数来指定设备。
tags Map(Key 为 String,Value 为 String 数组) 指定具有特定标签和标签值的设备加入固件验证或升级。只能通过 deviceKeys attributes tags assetTrees 其中一个参数来指定设备。
assetTrees AssetTreeScope 结构体 指定资产树里的设备加入固件验证或升级。只能通过 deviceKeys attributes tags assetTrees 其中一个参数来指定设备。其结构参见 AssetTreeScope 结构体

AssetTreeScope 结构体

名称 数据类型 描述
treeId String 资产树 ID。
includedNodes String Array 资产树中的节点,由资产的 asset ID 识别。一个节点代表其自身及所有子节点,留空代表整棵树。

RetryPolicy 结构体

名称 数据类型 描述
enableRetry Boolean 是否开启失败重试。
retryInterval Integer 失败后自动重试间隔时间(秒)。
retryCount Integer 最大自动重试次数。

SchedulePolicy 结构体

名称 数据类型 描述
isRepeatDaily Boolean 任务是否每日重复。
startTimestamp Long 开始调度时间的 13 位时间戳。
endTimestamp Long 结束调度时间的 13 位时间戳。
timezoneOffsetInMinutes Integer 时区偏移量,单位:分钟。

错误码

代码 错误信息 描述
24404 Job not found 找不到 OTA job。

示例

请求示例

url: https://{apigw-address}/connect-service/v2.1/ota-jobs?action=get&orgId=yourOrgId&jobId=yourJobId
method: GET

返回示例

{
        "code":0,
        "msg":"OK",
        "requestId":"42fc4dcd-636b-48ac-a69b-4d2f95d0c3de",
        "data":{
                "orgId":"yourOrgId",
                "productKey":"yourProductKey",
                "jobId":"yourJobId",
                "name":{
                        "defaultValue":"name",
                        "i18nValue":{

                        }
                },
                "firmwareId":"5ed0dd4a646542001b3d113f",
                "type":"upgrade",
                "enableUpgradeRequest":true,
                "upgradePolicy":null,
                "upgradeScope":{
                        "type":"total",
                        "versionNumbers":[
                                "1.0"
                        ],
                        "deviceKeys":null,
                        "attributes":null,
                        "tags":null,
                        "assetTrees":null
                },
                "startSchedule":0,
                "endSchedule":86399,
                "status":"started",
                "createTime":1591171274788,
                "startAfterCreate":true
        }
}

SDK 示例


你可以在 Github 上获取接入服务的 SDK 示例: