CATALOG

大家好,今天咱们聊点实操的东西。

如果你手头有一个芯步的AC3-10A计量版智能开关,想让它不仅仅是做个远程开关,还想玩点高级的,比如按下按钮后延时10秒再开灯,或者打开开关后自动延时半小时关掉,该怎么搞?

其实这事儿很简单。AC3这款设备最良心的地方就是开放了HTTP接口,这意味着你可以用自己的代码指挥它干活,想怎么玩就怎么玩。

下面我就以 “延时通断控制” 为例,手把手教你怎样二次开发。

一、 先搞清楚,咱们能调什么“命令”?

要进行二次开发,首先得知道AC3-10A计量版支持哪些指令。根据官方文档,它支持以下几种核心命令

命令类型参数Key作用说明
线路控制power直接开关:"1" 是开,"0" 是关。
先通后断point先把线路接通,通电一段时间后自动断开。
先断后通reset先把线路断开,停电一段时间后自动恢复通电。
计量控制metering控制计量功能开关,"1"是开,"0"是关。

我们要实现延时通断,靠的就是 point(先通后断)和 reset(先断后通)这两个指令。

举个例子:

  • 想让设备打开 5 秒后自动关闭,就用 point,参数填 5000(注意单位是毫秒)。

  • 想让设备关闭 10 秒后自动再打开(相当于断电重启),就用 reset,参数填 10000

注意:这个延时执行是由设备本地完成的。也就是说,你发一次指令,设备内部有个计时器,时间到了自动执行,不依赖你的网络。即使你发完指令就关掉手机,到了设定的时间,它依然会照常动作,很可靠。

二、 动手之前,准备两样“钥匙”

在写代码之前,咱们得去芯步的后台拿两样东西,这就好比是你控制设备的“账号密码”

  1. 获取 AppID 和 AppSecret

    • 登录芯步的开发者后台。

    • 找到“开发设置”之类的选项。这里的 AppID 是你的应用身份标识,AppSecret 是你的密钥,这两个待会儿签名要用。

  2. 获取设备 ID (Device ID)

    • 在后台的设备管理页面,找到你那个AC3开关,复制它的 Device ID。这是你要指挥的那个“小兵”的编号。

  3. 搞懂签名算法 (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点关”,直接在后台配置一个周期定时器就行了,完全不用写一行代码。

五、 一点小提示

  1. 单位是毫秒:调用接口时,时间参数填的是毫秒。比如 5 秒就是 5000,千万别算错了。

  2. 计量版的好处:如果你要做延时控制,结合计量功能可以做出很多智能场景。比如,检测到功率突然变大(空调压缩机启动),延时5分钟再执行下一个动作,这样更科学。

  3. 网络延迟:虽然 pointreset 指令发出去后是本地执行,但你发送指令的网络请求会有延迟。不过这通常影响不大,几十毫秒的误差完全可以接受。

总结

芯步的AC3-10A计量版接口非常开放,实现“延时通断”其实就是把简单的 pointreset 指令用 HTTP POST 发过去。不管你是用 Python 跑脚本,还是用 Shell 放在定时任务里,甚至集成到 HomeAssistant 里,门槛都非常低。

你学会了吗?赶紧去试试让你的开关“延时一下”吧!