CATALOG

芯步的3路智能墙壁开关开放了HTTP接口,这意味着你可以用自己的代码直接控制每一路开关,而不是只能用小厂App。下面这份解决方案会从接口准备、签名计算,到几个真实的自定义联动场景(比如门外开灯自动关、双控、风扇延时断)都过一遍,你可以直接拿去用。

解决方案:基于芯步开放接口的3路智能开关二次开发指南

大家好,今天咱们聊点干货。如果你手里有芯步的3路智能墙壁开关,不想只用官方App,想把它接到自己的系统里,实现一些奇奇怪怪的联动逻辑(比如“门外按门铃,客厅灯闪烁三下”、“双击开关A,关闭全屋所有灯”之类的),那你找对地方了。

其实这事儿没想象中那么神秘,核心就是一句话:用好它的HTTP接口

一、 准备工作:先拿到这3样东西

在敲代码之前,咱们得去芯步的后台(Console)拿点“钥匙”,不然门都进不去。

  1. AppID:你的应用身份证。

  2. AppSecret:你的应用密码(注意保密,别上传到GitHub)。

  3. Device ID:你那个3路开关的设备编号。

拿到这三个东西,就可以开始“调戏”开关了。

二、 核心玩法:控制单路开关

芯步的接口设计得很直白,就是往一个地址POST一段JSON。

请求地址(注意带上签名,后面会说怎么算):https://api.thingboot.com/{你的AppID}/device/control/?sign={签名}&ts={时间戳}

请求体格式

敲黑板:order里的参数是关键

  • "power1": 1 代表打开第一路。

  • "power1": 0 代表关闭第一路。

  • 同理,power2 控制第二路,power3 控制第三路。

试试一次性把三路全开:{"power1":1, "power2":1, "power3":1},一句话的事儿,灯就全亮了。

三、 进阶玩法:不只是开关(重点!)

如果只是远程开关,那不叫“自定义联动逻辑”。芯步这开关牛逼的地方在于它支持“临时任务”,这是实现复杂逻辑的基础

1. 点动模式(先通后断 / 先断后通)

如果你控制的是排风扇或者门禁,只想让它通电1秒钟触发一下,不用再写代码去关。

  • 先通后断(点动){"point1": 2000} —— 第一路打开,保持2秒后自动关闭。

  • 先断后通(复位){"reset1": 3000} —— 第一路关闭,保持3秒后自动打开。

2. 锁定模式(状态保持)

这个功能很实用。比如你想实现“防误触”或者“节能模式”。

  • {"power1": {"keep":"0", "revert":"3"}}:强制把第一路关掉。这时候如果有人在墙上按开关把它打开了,3秒钟后它会自动又关掉。这就叫“保持关”,不管你怎么按物理按键,它都会给你弹回来

掌握了这些原子命令,我们就可以像搭积木一样,搭出各种自定义联动逻辑了。

四、 实战场景:搭建自定义联动逻辑

下面是真·干货环节。假设我们有一个3路开关:1路接客厅灯,2路接走廊灯,3路接排风扇。

第一种场景:智能门锁联动(门外开锁,玄关灯亮起不刺眼)

需求:晚上回家,指纹解锁成功的瞬间,客厅灯缓缓亮起(或者直接亮起)50%亮度?抱歉,普通开关不支持调光,那我们就让它渐亮或者先开小夜灯模式逻辑:门锁发出信号 -> 你的服务器接收 -> 给开关发命令。

代码逻辑我们可以发一个“点动+保持”的组合。先让灯亮起(比如暖色灯),如果不想太亮,我们甚至可以利用“先通后断”做一个呼吸效果。最简单的联动:如果时间是深夜(比如23点后),只打开走廊灯(2路)并且设置自动关闭。{"power2":1} 搭配定时器(在你自己的代码里设置5分钟后发关闭命令)。

第二种场景:自定义双控(不布线,只用无线)

需求:床头没有布双控线,想在床头放一个无线开关控制卧室的主灯。逻辑:无线开关(比如另一台芯步设备或ESP8266)触发 -> 你的服务器 -> 判断当前状态 -> 取反 -> 发给开关。

实现思路你需要维护一个设备状态表。因为HTTP接口是单向的,开关状态变了,虽然它会主动上报(你可以配置回调接口接收),但最简单粗暴的联动就是“不管你现在啥状态,我直接给你切到相反的状态”伪代码如下:

第三种场景:排风扇的“懒人模式”

需求:上厕所或者洗澡时,按下排风扇(3路),希望它运行15分钟后自动关闭,省得回去关。逻辑:这就完全不需要服务器端定时器了,直接用设备的“先通后断”功能!

命令{"point3": 900000} (15分钟 = 900000毫秒)效果:按一下物理按键(或者远程点击),排风扇立刻转起来,15分钟后它自己就停了。即使你中途走了,它也会到点停,非常省电。

五、 签名计算(开发者必看)

很多朋友在这里卡住,其实芯步的签名算法是公开的,很简单:

公式sign = md5( md5(AppSecret) + ts )

步骤详解

  1. 把你拿到的 AppSecret 做一次 MD5 加密,得到字符串 S

  2. 获取当前的Unix时间戳(秒数),比如 1734567890

  3. 把字符串 S 和这个时间戳拼接起来,得到一个新字符串 S + ts

  4. 再对这个拼接后的字符串做一次 MD5 加密,结果就是 sign

注意ts 参数要跟在URL里,并且时间戳不能跟服务器时间差太多(通常几分钟内有效),这是为了安全

六、 总结与避坑

  1. 关于网络:这开关是WiFi直连的,不用网关,所以路由器的信号一定要好,不然指令发过去它“装死”,你会很抓狂

  2. 关于私有化:如果你在搞本地化部署,芯步支持局域网IP直连控制(具体IP需要在路由里看),这样断外网也能用,响应速度飞快

  3. 调试工具:先用 Postman 或者 curl 把上述命令调通,再写代码。curl 命令大概长这样,可以先复制到终端里跑一下试试

  1. 遇到问题:如果指令发过去没反应,第一件事检查 Sign签名时间戳;第二件事检查 设备ID 是不是填对了,别把别人的开关给关了。

掌握了以上这些,这个3路开关就不再是一个简单的硬件,而是你可以随意揉捏的执行器了。祝大家开发愉快,实现各种“奇技淫巧”的联动!