CATALOG

智能通断器本身只是一个听话的“开关”,但结合芯步的开放接口和一点代码,就能让它变成一个智能“保险丝”。下面聊聊怎么实现这个“功率超限自动跳闸”的功能。

背景

在实际场景中,比如宿舍、出租屋或者园区配电,我们经常需要限制某个回路的功率,防止大功率设备(如电暖气、热水壶)同时开启导致线路过热甚至火灾。

传统的空气开关虽然能保护,但跳闸后需要人工去合闸,比较麻烦,而且没法记录是谁、在什么时候用了大功率电器。

利用芯步智能通断器(型号:UNI-TDQ-AC2-10A)的 HTTP 开放接口,我们可以搭建一个软硬件联动的功率超限保护系统

这套方案的核心逻辑很简单,主要分三步走:

  1. 采集:实时获取设备的电流、电压数据。

  2. 判断:如果功率 > 2200W(10A*220V,视具体电压而定),触发保护逻辑。

  3. 执行:调用接口断开设备,并可选推送告警。

第一步:技术准备与接口基础

对接芯步的接口其实挺简单的,本质上就是调 URL。你需要先在芯步控制台获取两个关键凭证

  • AppID:标识你是哪个开发者。

  • AppSecret:秘钥,用来给请求签名的。

签名算法(Sign) 稍微有点绕,虽然官方文档有,但这里我把逻辑白话翻译一下:

核心逻辑:为了防止接口被别人随便调用,每一次请求都要带一个动态的 sign 参数,计算的公式是 md5( md5(AppSecret) + ts )

用伪代码描述大概是这样:

所有控制命令都通过 POST 请求发送到这个地址:https://api.thingboot.com/{AppID}/device/control/?sign={sign}&ts={ts}

第二步:核心难点 —— 如何获取实时功率?

要实现“功率超限保护”,首先要解决的难题是:如何知道当前的功率是多少?

方案 A:基于状态轮询(最简单,适用性广)如果你的业务系统对实时性要求不是比较高(比如每隔几秒轮询一次),可以利用芯步的消息推送机制。设备状态变化或数据上报时,平台会主动推送到你指定的 URL。你需要解析推送的 JSON 包,从中提取 power(功率)或 current(电流)字段。

方案 B:自建数据模型(更精确,推荐)智能通断器 10A-AC2 虽然主要做开关,但在交流电路中,功率因数是变化的。如果你的业务场景涉及电机或感性负载,千万不要直接用电压乘以电流(那样误差极大)。

的算法策略:

  1. 基波提取:使用 FFT 或积分算法,提取电压电流的基波分量,滤除谐波干扰

  2. 真有效值计算:通过连续采样计算 RMS(真有效值),公式参考:VRMS=1Nn=1Nvn2V_{RMS} = \sqrt{\frac{1}{N} \sum_{n=1}^{N} v_n^2 },这样才能准确测量非正弦波形的真实发热效应。

  3. 滑动窗口滤波:为了防止短时浪涌(如电机启动瞬间)导致误判,可以采用滑动窗口滤波,取最近 3-5 个采样点的平均值作为判断依据。

第三步:逻辑实现 —— 怎么做“跳闸保护”?

一旦在你的服务器上计算发现功率超过了阈值(比如 2200W),系统就应该立刻执行保护逻辑。

控制命令调用 HTTP 接口下发 {"power":0} 命令注意:命令中的参数 power 后是否带数字(如 power1)取决于设备的具体线路序号,如果是单路通断器,通常直接传 power

为了防止设备在跳闸后因为拔掉插头又插上,或者电流波动瞬间又恢复,导致频繁通断烧毁继电器,我们还要实现 “自动重合闸与锁死机制”

  1. 首次越限:发现功率超标 -> 立即发送 {"power":0} -> 标记状态为“告警”。

  2. 延时重合(自恢复):比如等待 60 秒。对于可能是浪涌(如冰箱启动)的情况,60 秒后自动发送 {"power":1} 尝试恢复供电。

  3. N次锁定:如果 1 小时内连续重合失败了 3 次(说明用户一直在用大功率设备),系统就进入 “热记忆”锁死状态。这时候就不放开了,必须人工介入(管理员在后台点解封)才能再次开启

代码逻辑示意(简易版):

方案优势

这种方案比传统空开要好不少:

  1. 可远程复位:管理员不需要跑现场,后台点一下或者系统自动恢复就行。

  2. 精细化计量:不仅能跳闸,还能统计“谁用了多少电”,为后续的收费或能效分析提供数据。

  3. 灵活策略:你可以设定“周一至周五 9:00-18:00 限制 500W,其余时间限制 2000W”,这种时段控制在传统硬件上比较难做,但在软件逻辑上轻而易举。