3路触摸墙壁智能开关的二次开发核心在于掌握签名算法和命令结构。芯步的开放接口采用统一的HTTP API设计,三路线路可独立下发power1、power2、power3命令进行控制,此外还支持状态保持、先通后断等进阶功能。以下从环境准备、签名计算、接口调用到场景,给出完整实现方案。
一、 背景与目标
芯步的智能触摸墙壁开关(3路)标准型支持三路独立控制(如火线L1、L2、L3分别连接三组照明或电器)。为了将该设备集成到第三方系统(如智慧公寓管理系统、工业控制PLC上位机、定制化APP),开发者可利用其开放的 HTTP API接口 进行二次开发。
核心目标:摆脱官方APP限制,通过代码实现对开关三路线路的独立通断控制、状态查询及高级定时任务。
二、 开发预备
在开始编码前,需要准备以下三项关键信息,这些信息将在芯步工作台获取
AppID: 应用的唯一标识符。
AppSecret: 接口调用密钥(严禁直接暴露在客户端代码中,应在安全的后端环境使用)。
Device ID: 设备的唯一ID(通常贴在设备外壳或可在控制台设备列表查看)。
三、 接口鉴权(签名计算)
这是二次开发的第一步,也是最容易出现错误的环节。芯步的API请求需要携带动态签名以防篡改。
签名公式
sign = md5( md5(AppSecret) + ts )
ts: 当前Unix时间戳(秒)。
步骤
将
AppSecret进行一次MD5加密得到字符串S1。将
S1与当前时间戳ts(字符串形式拼接)组成新字符串S1ts。对
S1ts再次进行MD5加密得到最终的sign。
代码示意(Python) :
四、 实现“3路独立控制”核心逻辑
控制3路开关本质上是向 https://api.thingboot.com/{AppID}/device/control/ 接口发送不同的 order 参数。
1. 接口请求结构
请求方式: POST
Content-Type: application/json
URL参数:
?sign={sign}&ts={ts}
2. 各路线路控制命令对照表
| 操作意图 | order参数 (JSON格式) | 说明 |
|---|---|---|
| 开启第1路 | {“power1”: 1} | 闭合L1线路继电器 |
| 关闭第1路 | {“power1”: 0} | 断开L1线路继电器 |
| 开启第2路 | {“power2”: 1} | 闭合L2线路继电器 |
| 关闭第2路 | {“power2”: 0} | 断开L2线路继电器 |
| 开启第3路 | {“power3”: 1} | 闭合L3线路继电器 |
| 关闭第3路 | {“power3”: 0} | 断开L3线路继电器 |
| 全开/全关 | {“power”: 0} 或 {“power”: 1} | 可同时控制所有线路 |
3. 实战案例:使用Python实现“一键全开”与“单控”
以下代码示例展示了如何通过后端服务器控制客厅的三路射灯
五、 高级功能开发(常用场景)
除了简单的开关,芯步接口还支持通过参数实现自动化逻辑,无需在本地做定时器。
1. “门廊灯”模式(先通后断 / 延时关闭)
场景:按下开门,灯光亮起,5分钟后自动关闭。命令:利用 point1 参数(单位:毫秒)。
请求体:
{“device”: “xxx”, “order”: {“point1”: 300000}}
2. “锁定/状态保持”模式
场景:酒店或公寓的廊灯,用户物理手动关闭后,系统强制在3秒后自动重新打开(保持常亮),防止客人误关。
命令:
{“power1”: {“keep”: 1, “revert”: 3}}keep:1表示保持开启状态。revert:3表示如果被用户手动关闭,3秒后恢复开启。
六、 微信小程序/嵌入式轻量实现
如果你是开发微信小程序,由于安全策略限制,不能在小程序前端直接计算 AppSecret。正确的二次开发架构如下:
搭建中转云函数:在微信云开发环境中创建一个云函数。
云函数逻辑:云函数负责存储
AppSecret并计算签名,然后向芯步API发起https请求。小程序调用:小程序通过
wx.cloud.callFunction调用云函数,传入power1:1等参数即可。
云函数核心代码结构
七、 最佳实践和需要注意的点
局域网/私有化部署:芯步硬件支持局域网HTTP通信。如果你的服务器和设备在同一局域网(且固件支持),可将请求域名指向设备的局域网IP,实现断外网下的低延迟控制。
异步与状态确认:API返回200只代表指令下达成功,不代表设备执行成功。如果业务要求强一致性(如工业控制),配置“消息推送”接收设备端ACK回执。
设备配网:在二次开发前,需使用官方工具先将开关配置到Wi-Fi网络,确保设备在线(在线状态可通过控制台查看)。
通过上述方案,开发者可以快速完成对芯步3路智能开关的HTTP对接,实现独立的三路远程控制,并拓展至各类物联网系统架构中。