芯步智能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. 前期准备
注册与创建:在芯步官网注册账号并创建工作台。
获取凭证:在“物联网控制台” -> “开发设置”中获取
AppID和AppSecret。设备配网
将PDU通电。
在控制台“网络配置”中添加现场的2.4G WiFi名称和密码。
利用手机热点或配网模式将PDU连上网络。成功联网后,设备状态在控制台会显示为“在线”。
2. 接口鉴权(签名算法)
所有API请求均需携带签名以确保安全。以设备控制接口为例,核心URL结构为:https://api.thingboot.com/{AppID}/device/control/
签名计算步骤(核心安全环节)
准备
AppSecret(例如abc123)。获取当前Unix时间戳(秒级),例如
ts = 1715678900。计算第一步MD5:
md5_1 = md5(AppSecret)->md5('abc123')。拼接字符串:
str = md5_1 + ts。计算最终签名:
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. 高级联动策略(结合传感器)
在接口调用前增加判断逻辑:
六、 注意事项与排障指南
固件与命令确认
请一定要先查询 《智能PDU8位[总控]产品手册》。确认总控版是否支持
power1-power8的分位控制?如果不支持,总控开/关涉及所有插孔。如果机柜内需要单独控制某台服务器,选购 分控版 PDU。
网络稳定性
PDU依赖WiFi 2.4G。在机房高密度WiFi环境下,为PDU分配静态IP或在路由器中绑定MAC地址,防止IP变动导致控制失效。
签名时间戳
签名中包含时间戳
ts。确保你的服务器系统时间是准确的(同步NTP)。时间误差过大会导致签名验证失败。
安全
即使是内部机房,也使用HTTPS接口。
如果运行在局域网环境,可开启私有化部署模式,将API请求发往本地服务器,避免数据出公网。
调试工具
在编写代码前,可以使用 Postman 进行接口测试。填入URL、Headers和Body,手动计算一次签名,验证网络通路和鉴权是否通过。
七、 方案总结
通过接入芯步PDU设备的HTTP开放接口,可以轻松实现:
自动化:将电源控制纳入DevOps流程,实现无人值守。
精细化:即使是总控PDU,也可以通过定时策略精准控制整体机房的能耗节奏。
可扩展:该接口体系同样适用于芯步的其他传感器(温湿度)或分控PDU,后续可将环境监测与电源控制联动。
此方案无需购买昂贵的商业DCIM软件,仅需基础的编程能力即可快速集成到现有的IT管理体系中。