AC2-10A 是芯步推出的一款支持API控制的智能通断器,额定功率2200W,开放HTTP接口和WebSocket推送能力。以下方案围绕实时能耗计量与远程控制的二次开发展开,涵盖设计、接口调用、数据采集与指令下发等关键环节。
1. 背景与目标
AC2-10A 是芯步推出的一款智能电源控制模块。它不仅支持继电器通断控制,还具备电量计量功能。二次开发目标:利用其开放的 HTTP API 和 WebSocket 实时推送 能力,将其集成到现有的企业能源管理系统(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)这是保证接口安全的必要步骤。算法规则如下:
先将 AppSecret 进行 MD5 加密:
拼接时间戳: (ts为当前Unix时间戳)
最终签名:
请注意:在请求API时,时间戳ts必须与服务器时间误差较小,否则会认证失败。
4. 功能实现一:实时能耗计量与数据采集
要获取实时能耗,必须利用 AC2-10A 的 状态主动推送 机制,而不是单纯的轮询。
4.1 配置消息接收服务器 (Webhook)
芯步支持类似微信公众号的机制,当设备状态变化或电量数据更新时,会向开发者指定的URL推送JSON数据 。
操作:在控制台设置
Callback URL。数据内容:当设备上报数据时,服务器将收到包含
voltage(电压)、current(电流)、power(功率)、energy(累计能耗)和power_status(开关状态)的JSON包。
4.2 二次开发数据处理逻辑
在服务器端接收到Webhook推送时,开发者需编写如下处理逻辑:
验签:验证推送消息是否确实来自芯步云,防止伪造数据。
解析:提取
device_id和power(功率,单位W)及energy(电量,单位KWh)。存储
实时表:存储当前功率,用于展示瞬时负载。
历史表:将累计电量存入时序数据库(如InfluxDB)或关系库(MySQL),用于生成报表。
异常检测:如果实时功率超过设定的阈值(如 > 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 的二次开发,开发者可以快速构建一套软硬结合的能源管理系统。核心路径总结为三步:
打通数据链路:通过 Webhook 接收功率/电量数据,解决数据来源问题。
构建控制闭环:通过 HTTP API 下发指令,解决执行控制问题。
编写业务逻辑:在服务器端编写基于 Python/Java/Node.js 的规则引擎,将“计量”与“控制”关联起来,实现真正的智能化能耗管理。