OTA 固件升级
平台提供设备固件 OTA(Over-The-Air)升级能力:固件版本管理 → 批次推送 → 进度跟踪 → 失败重试,全流程可视化。
升级流程
上传固件包 → 创建版本 → 选择目标设备/批次 → 下发升级指令
→ 设备下载固件(HTTP)→ 设备校验并烧写 → 上报升级进度/结果
→ 平台汇总成功率,失败设备可重推版本管理
http
POST /api/ota/firmware/upload # 上传固件(multipart,含版本号/签名)
GET /api/ota/firmware/list # 固件列表
POST /api/ota/task/create # 创建升级任务
GET /api/ota/task/{id} # 任务进度详情
POST /api/ota/task/retry/{id} # 失败设备重推固件包要求
| 项 | 要求 |
|---|---|
| 格式 | .bin / .hex,单文件 ≤ 16 MB |
| 版本号 | 语义化版本(如 1.2.0),必须高于设备当前版本 |
| 校验 | 平台自动计算 SHA-256,设备下载后须校验一致再烧写 |
设备侧交互(MQTT 通道示例)
平台下发升级指令:
json
// Topic: device/{serial}/command
{
"type": "OTA",
"version": "1.2.0",
"url": "http://{host}/api/ota/download/{firmwareId}",
"size": 524288,
"sha256": "abc123..."
}设备上报进度:
json
// Topic: device/{serial}/properties
{ "otaProgress": 45, "otaStatus": "DOWNLOADING", "version": "1.2.0" }otaStatus 取值:DOWNLOADING / VERIFYING / FLASHING / SUCCESS / FAILED。
批次策略
- 支持按产品 / 分组 / 标签圈选目标设备。
- 可设置并发批次数(如每批 100 台,成功后再推下一批),避免下载带宽打满。
- 失败设备自动进入重试队列,默认重试 3 次。