CATALOG

芯步的智能PDU开放了HTTP接口,这意味着你可以用自己的服务器或脚本直接控制每个插孔。要实现“过流自动断电”,核心思路就是:持续获取电流数据 → 判断是否超标 → 调用断电接口

下面是一个比较详细的二次开发方案,我会尽量写得口语化一点,方便你理解。

一、 准备工作:让设备“上网”并找到“钥匙”

在写代码之前,需要先把硬件准备好,就像新电器拆箱要插电一样。

  1. 硬件上电与配网拿到芯步的5位分控PDU,先插上电。因为它是WiFi版本的,需要让它连上你办公室或机房的2.4G WiFi

    • 操作路径:下载“芯步”小程序,或者登录他们的官网控制台。

    • 步骤:在控制台里找到“网络配置”,输入WiFi密码,然后通过手机热点的方式(或者现在的蓝牙配网)把WiFi凭证推给PDU。看到设备状态变成“在线”,这第一步就搞定了。

  2. 获取API密钥(AppID/AppSecret)这是你写代码时的“身份证”,PDU得认你才听你话。

    • 登录芯步控制台,进入“开发设置”。

    • 你会看到AppIDAppSecret这里有两个小

      • 开启调试模式:刚开始开发时,在后台打开“调试模式”,这样暂时不用算复杂的签名(sign),先跑通流程再说

      • 记录设备ID:在“设备列表”里找到你这台PDU,把它的一长串设备ID复制下来,这就是你要控制的对象。

二、 核心逻辑:如何判断“过流”?

所谓的“过流自动断电”,其实就是写一段程序,模拟人的判断:“电流超过5A了?马上把那个插孔给我掐了!”

要实现这个,你需要用到两个接口:

  1. 获取设备状态(查询电流)

    • 目的:实时读取当前5个插孔各自的电流值。

    • 接口方法:通常是一个POST请求,带上你的AppID设备ID

    • 响应数据:返回的JSON里会包含类似 "outlet_1_current": 2.3 这样的字段,单位通常是安培。

  2. 控制分控开关(执行断电)

    • 目的:给指定的插孔发送“关”指令。

    • 接口形态:参考芯步的通用规范,请求地址通常有固定格式,比如 https://api.yoyoiot.com/ordercontrol/

    • 命令参数:你需要告诉PDU关哪一个口。例如:{"device_id": "xxx", "outlet": 3, "status": 0}status: 0代表关,1代表开)。

三、 实战方案:写代码(Python示例)

这里用Python写一个简单的死循环脚本为例,你可以把它部署在树莓派、云服务器,甚至是你的办公室电脑上。逻辑不复杂,就是轮询

四、 进阶与优化:让方案更可靠

如果你觉得上面的死循环脚本在断电或重启后就没了,或者想更专业一点,可以考虑下面几种方案:

  1. 部署在云端/本地服务器(Docker)你完全可以把这个Python脚本打包成一个Docker镜像,运行在办公室的NAS或者任何一台Linux服务器上。芯步的设备支持局域网本地控制,如果你的服务器和设备在同一个网段,可以不经过云端直接下发指令,延时几乎为零

  2. 利用Webhook/回调(推荐)一直在问“电流多少了?”其实挺费资源的(虽然HTTP请求还好)。更优雅的方式是利用芯步平台的规则引擎

    • 你可以在后台设置一个规则:“当设备A插孔3电流大于8A时,触发Webhook”。

    • 你的服务器只需要提供一个接收通知的接口。当PDU电流过大时,平台会自动调用你的接口,告诉你有异常了,你再通过API去断电。

    • 好处:不用写轮询代码,响应更及时,且节省API调用次数。

  3. 故障隔离与重试机制参考华为PDU的设计理念,过流断开是为了保护设备

    • 锁定机制:一旦因为过流断电,在你的程序里加一个flag(标志位)。不要让它因为电流降下来了又自动通电,这样反复通断可能损坏设备。最好需要人工去后台确认故障排除后,再手动或者通过另一个接口恢复供电。

五、 总结

用芯步的PDU做二次开发,体验还是比较顺滑的,因为它的接口足够开放

  • 核心代码:无非就是 Get(读电流)Post(发指令) 两个动作。

  • 部署:如果追求稳定,放在服务器上跑,利用好局域网控制功能。

你可以先拿着Postman(接口调试工具)测试一下开关指令,成功了再写代码。官方后台有10分钟对接指南,配合上面的逻辑,很快就能跑起来