芯步的智能断路器开放了HTTP接口,这意味着你可以用自己的代码直接控制它,而不需要依赖官方App。下面我会以25A导轨式智能断路器为例,演示如何实现延时通断——比如“通电后5分钟自动断电”这类需求。
解决方案:基于芯步25A智能断路器的二次开发(延时通断控制)
1. 准备阶段
你需要准备以下几个“原料”:
硬件:一台芯步25A导轨式智能断路器(型号:UNI-DLQ-25A),确保它连上了WiFi(2.4G)。
凭证
AppID / AppSecret:登录芯步开发者后台获取。
Device ID:设备背后的标签或后台列表里的那一串数字。
环境:只要能跑代码就行,本地电脑、云服务器甚至一个支持云函数的微信小程序后端都可以。
2. 核心思路
关键点:断路器本身只认“通”和“断”,没长“脑子”记时间,所以延时的逻辑要由你的服务器来算。流程
你告诉服务器:“5分钟后把灯关了”。
服务器记下这个任务,等5分钟到了。
服务器给断路器发一条
{"power1":"0"}的指令,啪嗒,断电。
3. 技术:找对命令
芯步的接口有一个很有用的参数叫 order,这是延时控制的关键。
基础指令
{"power1":"1"}是打开;{"power1":"0"}是关闭。高级指令(重点):接口支持
reset(先断后通)和point(先通后断)命令,内部自带计时器。
举个例子:比如电梯里那个“风扇”按钮,按一下吹风5分钟自动停。你的 order 参数要这么写:
效果:这条指令发出去,断路器会执行 先断开 -> 等待5分钟 -> 再闭合。注意:如果你想要的是“打开,然后延时关闭”,可以用 point 命令,原理一样,只是顺序是“先通后断”。
4. 实战:写个“延时停机”脚本
假设我们要让这台断路器在通电1小时后自动断电,防止员工下班忘记关空调。
这里用 Node.js 写个简单的定时任务脚本,逻辑更灵活,不仅限于用设备自带的 interval 参数。
步骤 1:搞定签名算法芯步的接口为了防止乱刷,需要携带签名 sign。算法是 md5(md5(AppSecret) + ts)。
步骤 2:编写代码创建一个 delayControl.js
代码解读
controlBreaker函数负责发HTTP请求给断路器。在
startTimedTask里,我们先发ON让它立即启动,然后调用controlBreaker('OFF', 3600000),这个函数内部等了1小时才发关闭的指令。注意:你的脚本程序必须持续运行这1小时,如果程序中途关闭了,定时器就没了。如果是生产环境,用设备自带的
reset指令(设备云端计时)或者挂在一个24小时运行的服务器上。
5. 几种常见的“延时”应用场景
你可以根据自己的需求组合指令:
| 你想实现的功能 | 解决方案 | 关键参数 |
|---|---|---|
| 简单粗暴:按下按钮,10分钟后关闭。 | 直接利用设备能力,单条指令搞定。 | order: {"reset":{"relay":[1],"interval":600000}} |
| 无人值守:检测到没人,马上断电。 | 写脚本轮询传感器,触发关断。 | 轮询代码 + order: {"power1":"0"} |
| 循环开关:像鱼缸水泵,开1小时停1小时。 | 在服务器里写 setInterval 循环。 | 定时器 + order: {"power1":"1"} 交替 |
| 多路联动:先关空调,5秒后再关排风扇。 | 发两条带延时间隔的指令。 | 分别控制 power1 和 power2,中间 sleep(5000) |
6. 避坑指南
时间是毫秒
interval参数单位是毫秒,1000 = 1秒,别少写一个0导致秒关。任务持久化:如果用 Node.js 的
setTimeout(代码里的延时方式),程序不能重启。如果是商业项目,使用设备自带的reset/point指令,指令发给芯步云端后,即使你的手机没电了,云端也会在那个时间点把指令推给设备。看准型号:虽然25A型号和其他4路/8路控制器的指令语法通用,但有些单路设备不认
relay[1],直接发{"power":1}就行,参考产品手册最准。
只要调通了登录和签名,剩下的无非就是发HTTP请求和写定时逻辑。你可以把这个逻辑集成到家里的HomeAssistant、公司的Node-RED,甚至是一个简单的微信小程序里。