大家好,今天咱们聊点实操的东西。
如果你手头有一个芯步的AC3-10A计量版智能开关,想让它不仅仅是做个远程开关,还想玩点高级的,比如按下按钮后延时10秒再开灯,或者打开开关后自动延时半小时关掉,该怎么搞?
其实这事儿很简单。AC3这款设备最良心的地方就是开放了HTTP接口,这意味着你可以用自己的代码指挥它干活,想怎么玩就怎么玩。
下面我就以 “延时通断控制” 为例,手把手教你怎样二次开发。
一、 先搞清楚,咱们能调什么“命令”?
要进行二次开发,首先得知道AC3-10A计量版支持哪些指令。根据官方文档,它支持以下几种核心命令
| 命令类型 | 参数Key | 作用说明 |
|---|---|---|
| 线路控制 | power | 直接开关:"1" 是开,"0" 是关。 |
| 先通后断 | point | 先把线路接通,通电一段时间后自动断开。 |
| 先断后通 | reset | 先把线路断开,停电一段时间后自动恢复通电。 |
| 计量控制 | metering | 控制计量功能开关,"1"是开,"0"是关。 |
我们要实现延时通断,靠的就是 point(先通后断)和 reset(先断后通)这两个指令。
举个例子:
想让设备打开 5 秒后自动关闭,就用
point,参数填5000(注意单位是毫秒)。想让设备关闭 10 秒后自动再打开(相当于断电重启),就用
reset,参数填10000。
注意:这个延时执行是由设备本地完成的。也就是说,你发一次指令,设备内部有个计时器,时间到了自动执行,不依赖你的网络。即使你发完指令就关掉手机,到了设定的时间,它依然会照常动作,很可靠。
二、 动手之前,准备两样“钥匙”
在写代码之前,咱们得去芯步的后台拿两样东西,这就好比是你控制设备的“账号密码”
获取 AppID 和 AppSecret
登录芯步的开发者后台。
找到“开发设置”之类的选项。这里的 AppID 是你的应用身份标识,AppSecret 是你的密钥,这两个待会儿签名要用。
获取设备 ID (Device ID)
在后台的设备管理页面,找到你那个AC3开关,复制它的 Device ID。这是你要指挥的那个“小兵”的编号。
搞懂签名算法 (Sign)
芯步的接口为了安全,需要携带签名。官方用的签名算法是
sign = md5(md5(AppSecret) + ts)。这里的
ts是当前的时间戳(单位是秒)。简单来说:先把你的
AppSecret做一次MD5加密,然后在加密结果的字符串后面拼接上当前的时间戳ts,最后对这个新的字符串再做一次MD5,得到的就是sign。
有的朋友可能会觉得签名这一步有点绕,但其实就是按公式拼接字符串,然后让电脑帮忙算一下。现在各种编程语言都有现成的库,一行代码就能搞定,不用自己手算。
三、 开干!用几行代码实现“延时”
这部分最爽。不管你是用 Python 写脚本,还是用 PHP 做网站,甚至用 Shell 在路由器上跑,只要支持 HTTP 协议,都能轻松对接 。
这里我拿 Python 来举例,因为它最简单,最适合做这种自动化小工具。
1. 导入库
2. 第一种场景:按下开关,亮灯30秒后自动熄灭
这个场景很适合走廊灯或者排气扇。假设你有个非智能的LED灯带,想让它打开半分钟后自己关。
代码解释:这里用的是 point 指令。发送后,开关立刻吸合通电,30秒后自动断开。这就是典型的“单次定时关”。
3. 第二种场景:先断电,10秒后再重启
这个场景适合当你远程控制路由器死机了,想给它断个电再重启。或者用来复位一些卡住的家电。
代码解释:这里用的是 reset 指令。发送后,开关立刻断开,停10秒,然后自动吸合。注意,如果设备本来就是断电状态,reset 的效果可能不明显,通常用在设备正在运行时。
4. 第三种场景:利用计量功能,实现“充电保护”
既然你用的是计量版,那还可以玩更高级的——比如电动车充电,充满自动断电。
思路:先打开开关 -> 循环读取电量参数 -> 当电流低于某个阈值(比如0.5A)时,执行 power 关闭指令。
这个实现稍微复杂一点,因为要先学会读取计量数据接口,但在后台文档里都能找到对应字段,读电流值就行。
四、 如果不用编程?懒人也可以曲线救国
有朋友可能会问:我完全不懂代码,但又想实现这种“触发后延时关闭”的功能,是不是就没戏了?
其实也不是。芯步的后台本身就支持 “云端定时任务” 和 “联动”。虽然云端定时没办法做到“按完按钮开始计时30分钟”,但如果你是做周期性控制,比如“每天早上8点开,晚上8点关”,直接在后台配置一个周期定时器就行了,完全不用写一行代码。
五、 一点小提示
单位是毫秒:调用接口时,时间参数填的是毫秒。比如 5 秒就是 5000,千万别算错了。
计量版的好处:如果你要做延时控制,结合计量功能可以做出很多智能场景。比如,检测到功率突然变大(空调压缩机启动),延时5分钟再执行下一个动作,这样更科学。
网络延迟:虽然
point和reset指令发出去后是本地执行,但你发送指令的网络请求会有延迟。不过这通常影响不大,几十毫秒的误差完全可以接受。
总结
芯步的AC3-10A计量版接口非常开放,实现“延时通断”其实就是把简单的 point 和 reset 指令用 HTTP POST 发过去。不管你是用 Python 跑脚本,还是用 Shell 放在定时任务里,甚至集成到 HomeAssistant 里,门槛都非常低。
你学会了吗?赶紧去试试让你的开关“延时一下”吧!