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:04
最后编辑:极客师傅  更新时间:2026-10-25 12:27
上一篇:
下一篇: