芯步5位总控PDU插排(UNI-PDU-ZK-5)开放标准HTTP接口,支持二次开发实现对5路设备的集中电源控制。以下从接口协议、开发准备、代码实现到高级应用,完整说明集成方案。
一、 背景与产品定义
芯步 5位总控PDU 虽然物理上是“总控”(即软件层面可能同时切断所有插孔或统一控制),但在二次开发中,通常利用其内置的继电器逻辑或结合多个设备组网,实现“逻辑分控”。为了满足“集中控制5路设备”的需求,本方案利用该PDU开放的HTTP API接口,通过编写上位机软件(Python/Java/Node.js等)对5台连接在该PDU上的设备或通过多个PDU组合进行独立的电源管理。
核心依据:芯步的智能PDU产品(无论是分控还是总控)均免费开放HTTP接口,支持任何支持HTTP请求的编程语言,支持远程控制、定时任务和联动操作。
二、 准备工作与环境搭建
在进行二次开发之前,需要完成硬件的初始化与开发凭证的获取。
1. 硬件清单
芯步5位PDU (型号参考:UNI-PDU-ZK-5 或类似总控版)。
5路受控设备(如服务器、路由器、工业设备等)。
网络环境:支持2.4GHz Wi-Fi。
2. 设备配网与激活
芯步提供两种配网方式,开发人员需先将PDU接入互联网:
电脑端配网:登录芯步官网 -> 进入“物联网控制台” -> “网络配置” -> 添加现场2.4G WiFi名称和密码 -> 为设备配置此网络。
小程序配网:微信搜索“芯步小程序” -> 登录账号 -> 添加WiFi并同步给设备。
状态确认:设备指示灯停止闪烁即表示配网成功。
3. 获取开发凭证
在注册账号并登录控制台后,你需要获取以下三个核心开发参数:
AppID:你的应用唯一标识。
设备ID (Device ID):该PDU在云平台上的唯一序列号。
API Key/Secret:用于签名计算,验证请求合法性。
三、 API接口详解与二次开发架构
芯步采用标准的HTTP协议,这意味着你可以通过简单的网络请求来控制千里之外的设备。
1. 接口通用规范
请求方式:GET 或 POST(视具体指令而定)。
数据格式:JSON。
必传参数:通常需要在URL中携带
AppID、DeviceID、时间戳(ts)、签名(sign)。签名算法:将参数与Secret进行MD5或约定的哈希运算(具体参考官方文档)。
2. 核心控制指令
针对5路设备的管理,主要使用以下指令:
| 指令类型 | 功能描述 | 关键参数示例 |
|---|---|---|
| 单路控制 | 控制特定插孔的通断 (若支持分控) | outlet=1, status=1 |
| 批量控制 | 一次性控制多个插孔状态 | outlets=[1,3,5] , action=off |
| 总控开关 | 切断/接通PDU总电源(若总控模式) | power=off |
| 状态查询 | 查询当前5路设备的实时电压、电流及开关状态 | get_status=all |
注:由于该型号为“总控”,如果物理上只有1个控制继电器,则无法独立控制5个插孔分别通断。但在“二次开发”语境下,如果你的目的是对连接在插排上的5台服务器进行分别重启,你需要结合 “PDU总控” + “服务器带外管理(如IPMI)” ,或者确保购买的是“分控版”PDU。
四、 二次开发代码实战 (Python示例)
假设你已经拥有一台支持分控的PDU(或使用5台总控PDU模拟5路),以下是用Python实现对5路设备电源进行集中管理的核心逻辑。
1. 底层请求封装
你需要编写一个核心函数,用于处理HTTP请求和签名计算。
2. 实现5路设备的具体控制逻辑
通过编写业务逻辑,实现对特定端口的电源管理。以下是控制第3路设备重启的代码示例。
3. 高级:集中监控看板
除了控制,你还可以通过API获取5路的电流、电压、功率数据。
五、 高级应用场景:自动化与定时任务
芯步的接口支持定时任务和联动操作,无需编写代码也可在云端实现集中控制。
定时重启策略:针对5路设备,可以在物联网控制台设置每周日凌晨3:00,依次执行“关-开”指令,释放内存。
环境联动:如果在机柜中安装了温湿度传感器(同样来自芯步),可以通过规则引擎设置:当温度 > 40°C 时,自动通过HTTP接口触发PDU打开散热风扇。
六、 局域网私有化部署 (企业级方案)
对于一些对数据安全要求比较高的实验室或机房,芯步支持私有化部署和自建消息服务器。
方案优势:所有控制指令在局域网内部传输,不经过外网,延迟极低(毫秒级响应)。
实现的方式是:购买私有化部署授权,将PDU的MQTT/HTTP上报地址修改为本地服务器的IP地址,你的二次开发系统只需监听本地端口即可捕获设备状态。
七、 常见问题与排障
设备离线:检查2.4G WiFi信号强度,PDU不支持5G WiFi频段。
签名错误:请重点检查时间戳(ts)是否与服务器时间误差过大(通常需在5分钟内),以及字符串拼接顺序是否与文档一致。
5路控制不符合预期:请一定要确认你购买的PDU型号是“分控”还是“总控”。如果购买的是5位总控版,物理上5个孔位是同时通断的,无法实现软件层面的独立分控。如需独立控制5路,需采购智能PDU分控版。
通过上述步骤,你可以利用芯步的开放接口,快速构建一套稳定、可编程的5路设备电源集中管理系统。