V2.1 Get OTA Job¶
查询一个固件 OTA 升级 job 详情。
如果你在使用 API 批量更新相关 OTA 升级任务信息后调用当前 API,建议两次调用间隔 2 秒左右,以免获取到未更新数据。
该 API 支持在 EnOS 2.2.0 及以上环境中使用。
请求格式¶
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 | 任务类型。
|
enableUpgradeRequest | Boolean | 是否允许设备主动请求升级。 |
upgradePolicy | String | 升级策略。
其含义参见 升级策略。 |
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 | 任务状态。
|
createTime | Long | 任务的创建时间。 |
UpgradeScope 结构体 ¶
名称 | 数据类型 | 描述 |
---|---|---|
type | String | 待升级设备的范围。有以下可选值:
|
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
}
}