芯步的20A智能空开(以及同系列的通断器)有个很实用的特性:支持“先断后通”(reset)参数。你只需要传一个毫秒数,设备就会自己倒计时,到点再动作,不需要你的服务器一直盯着。
下面是一套比较完整的二次开发方案:
一、 准备动作:搞到你的“钥匙”(AppID/Secret)
首先,你得拿到操作设备的权限,就像配钥匙:
注册/登录:去芯步官网注册个账号。
找到钥匙:进到控制台的“开发设置”里,找到 AppID 和 AppSecret。
AppID是账号名,AppSecret是密码,千万别写死在网页前端代码里,不然别人能给你把电闸拉了。绑定设备:确保你的20A智能空开已经配网,并在控制台的“设备列表”里能看到它的 Device ID(就是一串数字编号)。
二、 核心玩法:利用 reset 参数实现延时
这个智能空开最懂你的地方就是——不用你算时间。你想让它1小时后断开,直接把“1小时后断电”这个指令丢给它就行。
1. 核心命令:reset针对20A智能空开,控制通断的关键参数是 power(1开/0关),但实现延时的黑科技是 reset。
作用:让设备立即执行断开 -> 等待N毫秒 -> 接通。
口语化理解:这就像设备的“重启”功能。你告诉它“休息5秒钟再干活”,它就会自己倒计时。
2. 代码怎么写(实战)
假设我要写一个Python脚本,让这路灯在晚上8点准时断电,然后第二天早上6点再自动打开。我们可以用 reset 来实现早上的“延时通”。
只需要用HTTP POST请求调用他们的接口:
注意reset 的行为是“先断后通”。如果你只是想单纯的延时断开(比如睡觉后自动关),其实逻辑更简单:直接发 {"power":0} 关掉就行。如果非要延时关,你就得在你的服务器上做个定时任务,比如APScheduler,到点了发关的命令。
三、 进阶:加点智能(跟传感器联动)
光控制开关太单调,既然二次开发,肯定要玩点花的。芯步的优势是HTTP接口开放,你可以轻易串起来。
场景:水泵定时抽水,抽干就停。
比如你接了一个20A空开控制水泵,想每次打开10分钟后自动关闭,防止干烧。
你可以写一个简单的脚本逻辑:
发指令
{"power":1},水泵开始转。记录下开始时间。
10分钟后,发指令
{"power":0},关掉它。
更优雅的办法如果设备支持功率检测,你甚至可以做个闭环:
打开水泵。
检测功率数据(通过获取设备状态的接口)。
如果功率突然变小(说明水抽完了空转了),立刻发送
{"power":0}切断电源。
四、 避坑指南
在开发的时候,有这几个小石头要注意一下:
时间单位是毫秒
reset后面跟的是毫秒。1000 = 1秒,别填个1以为1秒,结果1毫秒就闪断了。200不等于执行成功:你调用接口收到
{"code":200},只代表服务器收到指令了。如果当时设备断网,设备是不会动作的。关键业务(比如银行机房断电),一定要去搭一个消息推送接收服务器,让设备执行完给你打个电话(推消息)说“我干了”。别把Secret写在前端:如果你是做小程序或网页直接控制,后端写个代理接口。不要在网页里直接暴露
AppSecret,否则懂点技术的人打开浏览器F12看到你的密钥,能把你家所有电器都控制了。
五、 总结
用芯步的20A空开做延时控制,最省事的方案就是利用设备的 reset 参数。不需要你去写复杂的定时器死循环,设备自己就能搞定倒计时。
一句话总结代码逻辑:
想延时开:发
{"reset": 毫秒数}想延时关:在你的服务器用
time.sleep()或定时任务,到了时间发{"power": 0}