平台提供一组OTA固件升级的接口,客户端App通过本组接口可以获取指定设备的固件信息以及固件升级状态,同时提供了固件升级确认接口(当升级需要用户许可时使用)。只有管理员用户才具有调用固件升级接口的权限(设备的被分享者无法调用该设备的固件升级接口,只能查询固件升级的进度)。
获取固件升级信息
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/thing/ota/progress/getByUser |
1.0.2 |
获取某一个设备的固件升级信息,需要指定具体的固件版本号。如果存在相应的固件,返回当前固件的升级进度等信息。 |
是,客户端SDK需启用身份的鉴权,进行身份认证 |
请求参数
参数 |
类型 |
必填 |
描述 |
iotId |
String |
是 |
设备id |
version |
String |
是 |
对应的固件版本号 |
返回参数
参数 |
类型 |
必有 |
描述 |
iotId |
String |
是 |
设备id |
step |
Integer |
是 |
升级进度或升级错误信息
- 负数时,表示升级错误信息
- -1:升级操作失败
- -2:固件文件下载失败
- -3:固件文件校验失败
- -4:固件文件烧写失败
- 非负数时,表示升级进度,单位为:百分比
|
desc |
String |
否 |
描述信息 |
success |
Boolean |
是 |
是否成功标记,当为true时表示固件升级操作成功,反之表示升级未完成,包括正在升级或升级失败,请优先选择upgradeStatus参数来判断固件升级状态 |
needConfirm |
Boolean |
否 |
是否需要用户进行确认操作 |
upgradeStatus |
Integer |
否 |
当前升级状态,0:待升级或待确认;1:升级中;2:升级异常;3:升级失败;4:升级成功 |
示例
- 请求示例
{
"id": "1509086454180",
"version": "1.0",
"request": {
"apiVer": "1.0.2",
"iotToken": "token"
},
"params": {
"iotId": "",
"version": "1.0.1"
}
}
- 正常返回示例
{
"id": "94e0871c-0770-xxxx-xxxx-e840d86b3ba6",
"code": 200,
"data": {
"iotId": "xxxx",
"step": 10,
"desc": "xxxxxx",
"success": false,
"needConfirm": true,
"upgradeStatus": 0
}
}
获取设备固件
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/thing/ota/info/queryByUser |
1.0.2 |
获取某一个设备当前的升级固件信息 |
是,客户端SDK需启用身份的鉴权,进行身份认证 |
请求参数
参数 |
类型 |
必填 |
描述 |
iotId |
String |
是 |
设备id |
返回参数
参数 |
类型 |
必有 |
描述 |
currentVersion |
String |
是 |
当前设备实际烧录的版本号 |
version |
String |
是 |
待升级设备的目标版本号 |
currentTimestamp |
Date |
否 |
设备当前烧录的固件,对应的文件上传到云端时记录的时间 |
timestamp |
Date |
是 |
设备当前最新固件文件上传到云端时记录的时间 |
size |
String |
是 |
文件包大小,单位Byte |
md5 |
String |
是 |
版本固件文件md5 |
name |
String |
是 |
版本固件名称 |
url |
String |
是 |
版本固件地址,sts加密 |
desc |
String |
否 |
版本详情描述 |
示例
- 请求示例
{
"id": "1509086454180",
"version": "1.0",
"request": {
"apiVer": "1.0.2",
"iotToken": "token"
},
"params": {
"iotId": "xxxxx"
}
}
- 正常返回示例
{
"id": "94e0871c-0770-xxxx-xxxx-e840d86b3ba6",
"code": 200,
"data": {
"currentVersion": "1.2.2",
"version": "1.2.3",
"currentTimestamp": "2017-09-08 16:08:08",
"timestamp": "2017-09-10 12:11:34",
"size": "4000000",
"md5": "xxxxxxx",
"name": "xxxxxxx",
"url": "xxxxxxx",
"desc": "xxxxxxx"
}
}
取消固件升级
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/thing/ota/unupgradeByUser |
1.0.2 |
取消某一个设备的固件升级流程 |
是,客户端SDK需启用身份的鉴权,进行身份认证 |
请求参数
参数 |
类型 |
必填 |
描述 |
version |
String |
是 |
对应的固件版本号 |
iotid |
String |
是 |
设备id |
返回参数
参数 |
类型 |
必有 |
描述 |
data |
Boolean |
是 |
取消操作指令处理是否成功True:成功False:失败 |
示例
- 请求示例
{
"id": "1509086454180",
"version": "1.0",
"request": {
"apiVer": "1.0.2",
"iotToken": "token"
},
"params": {
"iotId": "xxxxxxx",
"version": "1.0.1"
}
}
- 正常返回示例
{
"id": "94e0871c-0770-xxxx-xxxx-e840d86b3ba6",
"code": 200,
"data": "true"
}
获取正在升级的设备列表
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/thing/ota/upgrade/listByUser |
1.0.2 |
获取当前正在升级的设备列表信息 |
是,客户端SDK需启用身份的鉴权,进行身份认证 |
请求参数
无
返回参数
参数 |
子参数 |
类型 |
必有 |
描述 |
data |
|
JSON Array |
是 |
当前正在升级的设备信息列表 |
|
iotId |
String |
是 |
设备id |
|
step |
Integer |
是 |
升级进度或升级错误信息
- 负数时,表示升级错误信息
- -1:升级操作失败
- -2:固件文件下载失败
- -3:固件文件校验失败
- -4:固件文件烧写失败
- 非负数时,表示升级进度,单位为:百分比
|
|
desc |
String |
否 |
描述信息 |
|
success |
Boolean |
是 |
是否成功标记,当为true时表示固件升级操作成功,反之表示升级未完成,包括正在升级或升级失败,请优先选择upgradeStatus参数来判断固件升级状态 |
|
needConfirm |
Boolean |
是 |
是否需要用户进行确认操作 |
|
upgradeStatus |
Integer |
是 |
当前升级状态,0:待升级或待确认;1:升级中;2:升级异常;3:升级失败;4:升级成功 |
示例
- 请求示例
{
"id": "1509086454180",
"version": "1.0",
"request": {
"apiVer": "1.0.2",
"iotToken": "token"
},
"params": {
}
}
- 正常返回示例
{
"id": "94e0871c-0770-xxxx-xxxx-e840d86b3ba6",
"code": 200,
"data": [
{
"iotId": "xxxx",
"step": 10,
"desc": "xxxxxx",
"success": false,
"needConfirm": true,
"upgradeStatus": 0
},
{
"iotId": "xxxx",
"step": 10,
"desc": "xxxxxx",
"success": false,
"needConfirm": true,
"upgradeStatus": 0
}
]
}
上报固件升级进度
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/ota/progress/postByUser |
1.0.2 |
上报某一个设备的固件升级的进度信息给到云端进行记录 |
是,客户端SDK需启用身份的鉴权,进行身份认证 |
请求参数
参数 |
类型 |
必填 |
描述 |
iotId |
String |
是 |
设备id |
step |
String |
是 |
固件升级进度信息(百分比) |
desc |
String |
是 |
升级信息的描述 |
version |
String |
是 |
对应的固件版本号信息 |
返回参数
无
示例
- 请求示例
{
"id": "1509086454180",
"version": "1.0",
"request": {
"apiVer": "1.0.2",
"iotToken": "token"
},
"params": {
"iotId": "xxxx",
"step": "1",
"desc": "xxxx",
"version": "1.0.1"
}
}
- 正常返回示例
{
"id": "94e0871c-0770-xxxx-xxxx-e840d86b3ba6",
"code": 200
}
上报版本号
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/thing/ota/version/reportByUser |
1.0.2 |
上报某一个设备当前烧录的版本号信息给云端 |
是,客户端SDK需启用身份的鉴权,进行身份认证 |
请求参数
参数 |
类型 |
必填 |
描述 |
iotId |
String |
是 |
设备id |
version |
String |
是 |
固件版本号 |
返回参数
无
示例
- 请求示例
{
"id": "1509086454180",
"version": "1.0",
"request": {
"apiVer": "1.0.2",
"iotToken": "token"
},
"params": {
"iotId": "xxxx",
"version": "1.0.1"
}
}
- 正常返回示例
{
"id": "94e0871c-0770-xxxx-xxxx-e840d86b3ba6",
"code": 200
}
批量确认设备升级
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/thing/ota/batchUpgradeByUser |
1.0.2 |
批量确认设备进入升级状态,用于需要客户端进行人为确认方可进行升级的场景(可以支持单个设备,也可以支持批量设备) |
是,客户端SDK需启用身份的鉴权,进行身份认证 |
请求参数
参数 |
类型 |
必填 |
描述 |
iotIds |
List |
是 |
设备ID信息列表 |
返回参数
无
示例
- 请求示例
{
"id": "1509086454180",
"version": "1.0",
"request": {
"apiVer": "1.0.2",
"iotToken": "token"
},
"params": {
"iotIds": ["iotid1","iotid2"]
}
}
- 正常返回示例
{
"id": "94e0871c-0770-xxxx-xxxx-e840d86b3ba6",
"code": 200
}
获取待升级的设备列表
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/thing/ota/listByUser |
1.0.2 |
获取当前用户名下的待升级(待确认)的设备列表 |
是,客户端SDK需启用身份的鉴权,进行身份认证 |
请求参数
无
返回参数
参数 |
子参数 |
类型 |
必有 |
描述 |
data |
|
JSON Array |
是 |
当前用户名下的待升级或待确认的设备列表 |
|
iotId |
String |
是 |
设备id |
|
image |
String |
否 |
设备对应的品类图标,当云端系统配置了设备所属产品的品类图标时有效 |
|
deviceName |
String |
否 |
设备显示名称,会优先使用用户配置的设备昵称返回,如果不存在昵称的配置则返回对应的产品名称 |
示例
- 请求示例
{
"id": "1509086454180",
"version": "1.0",
"request": {
"apiVer": "1.0.2",
"iotToken": "token"
},
"params": {
}
}
- 正常返回示例
{
"id": "94e0871c-0770-xxxx-xxxx-e840d86b3ba6",
"code": 200,
"data": [
{
"iotId": "xxxx",
"image": "xxxx",
"deviceName": "xxxxxx"
},
{
"iotId": "xxxx",
"image": "xxxx",
"deviceName": "xxxxxx"
}
]
}