CATALOG

芯步智能PDU总控款(UNI-PDU-ZK-8)提供开放的HTTP API接口,可通过编程方式实现8位插孔的统一或独立定时控制。以下方案涵盖接口对接流程、签名算法、定时任务实现及代码示例,帮助你快速完成集成。

一、 背景与需求分析

在机房或机柜管理中,设备繁多,传统人工管理难以实现精准的能源策略。常见痛点包括:

  • 能源浪费:服务器、交换机等设备7x24小时运行,在无人使用时(如夜间、假期)依然满负荷耗电。

  • 安全隐患:设备长期不间断运行,加速老化,增加宕机和火灾风险。

  • 运维繁琐:管理员需手动到现场重启死机设备或按计划开关机。

解决目标:通过接入芯步智能PDU(UNI-PDU-ZK-8)的开放接口,将机柜内的网络设备(路由器、防火墙、服务器)接入特定插孔,通过编写脚本或对接现有运维系统,实现基于时间策略的自动化电源控制。

二、 接入方案设计

本方案基于标准的 HTTP/HTTPS协议 进行开发,无需复杂的网关中转,设备直接连接机柜所在网络的WiFi(2.4GHz)。

  • 设备层:芯步8位总控PDU,物理接入机柜电源,网络设备分别插入PDU的1-8插孔。

  • 网络层:PDU通过WiFi直接连接企业级路由器/交换机,与云端API或本地服务器通信。

  • 控制层

    • 云控模式:调用芯步官方API,适合跨区域运维、多机柜集中管理。

    • 局域网模式:设备支持私有化部署和局域网发现,无需外网即可控制,适合高安全内网环境

  • 应用层:企业的现有运维系统(如Zabbix、Prometheus)、自研中控台或简单的定时脚本。

三、 核心接口对接流程

由于该PDU采用总控设计,意味着上述命令通常控制PDU整体的主继电器通断(或根据官方手册定义的指令控制对应位)。要实现8位单独控制需确认型号,若为分控版需使用 power1-power8 参数,但本方案聚焦总控在定时场景下的逻辑。

1. 前期准备

  • 注册与创建:在芯步官网注册账号并创建工作台

  • 获取凭证:在“物联网控制台” -> “开发设置”中获取 AppIDAppSecret

  • 设备配网

    • 将PDU通电。

    • 在控制台“网络配置”中添加现场的2.4G WiFi名称和密码

    • 利用手机热点或配网模式将PDU连上网络。成功联网后,设备状态在控制台会显示为“在线”。

2. 接口鉴权(签名算法)

所有API请求均需携带签名以确保安全。以设备控制接口为例,核心URL结构为:https://api.thingboot.com/{AppID}/device/control/

签名计算步骤(核心安全环节)

  1. 准备 AppSecret(例如 abc123)。

  2. 获取当前Unix时间戳(秒级),例如 ts = 1715678900

  3. 计算第一步MD5: md5_1 = md5(AppSecret) -> md5('abc123')

  4. 拼接字符串: str = md5_1 + ts

  5. 计算最终签名: sign = md5(str)

注:代码实现中需将参数转为小写十六进制字符串。

3. 下发定时命令

由于用户需求为“定时控制”,通常有两种实现方式:

  • 方式A(推荐-应用层定时):由你的服务器或脚本负责计时(如Linux Cron任务或Windows计划任务),到了指定时间,脚本自动构造API请求去控制PDU。

  • 方式B(平台定时):利用芯步控制台自带的“定时任务”功能,直接在网页上设置,无需编程。

本方案侧重 方式A 的编程实现,因其灵活性更高,可结合业务逻辑(如检测到温度过高再断电)。

四、 编程实现示例

由于总控PDU的命令格式通常为控制整体电源(具体命令请查阅该设备的产品手册,通常为 {"power":1}{"power":0}),以下示例展示如何编写一个定时重启脚本。

场景:每周日凌晨3点整,重启机柜总电源(冷重启所有设备)。

Python 实现脚本 (schedule_reboot.py)

五、 定时任务的集成策略

在实际的生产环境中,脚本通常不会使用 time.sleep 来等待,而是依赖操作系统的调度机制。

1. Linux Crontab 配置(最常用)

假设你需要每天晚上 23:00 关闭机柜电源(下班节能),早上 08:00 开启电源。编辑crontab (crontab -e):

说明:在这种模式下,control.py 脚本需要解析 --action 参数并调用上述的 control_pdu 函数。

2. Windows 计划任务

  • 创建 .bat 批处理文件调用 Python 脚本。

  • 在“任务计划程序”中创建基本任务,设置触发器为“按预定计划”(每天),操作设置为启动该批处理文件。

3. 高级联动策略(结合传感器)

在接口调用前增加判断逻辑:

六、 注意事项与排障指南

  1. 固件与命令确认

    • 请一定要先查询 《智能PDU8位[总控]产品手册》。确认总控版是否支持 power1-power8 的分位控制?如果不支持,总控开/关涉及所有插孔。如果机柜内需要单独控制某台服务器,选购 分控版 PDU

  2. 网络稳定性

    • PDU依赖WiFi 2.4G。在机房高密度WiFi环境下,为PDU分配静态IP或在路由器中绑定MAC地址,防止IP变动导致控制失效。

  3. 签名时间戳

    • 签名中包含时间戳 ts。确保你的服务器系统时间是准确的(同步NTP)。时间误差过大会导致签名验证失败。

  4. 安全

    • 即使是内部机房,也使用HTTPS接口。

    • 如果运行在局域网环境,可开启私有化部署模式,将API请求发往本地服务器,避免数据出公网

  5. 调试工具

    • 在编写代码前,可以使用 Postman 进行接口测试。填入URL、Headers和Body,手动计算一次签名,验证网络通路和鉴权是否通过。

七、 方案总结

通过接入芯步PDU设备的HTTP开放接口,可以轻松实现:

  • 自动化:将电源控制纳入DevOps流程,实现无人值守。

  • 精细化:即使是总控PDU,也可以通过定时策略精准控制整体机房的能耗节奏。

  • 可扩展:该接口体系同样适用于芯步的其他传感器(温湿度)或分控PDU,后续可将环境监测与电源控制联动。

此方案无需购买昂贵的商业DCIM软件,仅需基础的编程能力即可快速集成到现有的IT管理体系中。