PDU(电源分配单元)是机柜设备管理的“最后一张牌”,而5位分控机型刚好能满足绝大多数小微场景的精细化管理需求。芯步的智能硬件核心优势在于HTTP接口的极简设计——不挑语言、不绑平台、支持局域网闭环,以下方案围绕这一特点展开。
1. 背景与概述
在中小型机房、边缘计算节点或弱电井等场景中,机柜空间有限,设备种类繁杂(如路由器、交换机、服务器、防火墙等)。传统PDU(电源分配单元)仅作为单纯的电源插座使用,无法实现远程控制和精细化的能耗管理。芯步推出的5位智能PDU不仅支持每一位插座的独立开关(分控),还提供了标准的开放接口,允许开发者将其无缝集成到现有的运维系统或自研管理平台中。
本方案的目标是指导开发者如何利用芯步的开放接口(基于HTTP/HTTPS),实现对“5位机柜PDU”的接入,并通过软件逻辑实现“设备分组控制”。分组控制指的是将物理上位于不同PDU(或同一PDU内)的不同位插座,依据业务逻辑进行编组(例如:“核心网络组”、“存储服务器组”),实现一键批量开机、顺序上电或定时重启。
2. 核心物模型定义
在开始开发之前,需理解5位智能PDU的数据模型。根据芯步及相关设备规范,PDU的设备功能由属性(Property)和指令(Command)定义。
2.1 设备属性(状态)
PDU的五个通道对应五个独立的布尔状态属性。通过查询这些属性可获知当前设备的通断状态。
| 属性名 | 标识符 | 数据类型 | 取值说明 |
|---|---|---|---|
| 线路1状态 | power1 | Bool / Int | 1=开启,0=关闭 |
| 线路2状态 | power2 | Bool / Int | 1=开启,0=关闭 |
| 线路3状态 | power3 | Bool / Int | 1=开启,0=关闭 |
| 线路4状态 | power4 | Bool / Int | 1=开启,0=关闭 |
| 线路5状态 | power5 | Bool / Int | 1=开启,0=关闭 |
2.2 核心控制指令
为了实现分组控制,我们主要利用其 “批量控制” 能力。芯步兼容统软云等平台的物模型规范,支持通过标准JSON指令操作任意位选组合。
单个控制:直接修改对应线路的属性值。
批量控制(关键) :通过
batch命令结合relay数组,指定一组特定的端口动作。
3. 接口接入流程
芯步的设备通过 WiFi 直接连接网络,无需额外网关,极大地降低了部署复杂度。接入流程分为以下三步:
3.1 准备工作
硬件就位:确保 5位 PDU 已上电并接入局域网。
获取凭证:在芯步开放平台(ThingBoot Open)注册开发者账号,获取 AppId 和 AppSecret,并将设备绑定至该账号下。
网络确认:确保控制端(服务器或PC)与PDU在同一局域网(私有化部署)或公网可连通。
3.2 API 调用基础
芯步的接口设计非常简洁,支持任何支持HTTP请求的语言。
请求地址
http(s)://api.thingboot.com/{AppId}/device/control/?sign={sign}&ts={ts}请求方式:
POST请求头:
Content-Type: application/json核心参数
device: 设备ID(5位PDU的序列号或ID)。order: 指令内容(JSON对象)。
3.3 签名机制(简易版)
为了安全,接口通常要求签名。一般规则为:sign = md5(AppSecret + "ts=" + timestamp)将生成的sign和timestamp拼接到URL中,芯步服务端会验证请求的合法性。
4. 分组控制的实现逻辑
分组控制的精髓在于软件层面对指令的封装。由于PDU支持任意位选的并发指令,服务器无需维护复杂的流水线状态,只需计算指令并发送。
4.1 核心指令解析:任意组合控制
假设我们需要对 “线路1”、“线路3”、“线路5” 执行开机,指令如下
若需要对 “线路2”和“线路4” 执行关机,指令如下:
方案亮点:该指令是原子性的。相比依次发送5条单控指令,一条 batch 指令能显著降低网络延迟,并保证组内设备状态切换的同步性。
4.2 分组策略设计
结合业务场景,我们可以在业务层定义静态或动态分组。例如:
| 分组名称 | 包含端口 | 适用场景 | 关联指令模板 |
|---|---|---|---|
| 网络核心组 | 端口 1 (主路由), 端口 3 (核心交换机) | 永远保持开启,或在维护后第一批启动 | { "relay":[1,3], "power":1 } |
| 计算集群组 | 端口 2, 端口 4 (服务器) | 需要定时重启或按需关闭节省电费 | { "relay":[2,4], "power":0 } |
| 外围设备组 | 端口 5 (散热风扇/显示器) | 随环境策略联动 | { "relay":[5], "power":0 } |
4.3 高级功能:顺序上电(防浪涌)
在数据中心,若一组设备同时开启,瞬间电流(浪涌电流)可能击穿电路。虽然芯步的底层指令是并行下发的,但我们可以通过“应用层逻辑”弥补物理限制,实现虚拟的顺序上电。
代码逻辑示例(伪代码) :当触发“启动数据库组”(包含端口2、4、5)时:
发送
{"relay":[2], "power":1}(启动服务器A).delay(2000ms)(等待2秒,待电源稳定).发送
{"relay":[4], "power":1}(启动服务器B).delay(2000ms).发送
{"relay":[5], "power":1}.
5. 事件监听与状态同步
芯步的开放接口不仅支持下行控制,还支持上行监听。这对于分组控制至关重要:我们需要知道分组的状态,数据闭环是自动化的基础。
5.1 消息推送配置
在芯步控制台中配置“消息推送”URL(需公网可访问或内网穿透)。当设备状态变化时(如在网页端点击了按钮,或本地物理按键被按下),平台会主动推送当前设备全量或增量的状态数据。
5.2 推送数据格式
当用户按下 PDU 的物理按键时,服务器会收到类似如下的回调:
应用:业务服务器接收到此回调后,可以实时更新数据库中的“分组状态”(例如判定“核心网络组”为在线),无需频繁轮询设备。
6. 部署架构
基于芯步的特性,采用混合架构
内网直连模式:如果管理软件部署在机柜附近的工控机上,使用局域网IP直连方式调用HTTP API。这种方式响应极快(约80-120ms),且不占用公网带宽,不依赖外网稳定性。可以理解为设备的本地闭环控制。
云端模式:对于多机房、无人值守站点的统一管理,可通过芯步的公有云平台进行中转。这提供了跨地域的集中管理能力。
7. 总结
通过芯步5位智能PDU的开放接口,实现设备分组控制无需复杂的嵌入式开发,仅需调用标准的HTTP batch 指令[]。该方案的核心在于:
利用
relay数组:实现物理端口的虚拟化逻辑分组。利用应用层延迟:模拟高端PDU的顺序上电功能,保护设备安全。
利用状态回调:保持分组状态的实时性与一致性。
这种“硬件标准化+接口开放化”的模式,使得企业运维人员仅需几行代码,即可将机柜电源管理深度集成进现有的IT运维体系(如Zabbix、Prometheus或自研运维平台)中。