CATALOG

AC2-10A 是芯步推出的一款支持API控制的智能通断器,额定功率2200W,开放HTTP接口和WebSocket推送能力。以下方案围绕实时能耗计量与远程控制的二次开发展开,涵盖设计、接口调用、数据采集与指令下发等关键环节。

1. 背景与目标

AC2-10A 是芯步推出的一款智能电源控制模块。它不仅支持继电器通断控制,还具备电量计量功能。二次开发目标:利用其开放的 HTTP APIWebSocket 实时推送 能力,将其集成到现有的企业能源管理系统(EMS)或智慧楼宇系统中,实现对用电设备的实时数据采集能耗分析以及远程自动化控制

2. 核心技术架构

由于AC2-10A不具备本地复杂的脚本运行环境,二次开发采用 “云/局域网API + 业务服务器 + 前端应用” 的架构。

  • 设备端:AC2-10A 智能通断器。

  • 接口协议:HTTPS / HTTP (RESTful API) 或 WebSocket。

  • 业务逻辑层:开发者自建的服务器(负责处理签名、数据存储、业务规则)。

  • 数据流向

    • 下行(控制):APP/Web -> 业务服务器 -> 芯步API -> AC2-10A。

    • 上行(计量):AC2-10A -> 芯步云 -> Webhook/消息推送 -> 业务服务器。

3. 准备工作:接口对接与鉴权

在进行二次开发前,开发者需在芯步开发者后台获取关键凭证

  • AppID:应用的唯一标识。

  • AppSecret:用于签名加密的密钥。

  • Device ID:设备的唯一ID(需通过控制台获取)。

签名算法(Sign)这是保证接口安全的必要步骤。算法规则如下:

  1. 先将 AppSecret 进行 MD5 加密:md5_secret=MD5(AppSecret)md5\_secret = MD5(AppSecret)

  2. 拼接时间戳:string=md5_secret.tsstring = md5\_secret . ts (ts为当前Unix时间戳)

  3. 最终签名:Sign=MD5(string)Sign = MD5(string)

请注意:在请求API时,时间戳ts必须与服务器时间误差较小,否则会认证失败。

4. 功能实现一:实时能耗计量与数据采集

要获取实时能耗,必须利用 AC2-10A 的 状态主动推送 机制,而不是单纯的轮询。

4.1 配置消息接收服务器 (Webhook)

芯步支持类似微信公众号的机制,当设备状态变化或电量数据更新时,会向开发者指定的URL推送JSON数据

  • 操作:在控制台设置 Callback URL

  • 数据内容:当设备上报数据时,服务器将收到包含 voltage(电压)、current(电流)、power(功率)、energy(累计能耗)和 power_status(开关状态)的JSON包。

4.2 二次开发数据处理逻辑

在服务器端接收到Webhook推送时,开发者需编写如下处理逻辑:

  1. 验签:验证推送消息是否确实来自芯步云,防止伪造数据。

  2. 解析:提取 device_idpower(功率,单位W)及 energy(电量,单位KWh)。

  3. 存储

    • 实时表:存储当前功率,用于展示瞬时负载。

    • 历史表:将累计电量存入时序数据库(如InfluxDB)或关系库(MySQL),用于生成报表。

  4. 异常检测:如果实时功率超过设定的阈值(如 > 2500W),自动触发过载预警逻辑。

4.3 实时性保障机制

  • 轮询备用:如果不方便配置公网Webhook,也可以调用设备状态查询接口 GET /device/status 定期拉取数据,但间隔不低于5秒,避免触发频率限制。

  • WebSocket 长连接:对于需要极低延迟(<1秒)的大屏展示场景,推荐使用芯步提供的 WebSocket 接口订阅设备数据,相比 HTTP 轮询,能更有效地降低服务器压力。

5. 功能实现二:远程智能控制

除了看数据,核心在于控制。控制指令通过 HTTP POST 请求下发。

5.1 下发控制指令

接口地址https://api.thingboot.com/{AppID}/device/control/方法:POSTHeadersContent-Type: application/json

请求Body示例

5.2 实现“实时计量控制”逻辑

系统需要实现基于能耗数据的自动化控制,这部分逻辑主要在业务服务器中实现:

  • 第一种场景:空载断电(节能)

    • 逻辑:监听 Webhook 推送的功率值。

    • 判断:若 power < 5W (低功率) 且持续时间 > 5分钟

    • 动作:调用控制接口 order: {"power": 0} 切断电源,避免待机能耗浪费。

  • 第二种场景:定时/倒计时任务

    • AC2-10A 支持自定义动作,如“打开若干毫秒后关闭”

    • 指令示例:{"power":1, "duration": 60000} (开启,并在60秒后自动关闭)。

  • 第三种场景:联动控制(恒功率调节)

    • 例如:当检测到当前功率超过 2000W 时,暂时关闭次要负载(非优先设备),保护电路不被烧毁。

5.3 调试与排错

在开发过程中,可以直接使用 CURL 命令进行调试

6. 高级应用场景

6.1 语音/本地联动(边缘计算场景)

虽然 AC2-10A 主要依赖 WiFi 连接云端,但其接口文档提及了“支持自定义两组信号输入执行响应动作”

  • 开发方案:开发者可以外接传感器(如人体红外传感器、门磁)到 AC2-10A 的信号输入引脚。当传感器触发(如有人经过),AC2-10A 无需经过云端,直接执行预设的通断动作(如开灯)。这需要在二次开发时,通过接口配置设备的“联动规则”。

6.2 私有化部署

芯步支持私有化部署方案,允许设备仅在内网运行

  • 对于数据安全要求比较高的工厂或机房,可将 API 服务部署在内网服务器,设备通过局域网 IP 直接与控制服务器通信,断开外网连接,满足数据不出园区的合规要求。

7. 总结

通过对芯步 ACL-10A 的二次开发,开发者可以快速构建一套软硬结合的能源管理系统。核心路径总结为三步:

  1. 打通数据链路:通过 Webhook 接收功率/电量数据,解决数据来源问题。

  2. 构建控制闭环:通过 HTTP API 下发指令,解决执行控制问题。

  3. 编写业务逻辑:在服务器端编写基于 Python/Java/Node.js 的规则引擎,将“计量”与“控制”关联起来,实现真正的智能化能耗管理。