当前量产维护版本:71.4.33(硬件 1.0.0W71M_WiFi)。升级路径、下载地址及配网修复说明见第 14 节。

本 API 适用于 W71M WiFi 版空开断路器。设备通过硬件云 APIv2 接入,开发者使用 app_idapp_secret 和设备序列号完成注册、远程合闸、远程分闸、延时开关、定时任务、设备信息查询、设备设置、OTA 升级、状态上报和解绑。

app_id 和 app_secret 请登录 https://wdev.wmj.com.cn 获取。

1.注册设备

简要描述

将 W71M 设备和应用绑定。注册成功后才能调用设备功能接口。

请求URL

https://wdev.wmj.com.cn/deviceApi/register

请求方式

POST

请求格式

json

参数

{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}"
}

参数说明

参数名 必选 类型 取值范围 / 格式 说明
app_id string 平台分配 硬件云 app_id
app_secret string 平台分配 硬件云 app_secret
device_sn string W71M 设备序列号 设备序列号

返回示例

{
  "code": 0,
  "msg": "注册成功"
}
2.公共请求结构

简要描述

除注册、解绑、在线状态查询外,功能接口统一调用发送指令接口,通过 data.cmd_type 区分具体功能。

请求URL

https://wdev.wmj.com.cn/deviceApi/send

请求方式

POST

请求格式

json

基础参数

{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}",
  "type": 1,
  "data": {
    "cmd_type": "turnon",
    "info": {}
  }
}
参数名 必选 类型 取值范围 / 格式 说明
app_id string 平台分配 硬件云 app_id
app_secret string 平台分配 硬件云 app_secret
device_sn string W71M 设备序列号 设备序列号
type int 固定传 1 请求类型
data.cmd_type string 本文档列出的命令名 命令类型
data.info object JSON 对象 命令参数

通用返回

{
  "code": 0,
  "data": {
    "device_sn": "{{device_sn}}",
    "msg_id": 1,
    "type": 1,
    "cmd": "turnon",
    "cmd_type": "turnon",
    "info": {
      "err_code": 0,
      "code": 0,
      "msg": ""
    }
  }
}
参数名 类型 说明
code int 平台接口调用错误码,0 表示平台已受理
data.info.code int 设备业务错误码,0 表示成功
data.info.err_code int 兼容错误码,0 表示成功
data.info.msg string 设备返回消息
3.远程合闸

简要描述

控制空开合闸。若设备处于启用的定时任务控制时间段内,手动合闸可能被拒绝。

请求URL

https://wdev.wmj.com.cn/deviceApi/send

请求方式

POST

参数

{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}",
  "type": 1,
  "data": {
    "cmd_type": "turnon",
    "info": {
      "sn": "{{device_sn}}"
    }
  }
}

参数说明

参数名 必选 类型 取值范围 / 格式 默认值 说明
data.cmd_type string turnon - 合闸命令
data.info.sn string 当前设备序列号 不校验 指定设备序列号;填写且不匹配时设备不执行
4.远程分闸

简要描述

控制空开分闸。若设备处于启用的定时任务控制时间段内,手动分闸可能被拒绝。

请求URL

https://wdev.wmj.com.cn/deviceApi/send

请求方式

POST

参数

{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}",
  "type": 1,
  "data": {
    "cmd_type": "turnoff",
    "info": {
      "sn": "{{device_sn}}"
    }
  }
}

参数说明

参数名 必选 类型 取值范围 / 格式 默认值 说明
data.cmd_type string turnoff - 分闸命令
data.info.sn string 当前设备序列号 不校验 指定设备序列号;填写且不匹配时设备不执行
5.延时分闸

简要描述

设备收到命令后先合闸,再等待指定秒数后自动分闸。执行完成后设备会上报 delayturnoff_done

请求URL

https://wdev.wmj.com.cn/deviceApi/send

请求方式

POST

参数

{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}",
  "type": 1,
  "data": {
    "cmd_type": "delayturnoff",
    "info": {
      "delaytime": 10
    }
  }
}

参数说明

参数名 必选 类型 取值范围 / 格式 默认值 说明
data.cmd_type string delayturnoff - 延时分闸命令
data.info.delaytime int 秒,建议 1-86400 10 合闸后延迟分闸的时间
6.延时合闸

