CATALOG

AC5-10A 是一款支持HTTP接口直控的智能通断器,无需网关即可接入WiFi。结合其开放API,你可以在控制通断的基础上,通过集成电能采集逻辑和闭环控制算法,实现“计量+控制”的二次开发。以下是具体方案:

一、 背景与目标

芯步 AC5-10A 电源控制模块(智能通断器)不仅具备基本的继电器开关控制功能,还支持电能计量(视具体型号,通常计量版支持电压、电流、功率统计)。该设备开放了标准的 HTTP API 接口,允许开发者绕过官方 App,将其集成到自有系统中

目标实现对 AC5-10A 模块的 状态监测能耗统计,并结合业务逻辑(如超限断电、定时任务、费用计算)进行自动化控制。

二、 核心技术架构

由于该模块直连 WiFi 且无需网关,二次开发架构通常采用 端-云-应用 的简化模式:

  1. 设备端:AC5-10A 模块(连接到 2.4G WiFi)。

  2. 云端接口:芯步开放 API (api.thingboot.com)。

  3. 开发端:你的业务服务器或云函数(负责调用 API 和逻辑处理)。

三、 二次开发关键步骤

1. 环境准备与接口鉴权

在开始编码前,需在芯步开发者后台获取密钥,这是接口调用的凭证

  • AppID:应用唯一标识。

  • AppSecret:用于生成签名(Sign)。

  • 设备 ID:AC5-10A 模块的唯一标识。

  • 签名算法:官方接口为保障安全,通常要求携带 signts(时间戳)。你需要根据官方文档的规则(通常是 MD5 或 HMAC-SHA256 对参数排序后加密)生成签名,或先在开发者后台开启 “调试模式” 以暂时忽略签名校验,方便快速测试

2. 设备配网与连接

AC5-10A 模块首次使用时需要通过配网让其连接到你所在场所的 WiFi。

  • 方式 A(软AP配网):设备上电后发射热点,手机/服务器连接该热点并发送路由器账号密码。

  • 方式 B(一键配网/SmartConfig):通过广播包发送 WiFi 凭证。

  • 注意:经测试,该模块仅支持 2.4GHz WiFi,不支持 5G 频段

3. 核心功能接口调用解析

二次开发主要涉及以下三类接口,你可以用任何支持 HTTP 请求的语言(Python, Java, Node.js, PHP 等)调用

第一种场景:获取实时能耗数据这是实现“计量”功能的核心。你需要向服务器请求当前设备的电参数。

  • 目的:读取当前的瞬时功率、累计电量、电压、电流。

  • 请求示例GET https://api.thingboot.com/{AppID}/device/status?device={deviceId}&sign={sign}&ts={ts}

  • 返回数据解析

    • power:当前功率(W),用于判断设备是否在耗电。

    • voltage:当前电压(V)。

    • current:当前电流(A)。

    • energy:累计用电量(kWh)。

第二种场景:继电器控制实现“控制”功能,即开/关电源。

  • 指令{"power":"1"}(开启),{"power":"0"}(关闭)

  • 请求示例POST https://api.thingboot.com/{AppID}/device/control/

  • Body (JSON)

  • 扩展控制:支持 point(先通后断)和 reset(先断后通)等脉冲控制模式,这对于控制电机或服务器重启非常有用。

第三种场景:获取历史耗电数据用于生成报表或分析能耗趋势。

  • 调用方式:通过查询数据接口,传入时间范围(如 start_dateend_date),获取该时间段内的总用电量或功率曲线。

四、 核心功能实现逻辑

以下为实现“实时能耗计量与断路器控制”的具体业务逻辑伪代码实现。

1. 轮询与数据入库

你需要建立一个定时任务(例如每分钟执行一次)来轮询设备状态。

2. “计量+控制”闭环应用

基于获取的计量数据,你可以实现高阶控制逻辑:

  • 逻辑一:功率超限保护

    • 需求:保护老旧线路,超过 2000W 自动断电。

    • 实现:在服务器定时任务中判断 fetch_energy() 中的 power 字段。若 power > 2000,则调用 control_device('{"power":"0"}') 并发送告警通知。

  • 逻辑二:无人自动关机

    • 需求:检测到设备功率低于 5W(待机功耗)超过 10 分钟,判定为设备未使用,自动断电节能。

    • 实现:缓存最近 10 次的功率数据,若均小于阈值,执行关闭指令。

  • 逻辑三:精准计费

    • 需求:针对共享充电桩、租赁设备场景。

    • 实现:记录用户开始充电时的 start_energy(累计电量),结束时的 end_energy,计算差值 (end - start) * 电价,扣费后自动断电。

五、 负载管控策略示例

为了提供更全面的解决方案,以下是一段典型的逻辑控制策略表格,展示了如何结合计量数据与开关动作:

策略名称触发条件(计量数据)执行动作(控制指令)适用场景
过载保护实时功率 > 2200W立即断电 (power:0)防止线路过热起火
限时任务设定的定时时间到执行脉冲 (point:5000)热水器/饮水机定时加热
待机自动关机功率 < 10W 持续超过 30分钟断电 (power:0)办公室饮水机夜间节能
电量阈值累计电量 >= 100度断电且禁用重开 (power:0)宿舍/公寓电费管控
通讯异常处理API连续3次请求超时维持前状态,触发告警防止因网络丢包误判状态

六、 常见问题排查

  1. 接口返回“签名错误”

    • 检查系统时间是否与标准时间同步(误差过大会导致 ts 无效)。

    • 严格按照官方文档对参数进行 字典序排序 后再计算 MD5。

    • 若为测试阶段,可在开发设置中直接开启 “调试模式” 跳过签名验证,专注于业务逻辑开发

  2. 为什么读取的功率与实际不符

    • AC5-10A 对于感性负载(如电机、风扇)和阻性负载(如灯泡、加热管)的测量精度不同。如果是控制 LED 灯或节能灯,负载应小于 300W 才能保证计量较为准确,否则降额使用

  3. 实时性不足

    • HTTP 请求模式为短连接,无法做到毫秒级即时通知。如果需要实时监测电压波动,可以缩短轮询间隔(如 2秒/次),但这会增加服务器压力。若需真正的实时推送,查阅官方文档是否支持 MQTT 协议WebSocket

通过以上步骤,开发者可以高效地完成对芯步 AC5-10A 模块的二次开发,构建从数据感知(计量)到智能决策(控制)的完整闭环系统。