CATALOG

芯步的5位分控插排(智能PDU)开放了HTTP接口,可以通过二次开发实现过流过载保护。核心思路是:持续读取功率数据 → 判断是否超阈值 → 触发断电命令。下面是一套完整的实现方案。

一、 搞清楚你的硬件能力

首先,确认你手头的是 智能PDU 5位分控 这款设备(型号通常为 UNI-PDU-FK-5)

它有几个关键特点:

  • 5路独立分控:每个插孔都可以独立开关,互不影响。

  • 功率计量:能实时上报电压、电流、功率等数据。

  • 开放接口:支持 HTTP 接口控制,任何编程语言都能调用

二、 核心逻辑思路

我们不需要去修改设备内部的固件,而是用“外部脚本”来充当一个智能监护人的角色。

逻辑流程图:

  1. 采集:程序定时(比如每秒)去读取插排的实时功率。

  2. 判断:检查总功率(或单路功率)是否超过了预设的安全值(比如 2500W)。

  3. 动作:如果超了,立刻调用“关闭指定插孔”的接口。

  4. 恢复:关闭后可以发个警报,等人工确认或过一会儿再尝试开启。

三、 准备工作

在写代码之前,需要拿到三把“钥匙”:

  1. 注册账号:去芯步官网注册开发者账号

  2. 添加设备:在控制台把插排配网,确保设备在线。

  3. 获取密钥:在控制台的“开发设置”里找到:

    • AppID:你的应用ID。

    • AppSecret:你的应用密钥(要保密)。

    • Device ID:插排的设备ID

四、 核心接口分析

1. 获取实时功率(查询状态)

芯步的设备会上报状态。你可以通过查询接口获取当前功率值。

  • 目标:拿到 power(总功率)或 power1~power5(分路功率)字段。

2. 执行断电控制(下发命令)

这是最关键的指令。需要调用设备控制接口

  • 请求地址https://api.thingboot.com/{AppID}/device/control/

  • 需要带上的签名signts(防止别人乱动你的设备)。

  • 控制命令示例

    • 关闭第1路:{"power1":0}

    • 关闭第2路:{"power2":0}

    • 关闭全部:{"power":0} (注意:不带数字的power代表总开关)

五、 代码实战

这里用 Python 写一个简单的保护脚本为例。

第一步:先封装一个控制函数芯步的接口需要 md5(md5(AppSecret) + ts) 这种双重加密的签名方式。我们需要一个函数来生成请求头。

第二步:实现监控逻辑

  • 每隔 2 秒读取一次插排状态。

  • 如果 总功率 > 2500W(举例),就触发保护。

第三步:编写保护动作

  • 打印报警日志。

  • 调用关闭函数,比如关掉功率最大的那一路,或者直接全部断电。

这是一个简化版的逻辑思路,具体代码实现时需要重点关注:

关键点1:签名生成

芯步的接口安全性较高,使用 md5(md5(secret)+ts) 的签名机制。你必须严格按照官方文档的顺序拼接字符串,否则会报签名错误。注意 ts 是秒级时间戳。

关键点2:阈值不要设太满

插排是有额定功率的(通常是 2500W),但在实际代码中,设置一个 安全系数

  • 理论最大值:2500W

  • 保护值:2200W(留出余量,防止瞬间波动)。

关键点3:分控与总控的区别

  • 总控power 控制总闸。

  • 分控power1 控制第一个孔,power2 控制第二个孔,以此类推

如果你只想切断那个“吃电大户”,需要先通过功率查询接口看 power1power5 哪个数值最大,然后单独发指令关那个。

六、 进阶玩法:软恢复与硬件自锁

总不能一过载就关掉,然后让人跑去机房按按钮吧?你可以在程序里增加 “自动重合闸” 逻辑(请请一定要确保安全的前提下使用):

  1. 第一次过载:立刻切断对应插座,记录过载时间。

  2. 延时等待:等待 30 秒。

  3. 尝试恢复:发送开启指令 {"power1":1}

  4. 再次判断:如果恢复后 1分钟内 再次过载,说明是真故障(比如设备短路了),这时候就 彻底锁死,不再尝试恢复,必须人工介入。

七、 部署

  • 运行环境:只要能联网就行。可以跑在办公室的电脑上、树莓派上,甚至是云服务器上。

  • 高可用性:如果你觉得电脑关机了就不安全,可以把这个脚本部署在 路由器(OpenWRT) 或者 NAS 里,保证 24 小时在线监控。

总结

利用芯步的开放接口做二次开发,最爽的一点就是它接口简单、反馈及时(据说从命令下发到执行仅 80-120ms),而且 API 定义清晰。只要写好那个“读数据 -> 比大小 -> 关电源”的循环,你的 5位分控插排就变成一个智能的“用电保险柜”了。如果在调试接口时遇到签名报错,请仔细检查时间戳的单位以及 MD5 加密的次序