简要描述

设备收到命令后先分闸,再等待指定秒数后自动合闸。执行完成后设备会上报 delayturnon_done

请求URL

https://wdev.wmj.com.cn/deviceApi/send

请求方式

POST

参数

{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}",
  "type": 1,
  "data": {
    "cmd_type": "delayturnon",
    "info": {
      "delaytime": 10
    }
  }
}

参数说明

参数名 必选 类型 取值范围 / 格式 默认值 说明
data.cmd_type string delayturnon - 延时合闸命令
data.info.delaytime int 秒,建议 1-86400 10 分闸后延迟合闸的时间
7.查询设备信息

简要描述

查询设备版本、网络状态、电气参数、开关状态和定时任务状态。

请求URL

https://wdev.wmj.com.cn/deviceApi/send

请求方式

POST

参数

{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}",
  "type": 1,
  "data": {
    "cmd_type": "getdevinfo",
    "info": {}
  }
}

返回示例

{
  "code": 0,
  "data": {
    "device_sn": "{{device_sn}}",
    "cmd_type": "getdevinfo",
    "info": {
      "code": 0,
      "err_code": 0,
      "msg": "",
      "sw_ver": "71.3.35",
      "hw_ver": "1.0.0",
      "project": "W71M_WiFi",
      "net_type": "wifi",
      "imei": "AA:BB:CC:DD:EE:FF",
      "switch_state": 1,
      "rssi": -55,
      "voltage": "220.30",
      "electric_current": "0.120",
      "power": "26.40",
      "total_electricity": "1.23",
      "schedule_count": 2,
      "time_synced": true,
      "controlled_by_schedule": -1
    }
  }
}

返回字段说明

参数名 类型 说明
switch_state int 当前开关状态,1 合闸,0 分闸
voltage string 电压,单位 V
electric_current string 电流,单位 A
power string 功率,单位 W
total_electricity string 累计电量,单位 kWh
schedule_count int 已启用定时任务数量
time_synced bool 设备时间是否已同步
controlled_by_schedule int -1 表示未被定时任务控制,0-9 表示当前控制的定时任务索引
scheduled_state int 被定时任务控制时返回,1 合闸,0 分闸
8.设置设备本地密码

简要描述

设置设备本地管理密码。仅在业务确实需要本地管理密码时使用。

请求URL

https://wdev.wmj.com.cn/deviceApi/send

请求方式

POST

参数

{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}",
  "type": 1,
  "data": {
    "cmd_type": "dev_setting",
    "info": {
      "device_pwd": "{{device_pwd}}",
      "admin_pwd": "{{admin_pwd}}"
    }
  }
}

参数说明

参数名 必选 类型 取值范围 / 格式 默认值 说明
data.cmd_type string dev_setting - 设置命令
data.info.device_pwd string 建议 4-16 位 不变 设备本地使用密码
data.info.admin_pwd string 建议 4-16 位 不变 设备本地管理员密码
9.设置所有定时任务

简要描述

一次性设置 W71M 的定时任务列表。设备最多保存 10 组任务,按数组顺序写入索引 0-9

请求URL

https://wdev.wmj.com.cn/deviceApi/send

请求方式

POST

参数

{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}",
  "type": 1,
  "data": {
    "cmd_type": "set_schedules",
    "info": {
      "schedules": [
        {
          "enabled": true,
          "start_hour": 8,
          "start_minute": 0,
          "end_hour": 18,
          "end_minute": 0,
          "weekdays": 62,
          "action": 1
        }
      ]
    }
  }
}

参数说明

参数名 必选 类型 取值范围 / 格式 默认值 说明
data.cmd_type string set_schedules - 设置所有定时任务
schedules array 最多 10 条 - 定时任务数组
enabled bool true / false - 是否启用
start_hour int 0-23 - 开始小时
start_minute int 0-59 - 开始分钟
end_hour int 0-23 - 结束小时
end_minute int 0-59 - 结束分钟
weekdays int 1-127 - 星期掩码
action int 1 / 0 - 时间段内动作,1 合闸,0 分闸

星期掩码

