AC3-10A计量版的核心价值在于“计量+控制”的闭环能力——通过实时功率监测触发自动断电,这正是二次开发实现功率超限保护的切入点。以下方案展示了如何用约50行Python代码完成从签名认证到轮询控制的完整实现。
解决方案:基于芯步AC3-10A计量版的功率超限保护二次开发
1. 背景与原理
AC3-10A 计量版(型号:UNI-TDQ-AC3-10A-P)是一款支持Wi-Fi直连的智能通断器,它不仅具备继电器通断控制能力,还内置了电能计量芯片,可以实时读取电压、电流、功率等参数。
核心逻辑:传统的“本地保护”依靠设备固件预设的硬阈值(如超过2200W硬跳闸)。而二次开发实现的“软件定义保护”具有更高的灵活性:通过轮询设备上报的实时功率数据,一旦检测到功率超过设定的阈值(如2000W)且持续时间超过预设延时(如2秒),立即调用开放接口下发“断开”指令。
架构流程图
[用户服务器] <--①获取功率--> [芯步云] <--②上报数据--> [AC3设备]|③判断超限|④下发断开指令
2. 二次开发环境准备
在开始编码前,需要在芯步控制台完成以下准备,这是接口调用的凭证基础。
| 准备项 | 获取方式 | 用途 |
|---|---|---|
| AppID | 登录芯步工作台 -> 开发设置 | 标识开发者身份,接口调用时作为路径参数 |
| AppSecret | 登录芯步工作台 -> 开发设置(用户自定义/系统生成) | 用于生成接口签名(Sign),保障安全性 |
| 设备ID (Device ID) | 控制台 -> 设备列表 -> 设备详情页 | 指定要控制的物理设备,通常是数字或字符串 |
核心认证机制(Sign签名计算)芯步的接口采用了双层MD5加密机制,具体算法如下:Sign = MD5( MD5(AppSecret) + ts )其中 ts 为当前的Unix时间戳(秒级)。这种设计避免了明文传输密钥的风险。
3. 关键接口调用策略
要实现功率超限保护,需要组合使用两个核心接口:数据查询接口(获取功率)和设备控制接口(执行断电)。
3.1 获取实时功率由于AC3-10A计量版具有计量功能,其设备状态中通常包含 metering 或 power 字段。
注意:官方文档显示的
{"power":1}是控制指令(1代表开,0代表关)。获取功率通常需要调用设备状态查询接口或通过回调接收设备主动上报的数据。策略:推荐使用 HTTP 轮询 方式。设置定时器(如每2秒一次),请求设备当前状态接口,解析返回的JSON中的功率数值。
注:若追求实时性,可配置“消息推送”回调,将设备消息推送到你自己的服务器,但HTTP轮询对于简单的保护逻辑已足够。
3.2 执行保护动作(断电)一旦判断功率超限,立即调用控制接口。
接口地址:
https://api.thingboot.com/{AppID}/device/control/请求方法: POST
关键参数
device: 设备ID。order: JSON字符串,例如{"power":0}代表断开线路。
4. 详细实现步骤(Python 示例核心逻辑)
以下代码演示了如何在你的服务器上实现保护逻辑。本例使用 Python 语言,利用 requests 库发起 HTTP 请求。
4.1 签名生成函数这是接入的第一步,封装签名计算逻辑:
4.2 获取实时功率值你需要查阅产品手册确认获取状态的具体命令,通常如下所示:
4.3 执行断电与恢复机制这是保护方案的核心,包含“触发-执行-锁定”三个子模块:
5. 高级功能与维护
为了提升系统的健壮性和实用性,在二次开发过程中增加以下机制:
5.1 延时滤波(去抖动)直接的功率波动可能引起频繁跳闸。在刚才的示例中使用了“连续2次超限才动作”的逻辑。对于电机或空调类设备,启动瞬间电流通常是额定电流的5-7倍(例如电机启动瞬间可能达到3000W),应设定100-500毫秒的短暂延时或高于启动电流的临时阈值来过滤“假性过载”,避免损坏设备。
5.2 自动重连(保护恢复)当功率超限断电后,系统不应自动立即重连,否则设备会反复跳闸。
策略:在保护触发后,进入锁定状态(例如锁定30秒或5分钟)。待冷却时间结束且检测到当前功率已低于安全阈值(如低于100W)时,再自动调用
send_command(1)尝试恢复供电。
5.3 日志与告警将每次跳闸时的功率值、时间戳记录到数据库或日志文件中。对于重要的用电场景,可以集成钉钉、企业微信或邮件通知接口,在触发保护的第一时间推送“某设备因功率超限已断电”的告警消息,便于及时排查终端用电器的故障。
6. 总结
通过芯步 AC3-10A 计量版的开放接口进行二次开发,实现功率超限保护主要解决了传统空气开关不可调节、精度不足的问题。
核心:利用 获取功率API 进行高频轮询,结合 控制API 进行果断切断。
优势:阈值(Threshold)可远程动态调整(例如白天设2000W,晚上设500W),无需现场操作设备,且具备完善的日志记录能力。
注意:请请一定要在代码中处理好异常保护(如网络中断时的本地策略)和启动电流浪涌问题,以确保系统的稳定与安全。