基于芯步AC4-20A的开放接口,延时通断控制可通过组合其内置的point和reset命令实现,同时支持云端脚本和本地应用两种二次开发模式。以下是具体方案。
一、 AC4-20A 接口能力分析
在开始开发前,首先需要明确这款智能通断器的核心接口能力。根据官方文档,AC4-20A 提供标准 HTTP API 接口,这意味着任何支持 HTTP 请求的编程语言(如 Java, Python, PHP, Go, Node.js)或工具(如 Postman, curl)都可以与其交互,大大降低了二次开发的门槛 。
它的接口控制命令主要包含以下三类,其中后两类是实现延时通断的关键:
| 命令类型 | 参数格式 | 功能描述 | 应用场景 |
|---|---|---|---|
| 瞬时通断 | {"power":"1"} | 立即打开或关闭设备电源。 | 基础远程控制。 |
| 先通后断 | {"point":"3000"} | 立即接通电源,延时指定毫秒后断开。 | 控制自动关门/窗、短暂触发脉冲信号。 |
| 先断后通 | {"reset":"3000"} | 立即断开电源,延时指定毫秒后重新接通。 | 设备自动重启(如路由器、NAS)、设备复位。 |
注:point 和 reset 的参数单位为毫秒(ms)。例如,"3000" 代表 3 秒。
二、 签名算法与请求结构
在调用接口之前,必须处理 API 的安全验证。芯步的接口采用动态签名方式,这是为了防止接口被非法调用。
必要的凭证信息登录芯步控制台,获取你的
AppID(应用ID) 和AppSecret(应用密钥)。签名生成逻辑官方定义的签名规则如下,通常在服务器端进行计算以保证密钥安全:
YourSign = MD5( MD5(AppSecret) + ts )MD5():标准的 MD5 加密算法(32位小写)。AppSecret:你的应用密钥。ts:当前 Unix 时间戳(秒级)。
请求地址格式构建完成的请求 URL 格式如下:
https://api.thingboot.com/{AppID}/device/control/?sign={YourSign}&ts={ts}注意:请求方式为
POST,Content-Type 通常为application/x-www-form-urlencoded或application/json。
三、 实现延时通断的三种方案
根据不同的应用需求,这里提供三种实现方案。
方案一:利用设备内置命令实现“硬延时”(最简单、最稳定)
这是最推荐的方式,直接将延时逻辑下发给设备执行,不占用服务器资源,且不受网络波动导致的“握手延迟”影响。
场景举例:控制一盏走廊灯,希望它能点亮 10 秒后自动关闭(人走过即灭,节省能源)。
实现思路只需要调用接口,下发 point 命令,并将时间设定为 10000 毫秒(10秒)。设备接收到命令后会自行计时。
请求参数示例
device:YOUR_DEVICE_IDorder:{"point":"10000"}效果设备执行结果为:通电(灯亮)等待10秒断电(灯灭)。
方案二:利用云端逻辑实现“软延时”(适合动态计算场景)
如果延时时间不是固定的,需要根据传感器数据或外部变量动态计算(例如,根据电池电量决定充电时间,电量越低充越久),可以利用你的后端服务器脚本进行处理。
实现思路你的服务器在收到触发指令后,先计算出需要延时的时间(例如通过业务逻辑算出 5000 毫秒),然后调用 point 或 reset 接口。
伪代码逻辑 (Python思路) :
方案三:自建循环脚本实现“循环延时”(复杂定时任务)
虽然 AC4-20A 支持云端定时任务,但如果需要极其复杂的循环逻辑(如:开5秒,关10秒,开5秒,关20秒...),二次开发是更好的选择。
实现思路在服务器端编写一个定时任务脚本,交替发送 on 和 off 指令。
流程图
graph TD A[开始] --> B{当前状态?}; B -- 关闭 --> C[发送 power=1 开]; B -- 打开 --> D[计算需延时多久]; D --> E[Sleep 延迟]; E --> F[发送 power=0 关]; C -- 等待 --> F; F --> B;
四、 实战:延时重启路由器(含代码示例)
目标:通过脚本远程重启一台连接在 AC4-20A 上的路由器。需要先断开电源,等待 5 秒,再重新接通电源。
方案分析:选用 reset 命令最为合适,参数设为 5000。
以下是利用 Shell 和 Java 两种语言调用接口的示例。
1. Shell 脚本示例 (cURL)
适合在 Linux 服务器上快速测试或编写简单的定时任务。
2. Java 示例 (OkHttp)
适合集成到现有的 Spring Boot 或 Java 后端系统中。
五、 注意事项与故障排查
局域网与私有化部署如果对延迟要求比较高(工业自动化场景)或处于纯内网环境,可利用官方支持的私有化部署能力,将消息服务器部署在本地,这样可以实现更低延迟的本地闭环控制 。
时间单位确认
point和reset的参数单位是毫秒。如果需要延时 1 分钟,参数应该是60000,而不是1。任务状态管理如果通过
point下发了“延时关闭”指令,但在延时期间又收到了“开启”指令,设备通常不会因此而取消原有的关闭计时,而是根据最新指令执行。如果你的业务需要覆盖旧指令,在应用层做状态机管理,或者在每次下发新指令前,先查询一次设备状态(如果有提供查询接口)。签名失败最常见的原因是时间戳(
ts)误差过大或 MD5 字符串大小写不一致。确保服务器时间已同步。
通过上述方案,开发者只需要关注 point 和 reset 这两个核心参数,利用标准的 HTTP 请求,即可轻松复用芯步智能通断器的成熟硬件方案,快速实现复杂的工业或商业延时控制逻辑。