含义
1 周日
2 周一
4 周二
8 周三
16 周四
32 周五
64 周六
127 每天
62 周一至周五
65 周六、周日

执行规则

action=1 表示开始时间合闸、结束时间分闸;action=0 表示开始时间分闸、结束时间合闸。支持跨天时间段,例如 22:00-06:00

10.查询定时任务

简要描述

查询设备保存的 10 组定时任务、当前设备时间和定时控制状态。

请求URL

https://wdev.wmj.com.cn/deviceApi/send

请求方式

POST

参数

{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}",
  "type": 1,
  "data": {
    "cmd_type": "get_schedules",
    "info": {}
  }
}
11.设置单个定时任务

简要描述

按索引设置单个定时任务,索引范围为 0-9

请求URL

https://wdev.wmj.com.cn/deviceApi/send

请求方式

POST

参数

{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}",
  "type": 1,
  "data": {
    "cmd_type": "set_schedule",
    "info": {
      "index": 0,
      "enabled": true,
      "start_hour": 9,
      "start_minute": 30,
      "end_hour": 17,
      "end_minute": 30,
      "weekdays": 127,
      "action": 1
    }
  }
}

参数说明

参数名 必选 类型 取值范围 / 格式 默认值 说明
data.cmd_type string set_schedule - 设置单个定时任务
data.info.index int 0-9 - 定时任务索引
data.info.enabled bool true / false false 是否启用
data.info.start_hour int 0-23 0 开始小时
data.info.start_minute int 0-59 0 开始分钟
data.info.end_hour int 0-23 0 结束小时
data.info.end_minute int 0-59 0 结束分钟
data.info.weekdays int 1-127 127 星期掩码
data.info.action int 1 / 0 1 时间段内动作
12.清除定时任务

简要描述

清除单个定时任务,或清除所有定时任务。

请求URL

https://wdev.wmj.com.cn/deviceApi/send

请求方式

POST

清除单个任务

{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}",
  "type": 1,
  "data": {
    "cmd_type": "clear_schedule",
    "info": {
      "index": 0
    }
  }
}

清除全部任务

{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}",
  "type": 1,
  "data": {
    "cmd_type": "clear_all_schedules",
    "info": {}
  }
}
13.重启设备

简要描述

远程重启设备。

请求URL

https://wdev.wmj.com.cn/deviceApi/send

请求方式

POST

参数

{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}",
  "type": 1,
  "data": {
    "cmd_type": "restart",
    "info": {}
  }
}
  • 14.OTA升级

简要描述

当前量产维护版本为 71.4.33,适用于 project=W71M_WiFihw_ver=1.0.0 的 W71M WiFi 设备,不适用于 W71F、W72 或其他硬件型号。

71.4.33 修复有效的中文 Wi-Fi 名称、含特殊符号密码在配网提交时被误判为无效配置的问题,并完善中文错误页面显示。本次不更改开关控制接口。

请求URL

https://wdev.wmj.com.cn/deviceApi/send

请求方式

POSTContent-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": "71.4.33",
      "url": "http://fm.wmj.com.cn/ota/W71M/W71M_WiFi_v71.4.33_ota.bin"
    }
  }
}

参数说明

参数名 必选 类型 取值范围 / 格式 默认值 说明
data.cmd_type string set_ota - OTA 命令
data.info 中的 hw_ver string 1.0.0 - 必须与设备硬件版本一致
data.info.sw_ver string 71.4.33 - 必须高于当前版本,不重复升级或降级
data.info.url string 上述版本化下载地址 - 仅限应用 OTA 文件,不得使用量产整片文件

适用版本与完成确认

  1. 先通过 getdevinfo 确认设备型号、硬件版本及当前软件版本,并确认设备在线、网络可用。
  2. 当前为 71.4.071.4.32 的匹配设备可升级到 71.4.33。当前为 71.3.2971.3.36 的设备须先升级到 71.3.39,真实读回中间版本后再进入下一阶段;其他旧版本需先确认兼容路径,不直接套用本示例。
  3. 旧版 71.3.39 设备进入下一阶段前,先重启并留足回连时间,确认在线且能够读取设备信息后,再下发一次目标 OTA。不要在设备仍下载时反复发送升级或重启指令。
  4. 指令返回成功只表示受理,不表示已升级完成。等待设备回连后再次调用 getdevinfo,确认 sw_ver=71.4.33、身份一致、mqtt_connected=truemqtt_subscribed=trueota_in_progress=falseota_last_error 为空。核对原有开关状态,不能仅凭指令 ACK 判断成功。

