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。前往 OTA 升级 > 固件管理 中 版本号 列查看固件版本号。 |
响应参数¶
备注
对于旧版固件文件,返回产品信息。对于新版固件文件,不返回产品信息。
名称 |
数据类型 |
描述 |
---|---|---|
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 进入 |
retryPolicy |
RetryPolicy 结构体 |
失败 OTA 任务重试的策略,其结构参见 RetryPolicy 结构体。 |
schedulePolicy |
SchedulePolicy 结构体 |
OTA 任务调度的策略,其结构参见 SchedulePolicy 结构体。 |
maximumConcurrency |
Integer |
升级任务最大并发量。 |
status |
String |
任务状态。
|
createTime |
Long |
任务的创建时间。 |
UpgradeScope 结构体 ¶
名称 |
数据类型 |
描述 |
---|---|---|
type |
String |
待升级设备的范围。有以下可选值:
|
versionNumbers |
String 数组 |
待升级的固件版本号列表。 |
deviceKeys |
String 数组 |
指定固件待验证或升级的设备的 Device Key。只能通过 |
attributes |
Map(Key 为 String,Value 为 Object 数组) |
指定具有特定属性和属性值的设备加入固件验证或升级。只能通过 |
tags |
Map(Key 为 String,Value 为 String 数组) |
指定具有特定标签和标签值的设备加入固件验证或升级。只能通过 |
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 示例: