芯步的智能硬件开放接口做得确实挺简单的——就是发个HTTP请求的事。50A智能空开作为大功率断路器,主要用在充电桩、空调、生产线这些场景,“延时通断”其实有两种玩法,我帮你把方案整理了一下。
适用型号:UNI-DLQ-M-50A (智能大功率断路器)
一、 咱们先聊个五毛钱的:为啥要“延时”控制?
你可能觉得,控制空开不就是“开”和“关”吗?要延时干嘛?
在实际业务里,场景可多了:
工厂设备:关机前需要给散热风扇留点时间运行,不然设备容易“中暑”。
智能充电桩:比如停车场晚上12点后电价便宜,你设置凌晨1点自动合闸充电,一小时后再断开。
水泵/电机:频繁启停伤机器,有时候需要“先断电,等几秒,再重启”这种复位逻辑。
实验设备:需要精确控制通电时长,比如通电10分钟必须断,防止干烧。
芯步这个50A空开,因为是 WiFi直连(不需要网关)且开放了 HTTP接口,实现上面的需求其实非常简单。
二、 核心思路:两种实现“延时”的姿势
对接之前,你得知道,这玩意儿有两种玩法,看你服务器稳不稳:
云端/服务器端延时(推荐用于长延时,比如几小时、几天)
原理:你的服务器收到指令后,不立刻发命令,而是存一个定时任务,时间到了再调接口。
优点:逻辑完全可控,适合几小时、几天甚至每周末执行的长延时任务。
缺点:如果服务器宕机或者断网,任务就废了(不过这种情况很少见)。
设备自带指令延时(强烈推荐,用于短延时,比如几秒、几小时)
原理:芯步的固件其实内置了“定时”逻辑。你只需要发一条带时间参数的指令过去,设备自己就会倒计时执行。
优点即使你服务器挂了,空开也会自己执行完命令,可靠性比较高,响应快(80-120ms)。
缺点:一般单次延时最多几小时(视具体固件支持,但通常够用)。
今天我们重点讲第二种,因为这是最优雅、最省事儿的办法,特别适合50A这种大功率设备(毕竟断网了也得安全工作)。
三、 动手对接前,你手里得有这仨东西
在写代码前,先去芯步后台把东西备齐:
AppID 和 AppSecret:相当于你的工牌和密码,调接口要用的。
设备ID:就是那个50A空开背后的序列号,或者在后台绑定的ID。
签名算法
sign = md5( md5(AppSecret) + ts )(有点绕,就是把密码MD5一次,加上时间戳,再整体MD5一次)。
四、 实战场景:怎么让它“延时”动作?
我们结合50A智能空开,拆解三个最常见的“延时”需求,看看接口到底怎么发。
注意:芯步的接口统一地址是:
https://api.thingboot.com/{AppId}/device/control/?sign={sign}&ts={ts}请求方式:POSTBody是JSON:{"device":"设备ID","order": 这里填命令 }
第一种场景:按下开关,通电1小时后自动断开(单次定时)
需求:我要给电动车充电,只想充1小时,防止过充。
操作:直接下发热插拔指令。这个时候,我们就用到了 reset 命令(先断后通,或者理解为“复位”),实际上在芯步的体系里,配合时间参数就是延时动作。
代码示例 (用curl演示,你换成Python/Java同理):
解说
“power”: 1:意味着立刻闭合开关,通电。“reset”: 3600000:注意这个单位是毫秒!3600000毫秒 = 3600秒 = 1小时。逻辑:设备执行合闸 -> 启动倒计时 -> 1小时后自动分闸。是不是很简单?
第二种场景:延迟10秒后再通电(软启动/避开浪涌)
需求:有些大电机一启动电流很大,或者你想先让散热风扇转起来,过10秒再让主电路通电。
操作:这就是典型的“延时启动”。虽然标准文档里常用point表示“先通后断”,但针对50A这种大功率场景,执行“延时接通”更安全。如果官方指令支持delay参数,我们可以这样发,或者利用point的反向逻辑。
替代方案指令
注:部分型号point是“通电后延时断开”。如果是要“延时接通”,最稳妥的方法是你服务器sleep 10秒再发power命令。因为50A场景安全性第一,怕你把延时和立刻弄混了烧设备。
推荐做法(服务器端简单实现):
第三种场景:需要“全关”然后“再开”的断路器复位(闪断)
需求:某些设备死机了,需要远程让它“断电-等待-重启”。
操作:发送 reset 命令,不需要额外的 power。
解说
这条命令的意思是:立刻断开(哪怕现在是通电状态,先切断)。
等待 5000毫秒(5秒)。
5秒后,自动重新接通。
这个功能特别适合远程重启路由器、工控机这类设备。
五、 开发避坑指南(这几点得记牢)
既然你要写代码了,有几个坑我先帮你踩了:
时间单位是毫秒:接口里涉及到
interval、reset、point的数值,全是毫秒。1秒 = 1000
1分钟 = 60000
别传成秒了,不然你会发现“怎么1分钟就断了?”(以为传了60秒,结果其实是60毫秒断了)。
签名别缓存太久:签名里的
ts是时间戳。如果你生成的ts跟服务器时间差太多(一般超过5-10分钟),接口会报错过期。每次请求实时生成签名。50A是大功率,状态同步问题:50A空开往往用在空调、充电桩上。如果你发了延时命令,但又想在手机App上显示“倒计时剩余时间”,这个倒计时得由你后端去算,或者轮询设备状态。设备只负责到点执行,不会主动每秒给你推送倒计时(除非你接了长连接推送,那是另一个话题)。
局域网直连(私有化):如果你是在工厂内网用,不想走外网云。芯步的设备支持局域网API。这时候你的IP要改成设备本地的IP,端口默认80。用法一模一样,这就不受外网影响了,就算工厂宽带断了,内网系统照样能控制空开延时。
六、 总结一下
对接芯步的50A智能空开实现延时通断,最省力的方式就是利用 reset 和 point 这两个带时间参数的指令。
一句话记住:
想“通电后等会儿断”,发
{"power":1, "reset": 毫秒};想“断电后等会儿开”,发{"reset": 毫秒}(执行时设备本身就是闭合的话,它会先断再延时开)。
按照这个方案,快的话十分钟就能跑通第一个“一小时后断电”的Demo了。如果在私有化部署或者签名算法上还有什么细节搞不定的,随时再问~