CATALOG

芯步的1路智能墙壁触摸开关(型号UNI-KG-CM-1)提供标准HTTP API接口,签名机制为双重MD5加密。以下方案涵盖设备配网、签名生成、状态查询与控制的完整对接流程。

解决方案:基于芯步开放接口实现1路智能墙壁触摸开关的远程状态查询与控制

1. 背景与需求

在许多智能化改造场景中(如办公照明、智能家居、工业现场),需要通过自有系统(Web/APP/小程序)远程查看墙壁开关的通断状态,并进行控制。芯步提供的1路智能墙壁触摸开关(型号:UNI-KG-CM-1) 由于采用WiFi直连且开放HTTP API接口,是实现这一需求的高效方案

核心目标:通过调用芯步开放平台的HTTP接口,实现对单路开关的状态实时查询远程开关控制

2. 接口特性与准备工作

2.1 接口特性
  • 协议支持:支持HTTP/HTTPS协议,支持任何主流编程语言(Python, Java, PHP, JS)及无代码平台(如简道云、钉钉)调用

  • 网络环境:支持公网控制(默认)和纯局域网控制(支持私有化部署,数据不经过外网)

  • 响应速度:命令下发到设备响应约为80-120ms

2.2 准备工作

在开始开发前,请确保完成以下物理与账号准备:

  1. 硬件就绪: 智能触摸墙壁开关1路已按照说明书完成接线(接零火线/单火线,视型号而定),且设备指示灯处于闪烁状态(等待配网)。

  2. 账号准备

    • 访问芯步官网注册账号

    • 登录后进入“工作台” -> “物联网控制台”。

  3. 获取关键凭证

    • AppID: 应用的唯一标识。

    • AppSecret: 开发者密码(用于计算签名,切勿直接暴露在前端)

3. 核心难题攻克:如何“查询”开关状态?

芯步的接口设计为 “状态主动上报” 模式,而非传统的“主动查询”模式。

  • 原理: 当开关被物理触摸按下,或被远程控制改变状态时,设备会主动向预设的服务器推送当前状态。

  • 解决方案

    • 方案A(推荐-私有化部署): 搭建自己的公网或局域网接收服务器。在控制台配置“消息推送URL”,设备状态变化时,芯步平台会将 {"power1": "1"} 这样的JSON数据POST到你的服务器

    • 方案B(控制+查询联动): 如果只需同步状态,可在每次页面加载时,发送一条“保持状态”的命令,通过命令返回的即时响应获取当前状态(需视具体API返回参数而定,通常控制命令会返回执行后的结果)。

4. 接口签名机制

为了防止接口被恶意调用,所有请求需携带动态签名(Sign)。芯步采用双重MD5加密算法

  • 算法步骤

    1. AppSecret 进行第一次MD5加密,得到 SignStr

    2. 获取当前Unix时间戳(秒),例如 1715323400

    3. 拼接字符串:temp = SignStr + ts

    4. temp 进行第二次MD5加密,得到最终的 sign

  • 计算示例(伪代码)

5. 实战:远程开关控制与状态读取

针对 1路 墙壁开关,对应的控制指令字段为 power1

5.1 请求示例(以Shell Curl为例)

以下指令将ID为 1878 的开关开启(通过局域网或公网API)

  • 请求地址https://api.thingboot.com/{Your_AppId}/device/control/?sign={sign}&ts={ts}

  • Method: POST

  • HeaderContent-Type: application/json

  • Body

5.2 控制指令详解

针对1路设备,主要使用以下JSON命令

功能描述Order JSON 参数说明
查询 / 获取状态无直接查询命令需通过 “消息推送” 接收设备上报的状态。设备状态变化时(手动或远程),平台会主动推送到配置的URL。
开启线路{"power1": 1}继电器吸合,灯亮
关闭线路{"power1": 0}继电器断开,灯灭
状态保持(点动/互锁){"power1": {"keep":"1","revert":"3"}}常用场景:用户手动关灯后,3秒后自动重新打开;或用于门禁等需要复位的场景。revert 单位是秒
先通后断(脉冲){"point1": "3000"}立即接通,持续3秒(3000毫秒)后自动断开
先断后通{"reset1": "2000"}立即断开,持续2秒后自动接通
5.3 状态接收服务器配置

这是实现“状态查询”的关键。你需要拥有一台具有公网IP或局域网可访问的服务器。

  1. 在芯步控制台设置

    • 进入 物联网控制台 -> 开发设置 -> 消息推送

    • 填写你的接收URL,例如:http://your-server.com/api/device_status

  2. 服务器端代码示例(Python Flask)当开关状态变化时,芯步会主动发送数据到该URL。

6. 接入流程总结

  1. 设备配网

    • 使用“芯步”微信小程序或电脑控制台的“网络配置”功能

    • 注意:设备仅支持 2.4G WiFi。配网时需将手机热点或路由器名称改为指定格式(通过手机热点方式配网)。

  2. 开发调试

    • 在控制台获取设备ID。

    • 使用Postman或Curl测试签名算法,发送 {"power1":1} 命令。

  3. 系统集成

    • 后端集成签名算法,封装API。

    • 搭建状态接收服务,实时同步设备状态到业务数据库。

    • 前端页面调用后端接口实现UI控制。

7. 注意事项

  • 私有化部署: 如果你的系统运行在纯内网环境,芯步支持私有化部署。你可以将API请求地址指向局域网内的服务器IP,不经过云端,数据安全性比较高

  • 多设备控制: 接口支持批量控制,device 字段可传入多个ID,用逗号隔开,例如 "1878,1879"

通过以上步骤,开发者无需关注复杂的嵌入式协议,利用标准的HTTP Get/Post请求即可在 30分钟内 完成1路智能开关的远程控制与状态监控功能。