CATALOG

AC4-30A是一款支持HTTP接口远程控制的智能通断器,单台可承载6600W大功率负载。实现远程批量控制的核心思路是:利用其开放的HTTP API,在服务端对多设备ID进行循环或批量调用。以下方案详细说明对接流程与批量控制的工程实现。

1. 解决概述

本方案基于 芯步开放平台AC4-30A 电源控制模块 的 HTTP API 接口。通过调用统一的云端 API,传入设备 ID 数组和通断指令,即可实现对单台或多台设备的远程同步控制。

  • 适用场景:智慧楼宇照明管理、工厂设备集中启停、机房服务器重启、农业大棚风机/水泵控制等。

  • 技术原理:设备通过 WiFi 连接互联网,对接方后台系统通过 签名认证 调用https://api.thingboot.com/{AppId}/device/control/ 接口,设备接收到指令后执行动作。

  • 硬件参数:AC4-30A 支持 85-265V 宽电压,额定电流 30A(阻性负载 6600W),支持 断电记忆点动模式(先通后断/先断后通)

2. 环境准备与前期配置

在编写代码之前,需要完成账号注册与设备配网。

  1. 注册开发者账号:访问 注册账号,并登录工作台

  2. 获取密钥:在“物联网控制台” -> “开发设置” 中,获取专属的 AppIDAppSecret。这是调用 API 的身份凭证。

  3. 设备配网

    • 为 AC4-30A 模块接通 220V 电源。

    • 使用微信搜索“芯步”小程序,或下载官方 App,按照提示将设备连接到 2.4GHz WiFi 网络

    • 注意: AC4-30A 仅支持 2.4G WiFi,不支持纯 5G 网络

  4. 获取设备 ID:在控制台“设备列表”页面查看已成功配网的设备 ID。批量控制的场景下,提前将所有设备的 ID 录入到您的业务数据库中。

3. API 接口对接详解

芯步的接口采用标准的 HTTP POST 请求,数据格式为 JSON。

3.1 核心参数说明

参数类型必填描述
URLStringhttps://api.thingboot.com/{AppID}/device/control/
signString接口调用签名,用于验证权限。
tsStringUnix 时间戳(秒)。用于防止重放攻击。
deviceString设备唯一 ID。支持批量传参,多个 ID 用英文逗号 , 隔开。
orderJSON控制指令。AC4-30A 支持 powerpointreset 等指令。

3.2 签名算法 (Sign)

为了安全,所有请求必须携带签名。生成逻辑如下(以伪代码为例):

  1. 将 AppSecret 进行一次 MD5 加密,得到 encrypted_secret = md5(AppSecret)

  2. 拼接字符串 temp_str = encrypted_secret + ts

  3. 再次进行 MD5 加密得到最终签名:sign = md5(temp_str)

注意ts 参数是请求发送时的 Unix 时间戳,服务器会校验时间戳的有效性(通常在 5 分钟内有效),请确保服务器时间与标准时间同步。

3.3 指令集 (Order) 说明

AC4-30A 对应模块支持以下 3 种控制模式:

  1. 标准通断 (power)

    • {"power":"1"} :继电器吸合,线路接通(设备指示灯常亮)。

    • {"power":"0"} :继电器断开,线路关闭(设备指示灯常灭)。

  2. 先通后断/点动 (point)

    • {"point":"3000"} :立即接通,延时 3000 毫秒 后自动断开。适用于控制门禁、电机触发等场景

  3. 先断后通 (reset)

    • {"reset":"5000"} :立即断开,延时 5000 毫秒 后自动接通。常用于路由器、网络设备重启

4. 核心技术实现:远程批量控制

批量控制的关键在于 device 参数支持传入逗号分隔的多个 ID。采用 服务端集群控制 策略,例如同时关闭一层楼的所有灯光。

以下提供 SHELL (Curl)Java 两种后端常用语言的示例,展示如何批量控制。

4.1 批量控制脚本示例 (Shell + Curl)

该脚本适合运维管理员快速测试或配合定时任务执行。我们需要对每个设备ID循环执行API调用,以实现批量控制

4.2 企业级批量控制 (Java + OkHttp)

在企业应用中,我们通常会封装一个服务类。为了确保高并发下的稳定性,我们使用线程池来批量发送控制请求,避免串行等待时间过长。

5. 针对“远程批量控制”的最佳实践

在实际项目落地中,为了实现更高效、稳定的批量控制,结合 AC4-30A 的特性,采用以下架构和策略:

  1. 服务端定时轮询 vs 实时触发AC4-30A 支持“定时任务”属性。如果您的控制策略是固定的(如每天晚上 10 点统一关灯),没必要在业务服务器做定时任务,可以直接在物联网平台为每个设备设置定时通断策略,这样即使您的业务服务器宕机,设备依然能按计划执行。

  2. 并发控制策略当控制设备数量级较大(如 >100 台)时,不要单纯依靠 API 调用时的逗号分隔(虽然协议支持,但单次 HTTP 携带过多 ID 可能导致请求体过大或超时)。

    • 推荐方案:采用 消息队列。业务后端将设备 ID 列表拆分为多个批次(例如每 50 台一批),推送到 RabbitMQ 或 RocketMQ,由消费者 Worker 线程池异步去调用芯步 API。这能有效削峰填谷,避免瞬间并发压垮网络。

  3. 状态反馈与重试机制

    • 网络抖动处理:AC4-30A 依赖 WiFi,存在弱网环境。API 调用返回的是“云端是否收到指令”,并不代表“设备已执行”。对于重要设备(如服务器电源),在代码中增加重试逻辑。

    • 状态同步:利用芯步提供的 设备状态回调 机制(Webhook)。配置您的服务器地址后,当 AC4-30A 执行指令或因手动按钮动作导致状态变化时,平台会主动推送状态变化数据到您的系统,保证您的数据库与设备实际状态绝对一致。

  4. 高级玩法:点动模式实现“重启”对于挂载的摄像头或路由器死机场景,可使用 reset 指令。

    • 例如,想要远程重启一台连接在 AC4-30A 上的路由器:发送命令 order={"reset":"10000"}。模块会立即断开(路由器掉电),10秒后自动重新接通,完美实现远程硬重启

6. 总结

通过对接芯步 AC4-30A 的开放接口,实现远程批量控制主要解决了以下痛点:

  • 简化开发:无需关心底层 MQTT 协议,使用标准 HTTP 协议即可完成集成。

  • 高并发批量处理:通过服务端的多线程异步调用策略,配合 AC4-30A 的单 API 多 ID 支持,可以轻松管理成百上千台设备。

  • 高可靠性:利用平台的点动(point)和定时任务功能,可以显著减少服务器压力并提升控制成功率。