芯步的智能PDU总控设备采用WiFi直连方案,支持通过HTTP接口进行远程控制。以下方案基于UNI-PDU-ZK-5型号的开放接口,设计了一套完整的设备接入与远程电源控制流程,涵盖配网、接口鉴权、批量控制及状态监控等关键环节。
芯步智能总控PDU远程电源管理解决方案
1. 解决概述
本方案的目标是指导系统集成商或企业IT管理员,利用芯步提供的智能PDU 5位[总控] 产品,通过其开放的HTTP接口,实现远程一键式管理机柜或设备集群的电源。
该设备具备以下核心特性,适合快速集成:
无需网关:设备直连WiFi 2.4G网络,减少网络故障点。
总控模式:单路总控,即可实现对所有输出端口的统一管理,操作逻辑简单。
开放接口:支持任何支持HTTP请求的编程语言(如Python, Java, Go, PHP等)或低代码平台接入。
部署灵活:支持私有化部署和局域网通信,满足高安全场景需求。
2. 硬件部署与网络配置
在软件开发前,需完成设备的初始化与联网。芯步的设备支持“设备热点配网”与“小程序配网”两种模式,使用以下方式进行快速部署:
步骤一:设备上电将PDU接入电源,等待设备状态指示灯进入“闪烁”状态(表示进入待配网模式)。
步骤二:配置WiFi通信利用芯步官方小程序或PC控制台进行配网:
在微信中搜索“芯步小程序”并登录。
在“工作台”中添加现场的WiFi名称和密码(注意:仅支持2.4GHz频段)。
手机连接设备发出的热点,将现场WiFi凭证写入PDU设备。
验证上线:设备指示灯常亮,PC控制台显示设备状态为“在线”。此时,设备已具备云端通信能力。
3. API接入与鉴权机制
芯步的接口采用标准的HTTP POST请求,签名机制(MD5)简单且安全。开发者需在芯步控制台获取以下关键凭证:
AppID:应用唯一标识。
AppSecret:应用密钥,用于生成签名。
签名生成规则(核心步骤)为了防止接口被恶意篡改,每次请求必须携带动态签名sign和时间戳ts。生成逻辑如下
将
AppSecret进行MD5加密得到Secret_MD5。将
Secret_MD5与当前时间戳ts拼接成字符串Secret_MD5 + ts。对上一步的字符串再次进行MD5加密,得到最终的
sign。
请求结构
URL
https://api.thingboot.com/{AppID}/device/control/?sign={sign}&ts={ts}Method:POST
Header
Content-Type: application/jsonBody参数
device:设备ID(字符串,支持批量,多个ID用逗号隔开)。order:命令(JSON字符串)。
4. 实现“一键通断”的核心逻辑
针对 “智能PDU 5位[总控]” 型号,其控制逻辑与分控设备不同。由于是总控,无需指定第几位(如power1, power2),而是直接控制内部总继电器,进而控制所有插位的通断。
4.1 远程打开全部设备电源发送指令使PDU总继电器吸合,所有插位输出电源。
命令示例
{"power": "1"}(将总线路打开)
4.2 远程关闭全部设备电源发送指令使PDU总继电器断开,实现设备硬关机或重启。
命令示例
{"power": "0"}(将总线路关闭)
4.3 代码实现参考(Python示例)以下脚本展示了如何封装HTTP请求,控制总控PDU电源。
5. 高级功能与场景优化
除了基本的开关功能,利用开放接口还可以构建更智能的运维体系:
5.1 定时任务与自动化不需要长期运行的服务器脚本,可以直接在芯步控制台或通过接口创建“定时任务”。
场景:每天晚上12点自动关闭测试服务器电源,早上9点自动开启,节约电费。
5.2 故障自愈联动结合芯步的其他传感器(如网络检测传感器)或您的业务系统监控。
逻辑:您的服务器程序通过心跳检测发现“服务宕机” -> 调用PDU关机接口(断电)-> 等待30秒 -> 调用PDU开机接口(上电重启)。
优势:解决了传统IPMI(智能平台管理接口)重启无效时,需要人工拔插电源的痛点。
5.3 批量设备管理如果机柜中有多个总控PDU,或者需要管理分布在不同机房的PDU。
实现:在请求的Body中,将
device参数改为"device_id_1,device_id_2,device_id_3"。效果:一条指令即可关闭或重启全球多地的所有设备电源,实现统一运维。
6. 注意事项与排障
网络稳定性:PDU依赖2.4G WiFi。大型机架式环境中,若WiFi信号弱,可能导致响应超时。部署企业级AP以确保覆盖。
私有化部署:对于金融、政府等涉密项目,芯步支持私有化部署。接口调用地址将从
api.thingboot.com变更为您的私有服务器地址,代码逻辑不变。安全:生产环境中请一定要使用HTTPS协议,并将
AppSecret存储在服务端环境变量中,严禁硬编码在前端或客户端代码中。总控与分控的区别:确认您采购的是“总控”型号。如果误购“分控”型号,需对每路分别发送
{"power1":"0"}, {"power2":"0"}...命令,逻辑相对复杂。
通过上述步骤,您可以在半天内完成从设备上电到代码调通的全过程,实现核心设备的远程电源管理。