芯步的智能墙壁复合开关2路本身开放了HTTP接口,二次开发的核心其实就是“调用接口+计算签名”。下面我把整个流程串起来讲一下,从准备工作到代码实现,再到一些进阶玩法,尽量说细但不说废话。
一、 准备工作:拿到“钥匙”和“门牌号”
在写代码之前,需要先去后台拿几个关键凭证。这就好比你要发快递,得知道收件地址和你的身份ID。
注册与登录:先去芯步官网注册个账号,进入“工作台”,找到“物联网控制台”。
获取三要素:在控制台的“开发设置”里,你能看到这三个关键数据,直接复制保存到记事本里:
AppID:相当于你的账号ID。
AppSecret:相当于你的密码,千万别泄露,也不要写死在网页前端代码里。
设备ID:就是你买那个开关的序列号,通常在设备外壳或者控制台里能看到。
二、 核心难点:签名计算
芯步的接口比较友好的地方在于,虽然是HTTP,但它做了签名验证,防止接口被恶意攻击。
这里稍微有点绕,我用人话解释一下签名是怎么算的:
你不需要理解太深的原理,只要按照公式来就行。官方的逻辑是 md5( md5(AppSecret) + ts )。
第一步:把刚才拿到的
AppSecret做一次MD5加密,得到一串32位的字符串,我们暂且叫它Secret_MD5。第二步:获取当前的时间戳
ts(就是自从1970年1月1日到现在过了多少秒,要求是10位数)。第三步:把
Secret_MD5和ts拼接起来,再整体做一次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 函数,你就可以把它集成到任何系统中了:
接入 HomeAssistant:写一个 command line switch 或者 RESTful switch 的配置,调用上面的 HTTP 接口。
对接微信小程序:在小程序的后端服务器(云函数)里调用这个接口,注意 不要把 AppSecret 写在微信前端代码里,否则别人抓包就能控制你家所有的灯了 。
配合定时任务:在 Linux 服务器上写一个 crontab,例如每天凌晨 2 点执行
python3 light_off.py,就能实现定时关灯。
几个小贴士:
网络要求:这款开关只支持 2.4G Wi-Fi,配网的时候记得把手机蓝牙和 5G Wi-Fi 关掉,否则容易搜不到设备 。
执行速度:因为是走云平台(API),实测延迟大概在 80-120 毫秒左右,基本感觉不到延迟,除非你家网不好 。
免费额度:芯步的开放接口是永久免费的,只要调用频率不太过分(比如每秒超过1次),基本不花钱,适合长期使用 。
总的来说,整个过程就是从后台拿 Key -> 算签名 -> POST 发指令。希望能帮你顺利搞定二次开发~