芯步的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路已按照说明书完成接线(接零火线/单火线,视型号而定),且设备指示灯处于闪烁状态(等待配网)。
账号准备
访问芯步官网注册账号。
登录后进入“工作台” -> “物联网控制台”。
获取关键凭证
AppID: 应用的唯一标识。
AppSecret: 开发者密码(用于计算签名,切勿直接暴露在前端)。
3. 核心难题攻克:如何“查询”开关状态?
芯步的接口设计为 “状态主动上报” 模式,而非传统的“主动查询”模式。
原理: 当开关被物理触摸按下,或被远程控制改变状态时,设备会主动向预设的服务器推送当前状态。
解决方案
方案A(推荐-私有化部署): 搭建自己的公网或局域网接收服务器。在控制台配置“消息推送URL”,设备状态变化时,芯步平台会将
{"power1": "1"}这样的JSON数据POST到你的服务器。方案B(控制+查询联动): 如果只需同步状态,可在每次页面加载时,发送一条“保持状态”的命令,通过命令返回的即时响应获取当前状态(需视具体API返回参数而定,通常控制命令会返回执行后的结果)。
4. 接口签名机制
为了防止接口被恶意调用,所有请求需携带动态签名(Sign)。芯步采用双重MD5加密算法。
算法步骤
将
AppSecret进行第一次MD5加密,得到SignStr。获取当前Unix时间戳(秒),例如
1715323400。拼接字符串:
temp = SignStr + ts。将
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
Header:
Content-Type: application/jsonBody
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或局域网可访问的服务器。
在芯步控制台设置
进入
物联网控制台->开发设置->消息推送。填写你的接收URL,例如:
http://your-server.com/api/device_status。
服务器端代码示例(Python Flask) :当开关状态变化时,芯步会主动发送数据到该URL。
6. 接入流程总结
设备配网
使用“芯步”微信小程序或电脑控制台的“网络配置”功能。
注意:设备仅支持 2.4G WiFi。配网时需将手机热点或路由器名称改为指定格式(通过手机热点方式配网)。
开发调试
在控制台获取设备ID。
使用Postman或Curl测试签名算法,发送
{"power1":1}命令。
系统集成
后端集成签名算法,封装API。
搭建状态接收服务,实时同步设备状态到业务数据库。
前端页面调用后端接口实现UI控制。
7. 注意事项
私有化部署: 如果你的系统运行在纯内网环境,芯步支持私有化部署。你可以将API请求地址指向局域网内的服务器IP,不经过云端,数据安全性比较高。
多设备控制: 接口支持批量控制,
device字段可传入多个ID,用逗号隔开,例如"1878,1879"。
通过以上步骤,开发者无需关注复杂的嵌入式协议,利用标准的HTTP Get/Post请求即可在 30分钟内 完成1路智能开关的远程控制与状态监控功能。