CATALOG

芯步的智能墙壁复合开关2路本身开放了HTTP接口,二次开发的核心其实就是“调用接口+计算签名”。下面我把整个流程串起来讲一下,从准备工作到代码实现,再到一些进阶玩法,尽量说细但不说废话。

一、 准备工作:拿到“钥匙”和“门牌号”

在写代码之前,需要先去后台拿几个关键凭证。这就好比你要发快递,得知道收件地址和你的身份ID。

  1. 注册与登录:先去芯步官网注册个账号,进入“工作台”,找到“物联网控制台”。

  2. 获取三要素:在控制台的“开发设置”里,你能看到这三个关键数据,直接复制保存到记事本里:

    • AppID:相当于你的账号ID。

    • AppSecret:相当于你的密码,千万别泄露,也不要写死在网页前端代码里。

    • 设备ID:就是你买那个开关的序列号,通常在设备外壳或者控制台里能看到。

二、 核心难点:签名计算

芯步的接口比较友好的地方在于,虽然是HTTP,但它做了签名验证,防止接口被恶意攻击。

这里稍微有点绕,我用人话解释一下签名是怎么算的:

你不需要理解太深的原理,只要按照公式来就行。官方的逻辑是 md5( md5(AppSecret) + ts )

  • 第一步:把刚才拿到的 AppSecret 做一次MD5加密,得到一串32位的字符串,我们暂且叫它 Secret_MD5

  • 第二步:获取当前的时间戳 ts(就是自从1970年1月1日到现在过了多少秒,要求是10位数)。

  • 第三步:把 Secret_MD5ts 拼接起来,再整体做一次MD5加密。最后得到的结果就是 sign

为什么要这么麻烦?因为时间戳 ts 是一直在变的,所以 sign 也一直在变。服务器会检查时间戳是否在有效期内(比如5分钟内),只要别人不知道你的 AppSecret,他就伪造不出合法的 sign

三、 动手写代码:远程开关灯

假设我们想通过电脑、服务器或者家里的群晖NAS发个指令把第一路灯光打开。

1. 确定命令格式

根据该产品的,2路开关支持以下命令

  • {"power1": 1}:开启第一路

  • {"power1": 0}:关闭第一路

  • {"power2": 1}:开启第二路

  • {"power2": 0}:关闭第二路

2. 拼接URL

请求的地址格式如下(注意把大括号内容替换掉):https://api.thingboot.com/{你的AppID}/device/control/?sign={计算出的签名}&ts={当前时间戳}

3. 写代码(Python 示例)

这里用Python写一个简单的脚本,只要电脑能联网,跑这个脚本就能开关灯了。

如果你不会Python,用浏览器调试工具也行其实你可以用 curl 或者 Postman 来测试,但要注意签名计算的时效性。最简单的测试方法是去芯步的“物联网控制台”,里面一般有一个 API 调试工具 或者 设备控制面板,可以直接点击按钮开关,它会帮你自动生成代码

四、 进阶一点:更复杂的指令

除了简单的开关,这款开关还支持“点动”和“互锁”功能,这对控制卷帘门、车库门或者临时触发报警器特别有用。

  • 点动(先通后断) :模拟按下开关,通电几秒后自动断开。

    • 命令:{"point1": "2000"} (第一路先通电,2秒后自动关闭)

    • 场景:给一个老式电控锁供电1秒,然后立刻断电保护电机。

  • 状态保持(锁定) :用户按物理按键,几秒后自动恢复状态。

    • 命令:{"power1": {"keep": "1", "revert": "3"}} (如果用户手动关闭了灯,3秒后灯会自动再打开)

    • 场景:楼道灯、或者不允许手动关闭的机柜设备。

五、 整合到你的系统里

拿到上面这个 control_device 函数,你就可以把它集成到任何系统中了:

  1. 接入 HomeAssistant:写一个 command line switch 或者 RESTful switch 的配置,调用上面的 HTTP 接口。

  2. 对接微信小程序:在小程序的后端服务器(云函数)里调用这个接口,注意 不要把 AppSecret 写在微信前端代码里,否则别人抓包就能控制你家所有的灯了

  3. 配合定时任务:在 Linux 服务器上写一个 crontab,例如每天凌晨 2 点执行 python3 light_off.py,就能实现定时关灯。

几个小贴士:

  • 网络要求:这款开关只支持 2.4G Wi-Fi,配网的时候记得把手机蓝牙和 5G Wi-Fi 关掉,否则容易搜不到设备

  • 执行速度:因为是走云平台(API),实测延迟大概在 80-120 毫秒左右,基本感觉不到延迟,除非你家网不好

  • 免费额度:芯步的开放接口是永久免费的,只要调用频率不太过分(比如每秒超过1次),基本不花钱,适合长期使用

总的来说,整个过程就是从后台拿 Key -> 算签名 -> POST 发指令。希望能帮你顺利搞定二次开发~