CATALOG

芯步AC1-10A智能通断器开放HTTP接口,支持通过API直接下发命令,这为二次开发提供了很大便利。延时通断控制的核心思路是:服务端下发“动作”指令 + 设备端利用“自定义动作”参数执行,下面给出具体实现方案。

一、 解决方案:架构与核心原理

1.1 为什么选择“云端定时”而不是“设备本地倒计时”?

对于AC1-10A这类基础版通断器,其固件主要支持即时指令。为了实现“延时”效果,通常有两种架构:

  • 方案A(纯云端调度): 你的业务服务器设置一个定时任务(如使用Cron表达式),在1小时后触发API调用,发送通电指令。(优点:逻辑简单,不依赖设备固件;缺点:依赖网络和服务器稳定性)

  • 方案B(利用设备自定义动作): 查阅芯步文档发现,AC1-10A支持point(先通后断/先断后通)命令。这种命令是设备端本地执行的,即使断网也会执行

推荐采用方案B,因为它更精准,且不受网络延迟抖动的影响,适合精确控制电机、灯光或灌溉系统。

1.2 核心接口资源

本次开发主要依赖芯步开放平台的以下能力:

  1. 设备控制接口:https://api.thingboot.com/{AppID}/device/control/

  2. Sign签名算法:MD5(MD5(AppSecret) + Timestamp)

  3. 关键指令参数:order 字段的 point 语法。

二、 二次开发实施步骤

步骤1:准备工作与环境配置

  1. 获取凭证: 登录芯步控制台,在“开发设置”中获取 AppIDAppSecret

  2. 激活设备: 确保AC1-10A已通电并通过配网小程序绑定到你的账号下。记录下它的 Device ID(如序列号1878或类似格式)。

步骤2:核心代码实现(延时通断逻辑)

AC1-10A的命令参数 order 支持 point 类型。该参数接受一个毫秒级的数值。

场景模拟: 触发开关后,延迟5秒钟 再接通电源(例如:关门后延时亮灯)。

下发指令代码示例(Python):

针对“低压控制开关”的特别说明:AC1-10A虽然标称2200W,但作为低压控制开关使用时(如控制DC 12V或24V电路),其继电器原理相同。你只需要将低压电路的其中一根线串联到COM和NO(常开)端子上即可。上述代码控制的是触点的吸合与断开,对交直流均有效。

步骤3:实现更复杂的“周期性通断”

如果你需要实现“开10秒,关5秒,循环3次”这样的复杂逻辑,仅靠单次API无法完成,需要方案A(业务侧逻辑)

代码逻辑设计(伪代码):

三、 关键注意事项

1. 命令参数的准确性

不同的固件版本对pointdelay的支持度稍有不同。在二次开发调试时,先用芯步控制台里的“调试”功能手动发送一条{"point": 3000}指令,观察设备行为。如果设备“啪”的一下吸合3秒后断开,说明参数生效;再应用到代码中。

2. 超时与重试机制

AC1-10A通过WiFi联网,环境可能存在波动。

  • 在代码中需要封装重试逻辑(例如:发送命令后未收到code:200,间隔1秒重试3次)。

  • 如果使用云端定时(方案A),你的服务器时间必须与NTP服务器同步,否则会出现早动或晚动几秒的情况。

3. 状态同步(Webhook)

延时控制存在一个风险:在延时期间,用户通过物理按键或App手动改变了设备状态,导致延时指令执行时状态错乱。

  • 解决方案: 配置芯步的消息推送功能。当设备状态变化时,平台会POST到你指定的URL。你的服务器收到状态变更通知后,应撤销之前未执行的延时任务。

四、 总结

通过二次开发芯步AC1-10A实现延时通断,最佳路径是:

  1. 简单延时(如延时5秒开/关): 直接利用设备接口中的 delaypoint 参数,在HTTP请求的order字段中下发,由设备本地计时执行。

  2. 复杂周期任务: 由你的业务服务器(Python/Node/Java)利用定时任务框架(schedule/APScheduler)循环调用API控制。

  3. 核心代码片段就是集成其MD5签名机制,确保API请求的安全性,然后通过构造特定JSON体实现对继电器的精准时控。

这套方案广泛应用于智能灌溉(定时喷水)、鱼缸自动换水(延时排水)、以及工业自动化中的低压信号控制场景。