芯步的智能开关开放了标准HTTP API,定时任务完全可以在你自己服务器上实现,不需要依赖云端。下面这套方案用定时器(cron)触发脚本、调用API控制每一路灯,跑通后就能实现任意时间开关照明。
一、理解“怎么实现”二次开发
芯步智能触摸墙壁开关(3路)本身没有自带定时功能,但芯步开放了HTTP API接口。简单说,它提供了一个网络地址,你只要向这个地址发送特定的指令,就能远程控制开关的每一路通断。
所谓“二次开发”,就是你自己写一段程序(可以用Python、PHP、Shell,甚至微信小程序),在程序里调用这个HTTP接口。定时功能怎么实现呢?你可以在服务器上设置一个定时任务(比如Linux的cron、Windows的计划任务),到了指定时间,自动执行你的程序,程序再调用接口去开关灯。就这么简单。
二、二次开发前的准备工作
动手之前,先把这三样东西准备好:
1. 硬件与网络
3路智能触摸墙壁开关 已正确安装(接好零火线、负载灯),并通电。
确保开关已配网(连上2.4G WiFi),状态正常。配网可以通过芯步的控制台或小程序完成。
2. 获取开发凭证
登录芯步工作台,进入“物联网控制台”,在“开发设置”里找到:
AppID:你的应用身份标识。
AppSecret:你的应用密钥(保密,不要泄露)。同时在设备列表里找到你要控制的那个开关的 Device ID(设备唯一ID)。
3. 理解签名算法
这是为了安全,防止接口被别人乱调用。规则如下:
sign = md5( md5(AppSecret) + ts )
举个例子:假设 AppSecret = "abc123",先对 abc123 做一次MD5,假设结果是 "aaa"。然后拼接当前时间戳 ts = "1700000000",得到字符串 "aaa1700000000",再对这个字符串做一次MD5,最终结果就是 sign。
每次请求都要重新计算,因为ts在变,sign也跟着变。
三、核心接口与命令详解
你要调用的接口地址是:
请求方式: POST数据格式: JSON
请求参数(Body)
针对3路开关,具体命令格式如下
| 操作意图 | 命令JSON (order字段) | 说明 |
|---|---|---|
| 开启第1路 | {"power1": 1} | 1开,0关,下同 |
| 关闭第2路 | {"power2": 0} | |
| 开启全部3路 | {"power1":1, "power2":1, "power3":1} | |
| 定时关闭(常用) | {"reset1": 60000} | 立即开启第1路,60秒后自动关闭 |
| 定时开启(常用) | {"point1": 60000} | 立即关闭第1路,60秒后自动开启 |
注意:
reset和point后面的单位是毫秒。60000就是1分钟,3600000就是1小时。
四、实战:写一个定时开关脚本
假设我们想实现:每天晚上10点,自动打开客厅灯(接在第1路)。
我们可以用Python写一个脚本,然后用系统的定时任务去触发它。
第1步:准备Python脚本(save as control_light.py)
第2步:在服务器上设置定时任务
假设你的服务器是Linux系统,在终端输入 crontab -e 编辑定时任务,添加一行:
保存后,每天晚上10点整,系统就会自动运行这个脚本,打开电灯。
如果想实现“只亮一会儿”(比如晚上10点亮,10点半关):
方案A:写两个定时任务,一个22:00发开灯,一个22:30发关灯。
方案B:利用API自带的
reset参数。如果你希望按了开关后,灯亮30分钟自动灭,可以直接发命令{"reset1": 1800000}。
五、常见坑与避坑指南
关于
reset和point的方向:这一点很多人弄反。reset1= 先断后通(常用于“关灯后自动开灯”或“门禁”),point1= 先通后断(常用于“开灯后自动关灯”)。控制照明定时关,用point1比较符合直觉。时间戳对齐:确保你服务器的时间是准确的,时间戳不准会导致签名验证失败。
设备在线状态:如果发命令没反应,先去控制台看看设备是不是离线了。芯步的开关只支持2.4G WiFi,5G不行。
多路控制:如果你想同时控制第1路开、第2路关,order写成
{"power1":1, "power2":0}即可,非常灵活。
六、总结
通过对芯步3路智能开关的二次开发,实现定时开关并不复杂。核心就是:
看懂HTTP API文档,知道怎么拼签名、怎么发命令。
会写简单的脚本(Python/Bash/PHP),把调用接口的动作封装起来。
会设置定时任务(Cron/计划任务),到点自动执行脚本。
这套方法不依赖任何特定的智能家居APP,你可以把它集成到自己开发的管理系统、微信小程序,甚至是一个简单的网页后台里。只要你服务器能联网,就能稳定可靠地控制家里的三路灯光或电器。