1.5 KiB
1.5 KiB
OTA 003 实时进度协议
设备通过 device/{device_id}/response 上报 OTA 状态。服务器下发 OTA 命令仍使用 msg_id=003,设备回执使用相同的 msg_id。
进行中回执
{
"msg_id": "003",
"status": "updating",
"data": {
"target_version": "2.0.4",
"progress": 30
}
}
progress 表示设备当前已完成的百分比,范围为 0 到 100。设备应在状态变化时上报,并避免高频重复发送。target_version 应与服务器下发任务的目标版本一致。
状态约定
| 状态 | 必要字段 | 服务器行为 |
|---|---|---|
accepted |
current_version、target_version |
记录设备已接受任务,进度默认为 0 |
updating |
target_version、progress |
保存最新进度并供小程序查询 |
success |
new_version 或 target_version |
记录完成,进度置为 100,随后以设备重启后的版本上报作为最终确认 |
failed |
target_version、可选 progress |
保存失败状态和最后有效进度 |
服务器兼容旧设备上报的 version、new_version 字段,并优先使用 target_version 作为本次任务目标。非法进度值不会覆盖已保存的有效进度。
小程序通过设备固件状态接口轮询 update_status、progress 和 target_version,显示最近一次服务器收到的设备进度。进度达到 100 仍显示为等待设备确认,直到设备重启后上报目标版本。