芯步的2路智能墙壁开关开放了标准HTTP API接口,支持云端和局域网两种控制方式。二次开发的核心思路是:通过API签名认证,向指定设备下发power1/power2命令实现开关控制,再通过前端交互(如触摸按键)调用这些接口即可。以下是具体实现方案。
一、 总体技术架构
要实现触摸按键控制照明,核心是建立 “触摸事件 -> 业务逻辑 -> API指令 -> 物理设备” 的闭环。
硬件层:芯步2路智能墙壁开关(已接入WiFi,获得Device ID)。
接口层:芯步开放平台提供的
device/controlHTTP API。控制端:您的二次开发程序(运行在手机APP、微信小程序、Web网页或嵌入式触摸屏上)。
通信协议:HTTPS(公网)或 HTTP(局域网)。
二、 前期准备与环境搭建
在编写代码前,需要先在芯步平台完成以下配置,获取必要的凭证:
注册与创建:在芯步官网注册账号并创建工作台。
获取凭证:在控制台的“开发设置”中获取 AppID 和 AppSecret。这是调用接口的钥匙。
获取设备ID:将2路智能墙壁开关配网成功,在控制台查看其 Device ID(例如:
1878或889010)。命令确认:该设备的控制命令为
power1(线路1)和power2(线路2),参数1为开启,0为关闭。
三、 核心开发:接口调用与签名生成
芯步的API采用动态签名验证,不能直接明文传输AppSecret,必须按照规则生成sign。
1. 签名生成算法
算法规则如下md5(md5(AppSecret) + ts),即:
将
AppSecret进行一次MD5加密得到str1。将
str1与当前时间戳ts(秒级)拼接成字符串str2。对
str2再次进行MD5加密,得到最终的sign。
2. 请求端点
URL
https://api.thingboot.com/{AppID}/device/control/?sign={sign}&ts={ts}Method:POST
Content-Type:application/json
3. 代码示例(Python)
以下代码演示了如何封装一个控制函数,用于实现触摸按键背后的逻辑。
四、 进阶开发:高级功能与场景联动
除了简单的开/关,芯步的接口还支持丰富的状态控制,非常适合实现复杂的照明逻辑。
1. 实现“一键全开/全关”
可以在您的界面上设置一个“总控”按钮,通过一次API调用同时控制两个继电器,或者通过代码分别调用control_device(1, "on")和control_device(2, "on")。
2. 实现“回家模式”联动
结合传感器或其他业务逻辑。例如:当门磁打开(触发事件)-> 调用本接口(power1, 1)-> 客厅灯亮起。
3. 状态保持(暂态)功能
若您需要实现类似“楼道灯”或“门铃灯”的效果(按下后亮一段时间自动熄灭),可以使用状态保持命令。该命令会强制改变开关状态,并在延时(毫秒)后自动恢复。
命令示例
{"reset1":"3000"}(先断后通,延时3秒)应用场景:控制排风扇或临时照明,防止忘记关闭。
五、 局域网控制(可选)
若您的二次开发程序运行在与开关同一个局域网内(如家庭服务器、本地中控屏),芯步支持纯局域网控制,无需经过云端,响应更快且更稳定。
获取设备IP:开关联网后,可在路由器管理界面或通过mDNS发现其局域网IP。
替换请求地址:将请求URL中的
https://api.thingboot.com/{AppID}...替换为http://[设备IP]/device/control/...。请注意,局域网模式下不需要 AppID 和 Sign 验证,或者验证逻辑更简单(需参考具体产品手册)。优势:即使外网断开,触摸按键仍能通过您的程序控制照明。
六、 方案总结
通过上述方案,您可以成功将芯步标准的2路智能开关集成到您自己的系统中。
| 模块 | 实现方案 | 技术要点 |
|---|---|---|
| 用户输入 | 触摸屏/小程序按钮 | 绑定点击事件(如 @click="toggleLight(1)") |
| 逻辑处理 | 后端/云函数 | 生成动态签名(MD5嵌套),构造JSON命令 |
| 设备控制 | HTTP API调用 | 发送POST请求至 api.thingboot.com 或局域网IP |
| 硬件执行 | 2路墙壁开关 | 接收命令,执行继电器吸合/断开,控制照明 |
这一方案简化了复杂的IoT底层开发,您只需关注前端交互与业务逻辑,无需处理设备固件升级、网络重连等问题,利用开放HTTP API即可快速实现 “触摸按键控制照明” 的完整功能闭环。