OTA 应用文件大小:1283776 字节。SHA256:3b539507db177cde6a975ab4d4e8a64fb8a4b2a030007258cf8b81baaf8915cc

配网注意事项

  • 使用可正常上网的 2.4 GHz Wi-Fi。Wi-Fi 名称按实际 UTF-8 编码计数,最多 32 字节,不是 32 个汉字;普通汉字通常占 3 字节。
  • 在配网页面直接输入真实名称和密码,不需要手动添加百分号编码。正确的 +&%@ 等符号不应再因表单编码变长被误拒绝。
  • 名称或密码不符合要求时,页面会提示对应字段;修改后重新提交。保存成功后仍需确认设备实际上线。
  • 本次修复的是配网参数校验和提示显示,不代表密码错误、热点不能上网、多 AP 网络或 OTA 传输问题均已解决。
15.在线状态查询

简要描述

查询设备是否在线。

请求URL

https://wdev.wmj.com.cn/deviceApi/getOnLine

请求方式

POST

请求格式

json

参数

{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}"
}

返回示例

{
  "code": 0,
  "data": {
    "device_sn": "{{device_sn}}",
    "online": 1
  }
}
16.状态上报和回调

简要描述

设备状态变化、定时任务触发、延时任务完成时,会通过硬件云上报。开发者在平台配置回调地址后,可接收对应业务数据。

开关状态变化

{
  "device_sn": "{{device_sn}}",
  "type": 2,
  "cmd_type": "turnon",
  "info": {
    "status": 1,
    "switch_state": 1,
    "msg": "Switch turned on"
  }
}
{
  "device_sn": "{{device_sn}}",
  "type": 2,
  "cmd_type": "turnoff",
  "info": {
    "status": 0,
    "switch_state": 0,
    "msg": "Switch turned off"
  }
}

定时任务触发

{
  "device_sn": "{{device_sn}}",
  "type": 2,
  "cmd_type": "timer_turnon",
  "info": {
    "status": 1
  }
}
{
  "device_sn": "{{device_sn}}",
  "type": 2,
  "cmd_type": "timer_turnoff",
  "info": {
    "status": 0
  }
}

延时任务完成

{
  "device_sn": "{{device_sn}}",
  "type": 2,
  "cmd_type": "delayturnoff_done",
  "info": {
    "status": 0,
    "msg": "Auto turnoff completed"
  }
}
{
  "device_sn": "{{device_sn}}",
  "type": 2,
  "cmd_type": "delayturnon_done",
  "info": {
    "status": 1,
    "msg": "Auto turnon completed"
  }
}

手动操作被定时任务拒绝

{
  "code": 0,
  "data": {
    "device_sn": "{{device_sn}}",
    "type": 1,
    "cmd_type": "turnon",
    "info": {
      "code": 2,
      "err_code": 2,
      "msg": "Controlled by schedule",
      "schedule_index": 0,
      "scheduled_state": 1,
      "status": 1
    }
  }
}
17.解绑设备

简要描述

解除设备和应用绑定。解绑后该应用不能继续控制设备。

请求URL

https://wdev.wmj.com.cn/deviceApi/logout

请求方式

POST

请求格式

json

参数

{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}"
}

参数说明

参数名 必选 类型 取值范围 / 格式 说明
app_id string 平台分配 硬件云 app_id
app_secret string 平台分配 硬件云 app_secret
device_sn string W71M 设备序列号 设备序列号

返回示例

{
  "code": 0,
  "msg": "解绑成功"
}
更新日志
日期 版本 内容
2026-09-09 71.4.33 修复中文 Wi-Fi 名称和特殊符号密码被误判无效配置,完善 UTF-8 错误页面;更新量产 OTA 示例及升级完成确认方法。
作者:极客师傅  创建时间:2026-06-25 02:05
最后编辑:极客师傅  更新时间:2026-09-09 14:04