W76B OTA升级接口
W76B OTA升级接口
维护版本:1.0.9。适用W76B、硬件1.0.0及匹配的定制V4021底层。1.0.8起支持set_ota直接接收固件URL,日常升级直接请求硬件云。
1.注册设备
POST https://wdev.wmj.com.cn/deviceApi/register,Content-Type: application/json。将设备绑定到有权限的应用。
{"app_id":"{{wmjv2appid}}","app_secret":"{{wmjv2appsecret}}","device_sn":"{{device_sn}}"}
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| app_id | string | 是 | 应用ID |
| app_secret | string | 是 | 应用密钥,仅在受控环境使用 |
| device_sn | string | 是 | 已获授权的W76B序列号 |
成功示例:
{"code":0,"msg":"注册成功"}
2.升级前查询与结果确认
POST https://wdev.wmj.com.cn/deviceApi/send,Content-Type: application/json。
{"app_id":"{{wmjv2appid}}","app_secret":"{{wmjv2appsecret}}","device_sn":"{{device_sn}}","type":1,"data":{"cmd_type":"getdevinfo","info":{}}}
公共身份参数同注册接口;type 为数值1,data.cmd_type 为字符串getdevinfo,data.info 为空对象。
从应答 data.info 读取 project、version、rssi。先核对W76B身份及当前版本;离线或弱信号时勿升级。
升级后再次查询,确认实际版本达到目标、身份正确,并延迟复查持续在线及现场门禁功能。指令受理和下载完成不能单独证明升级成功。
3.OTA升级(硬件云直发URL)
本接口适用于当前版本1.0.8及以上。 POST https://wdev.wmj.com.cn/deviceApi/send,Content-Type: application/json。
{
"app_id": "{{wmjv2appid}}",
"app_secret": "{{wmjv2appsecret}}",
"device_sn": "{{device_sn}}",
"type": 1,
"data": {
"cmd_type": "set_ota",
"info": {
"hw_ver": "1.0.0",
"sw_ver": "1.0.9",
"url": "http://fm.wmj.com.cn/ota/W76B/W76B_1.0.9_V4021_final.dfota.bin"
}
}
}
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | number | 是 | 固定1 |
| data.cmd_type | string | 是 | 固定set_ota |
| hw_ver(在data.info内) | string | 是 | 硬件版本,当前为1.0.0 |
| data.info.sw_ver | string | 是 | 目标版本,必须严格高于当前版本 |
| data.info.url | string | 是 | 对应版本的最终OTA包完整URL |
设备直接下载URL,无需调用工作人员授权中转接口,也不需要先重启。URL须为 http://fm.wmj.com.cn/ota/W76B/W76B_<目标版本>_V4021_final.dfota.bin,版本部分与sw_ver一致;当前已验证下载路径使用HTTP,硬件云API使用HTTPS。
不接受其他域名、路径、查询参数或片段;禁止用量产PAC和Luatools输入包代替最终OTA包。仅适用W76B及 LuatOS-Air_V4021_RDA8910_RBLCMFDQYSMTSVG_0xa0000 定制底层,不支持跨型号或底层混刷。
设备受理示例(仅表示受理):
{"code":0,"data":{"info":{"code":0,"msg":"","state":"accepted"}}}
data.info.code=0/state=accepted 后才开始下载;already_accepted 表示本次启动内最近消息ID已受理。忙或参数错误时info.code非0。同版/低版、错误硬件/底层或URL不匹配在下载前拒绝。响应超时请先查询版本,勿反复下发。
下载沿用官方包校验和断点请求;校验成功后重启安装,无更新/失败不会由OTA模块主动重启。URL与版本检查不等于固件签名认证,发布文件不得原位替换。
普通上电/重启不自动检查更新,保留既有通信和重联行为。当前没有自动启动失败回退,请保持稳定供电。
直链不受旧升级授权清单开关控制;暂停某版本应停止下发URL并暂停该版本下载入口,不会撤销设备已下载的包。
4.旧版本首次迁移
1.0.7及以下不支持上一节set_ota URL协议。首次迁移使用 POST https://fm.wmj.com.cn/ota/W76B/request_upgrade.php,Content-Type: application/json。
{"app_id":"{{wmjv2appid}}","app_secret":"{{wmjv2appsecret}}","device_sn":"{{device_sn}}","action":"upgrade"}
身份参数同注册接口;action为字符串,check检查、upgrade迁移、status查询。先check核对在线身份与目标版本,再对获准的单台设备upgrade;等重联后查询实际版本。
当前1.0.0请使用Apipost目录 正式API目录 / W76B(Air724差分升级) / 旧版1.0.0–1.0.7升级到1.0.9,依次发送01→02→03。 请求体选择JSON,Content-Type为application/json;字段在最外层,不带type/data/cmd_type包装,变量必须在当前环境中实际填写并解析。
01“升级前检查”使用以下JSON,只读取在线设备信息,不发升级指令:
{"app_id":"{{wmjv2appid}}","app_secret":"{{wmjv2appsecret}}","device_sn":"{{device_sn}}","action":"check"}
核对code=0、current_version=1.0.0、target_version=1.0.9、trigger_cmd=restart、status=ready后,发送上面的action=upgrade请求一次。可从匹配底层的1.0.0直接迁移到1.0.9,无需中间版本,不要另发手工重启。
03“升级结果查询”使用以下JSON,只查询、不发升级指令:
{"app_id":"{{wmjv2appid}}","app_secret":"{{wmjv2appsecret}}","device_sn":"{{device_sn}}","action":"status"}
等设备下载、安装、重联后,核对code=0、current_version=1.0.9、status=up_to_date,并延迟复查在线。400检查JSON/变量/action;403检查应用凭据和设备绑定权限;409先检查离线、读回或身份;503保留完整返回排查,勿反复点击。HTTP200、触发应答和下载完成都不能代替版本读回。
此迁移入口为单机临时授权,1.0.6⁄1.0.7发旧ota,1.0.5及以下请求一次restart利用旧版启动检查;迁移后日常只使用硬件云set_ota URL协议。普通批量自动分发关闭。
*_requested 只表示发起,*_unconfirmed 表示应答不确定,请查询而非反复点击;同版和高版不降级,有效授权期间不会重复触发。
更新记录:2026-10-25,维护版本1.0.9,新增硬件云set_ota直发固件URL;1.0.8→1.0.9已完成对应型号设备验证。量产固件保留相同入口。启动失败回退及弱信号、安装断电等故障恢复仍需专项验证。
5.解绑设备
POST https://wdev.wmj.com.cn/deviceApi/logout,Content-Type: application/json。仅解除绑定时使用,OTA不需要解绑。
{"app_id":"{{wmjv2appid}}","app_secret":"{{wmjv2appsecret}}","device_sn":"{{device_sn}}"}
参数同注册接口;按返回code和msg确认解绑结果。
最后编辑:极客师傅 更新时间:2026-10-25 12:27