CATALOG

芯步AC1-10A是一款支持HTTP接口的智能通断器,非常适合做二次开发。这篇文章会一步步带你搭建一个“定时控制+故障告警”的小系统,从消息推送机制到代码实现都涵盖,你可以直接拿去参考落地。

大家好,今天我们来聊点硬核又实用的东西。手里如果有一款芯步的AC1-10A智能通断器(也就是智能开关),别只满足于手机App点一点了。咱们把它玩出花来——二次开发,给它加上“故障告警通知”的功能。

很多朋友问:这玩意儿不就远程断个电吗?怎么搞告警?其实,AC1-10A就像一个哑巴工具,会干活但不会说话。我们要做的,就是给它装上一个“大脑”和一张“嘴”,让它不仅能定时开关,遇到设备没反应或者异常断开时,还能主动发微信或者短信通知你。

下面,我就手把手教你如何利用它的开放接口搞定这件事。

关于AC1-10A:这款设备支持 1-10A 电流控制,简单说就是直接控制家里的灯、水泵、小电机或者服务器重启。关键点是它支持 HTTP 接口控制状态主动推送,这就给了我们二次开发的空间

一、整明白两个核心接口

动手之前,得先知道我们能用哪些工具。AC1-10A的开放接口主要干两件事:

1. 控制接口

这就是让你远程发命令给它,比如“开”或“关”。

它的核心逻辑是发一个 HTTP 请求。大概像下面这样:https://api.thingboot.com/{你的AppID}/device/control/?sign=签名&ts=时间戳

Body里面带着命令:

这里面有个“签名”算法,看起来有点复杂,其实就是把密码和时间戳混在一起加密一下,防止别人乱搞你的设备。不过官方提供了各种语言的Demo,复制粘贴就行,不用慌。

2. 消息推送机制

这是告警功能的核心!也是芯步比较好用的一个点。

你需要先在自己的服务器上写一个接收地址,然后在后台配置一下。AC1-10A只要状态变了,比如突然断电了、被手动按了、或者通电了,它都会往你这个地址发一条JSON数据

比如,设备如果掉线了,你收到的消息里会有类似字段告诉你设备失联了。这就相当于设备主动“喊”了一声。

二、规划一下:我们要做成什么样?

设想一个场景:办公室的服务器散热风扇由AC1-10A控制,每天晚上6点自动关闭省电,早上8点自动开启散热。但是,如果半夜服务器高温了,需要强行开风扇,或者设备执行定时任务失败了怎么办?

我们要开发的这个系统,要实现以下三个小目标:

  1. 定时执行:到点自动开关。

  2. 故障监测:如果发命令没反应(超时),或者设备意外离线,系统要能感知。

  3. 告警通知:一旦感知故障,立刻给你的手机发通知(这里我们以推送企业微信机器人为例,因为免费且方便)。

三、动手写代码

这里我用 Python 写一下核心逻辑,比较通俗易懂,环境配好就能跑。

第一步:封装控制命令

我们先写个函数,专门用来控制开关。这一步主要是把签名算法包一层,以后调用方便。

第二步:搭建告警接收服务

我们需要一个 Web 服务来接收设备推送的消息。这里用 Flask 框架,几行代码搞定。

第三步:实现定时任务与故障重试

我们要实现定时功能,并且要有“容错机制”。比如,我发了开的指令,但设备没返回成功,我就得报警。

第四步:把告警发到你的手机上

前面我们留了一个 send_warning 的空函数。这里我推荐企业微信机器人,不需要认证,只要有网就能往群里发消息。

这样一来,一旦你的 AC1-10A 没响应,你的手机立马就能收到消息。

四、避坑指南与总结

在实际操作中,有几个小地方可能会卡住,我多说两句:

  1. 签名问题:芯步的签名是 md5(md5(AppSecret) + ts),注意这个拼接顺序,很多朋友第一次都会写反。如果不确定,可以先在后台开“调试模式”验证逻辑,再关掉调试模式上线

  2. 公网访问:你的 Flask 服务需要有一个公网 IP 或者域名,不然设备推送找不到你的电脑。没有服务器的话,可以租个最便宜的云服务器,或者使用内网穿透工具。

  3. 消息去重:设备可能会因为网络波动重复推送消息,在接收端做一个缓存(比如记录最近1分钟的消息ID),避免同一故障刷屏。

通过这个方案,你就把一个普通的 AC1-10A 智能开关,升级成了一个具备“自我体检”能力的工业级定时控制器。它不仅能定时开关,还能在出问题的时候第一时间告诉你,不用担心“不知道设备啥时候挂了”这种烦心事了。

这套思路同样适用于芯步平台上的其他设备,一通百通。