芯步的16A智能插座开放了HTTP接口,定时控制其实不需要你自己维护定时任务——接口本身就支持“先通后断”这类一次性延时指令。下面直接说怎么对接。
芯步16A智能插座对接方案:实现定时开关电器
一、搞清楚我们要干啥
简单来说,就是通过代码调用芯步的开放接口,控制16A智能插座的通断。实现定时开关不需要你自己写定时任务,直接用接口里的延时参数就能搞定。
这个16A智能插座,说白了就是一个可以用WiFi控制的大功率插座。它的接口是完全开放的,支持HTTP请求,什么编程语言都能调。而且芯步的开放平台永久免费,这个得点个赞。
二、准备工作
动手之前,你需要搞到三样东西:
AppID —— 你的应用ID,在芯步控制台的“开发设置”里能看到
AppSecret —— 开发者密码,也在同一个地方
设备ID —— 就是你那个16A插座的ID,配网后在控制台能看到
配网很简单:下载芯步小程序,登录你的账号,添加你家WiFi(注意必须是2.4G频段),然后把插座通上电,小程序里点一下就能搜到配上了。
三、签名怎么算(这个坑别踩)
芯步的接口需要携带签名,这是很多新手容易卡住的地方。签名算法其实不复杂:
一步步来:
把AppSecret做一次MD5加密,得到一个32位字符串
把上面得到的字符串和ts(当前时间戳,10位数字)拼在一起
把拼接后的字符串再做一次MD5
ts就是当前时间的秒数,比如 1695024000 这样。两个MD5套在一起,看着晕但其实写代码也就几行。
四、核心:怎么实现定时开关
16A插座支持几种控制方式
直接开关
{"power":1}开,{"power":0}关先通后断(定时关)
{"point":3600000}先通电,1小时后自动断开先断后通(定时开)
{"reset":300000}先断电,5分钟后自动接通
注意这些时间的单位都是毫秒。
场景1:让鱼缸水泵工作1小时后自动停
这个场景用 point 命令。point 的意思是先接通,然后过了指定时间后自动断开。
场景2:让热水器在晚上6点自动开启
这种场景分两步走:先计算当前到晚上6点还有多少毫秒,然后用 reset 命令。reset 的意思是先断开(如果现在是通的话),然后过了指定时间再接通。
比如现在是下午5点,离6点还有3600000毫秒(1小时),那就发:
如果你的业务场景需要每天固定时间重复(比如每天晚上10点关),那在你自己服务器上写个cron定时任务,到点调用 power=0 就行了。
五、完整的请求示例
以Node.js为例(其他语言同理,无非就是发个HTTP请求):
返回 {"code":200} 就表示成功了。
六、几个实际场景举例
鱼缸水泵:每小时开50分钟停10分钟。你需要在自己服务器上算好时间,每10分钟发一次开,然后带一个 point:3000000(50分钟=3000000毫秒)让它自动关。
电动车充电:晚上10点开始充,早上6点停。在晚上10点发开指令,同时带一个 point:28800000(8小时=28800000毫秒)。或者在你服务器上设早上6点的定时关。
办公室饮水机:早上9点开,下午6点关。在服务器上设两个cron:9点发 power=1,18点发 power=0。
七、注意事项
接口限流:单个设备每秒最多请求1次,别写死循环去刷
单位是毫秒
point和reset的值都是毫秒,1秒=1000,1分钟=60000,1小时=3600000设备需要在线:如果插座断网了,命令发过去也没用。可以订阅设备上下线状态来做异常处理
私有化部署:如果你不想走公网,芯步也支持把接口部署到你自己的局域网里
整体来说,芯步这套接口设计得还算清爽,核心就是拼好签名、选对命令、算好时间。不用写复杂的定时逻辑,一个 point 或 reset 就能搞定大部分场景。