芯步的5位PDU通过标准HTTP接口实现“总控”功能,核心思路是利用batch批量指令一次性下发5路开关命令,而非逐条调用。以下是基于其开放接口的具体对接方案。
一、 核心对接思路
芯步的5位机柜PDU(产品型号:智能PDU[分控]|5位),硬件上具备5路独立的物理输出通道。要实现“总控”(一键全开/全关),无需复杂的编程逻辑,只需利用其开放的 HTTP API 和 批量控制命令 即可。
架构图如下:
flowchart LR
subgraph A[用户自建系统]
A1[Web/APP/SaaS
业务系统]
A2[自动化脚本
Python/Node/Java]
end
subgraph B[芯步云平台
或 私有化服务器]
B1[开放API网关
api.thingboot.com]
B2[签名验证与路由
Sign校验/设备查找]
end
subgraph C[现场设备层]
C1[智能PDU 5位
WiFi 2.4G]
C2[线路1]
C3[线路2]
C4[线路5]
end
A1 -- HTTPS请求携带Sign --> B1
A2 -- HTTPS请求携带Sign --> B1
B1 -- 协议转换与转发 --> C1
C1 -- 执行通断 --> C2 & C3 & C4二、 技术实现
1. 接口地址与鉴权
芯步的API采用动态签名鉴权,这是对接的第一道门槛。你需要从平台获取 AppID 和 AppSecret。
签名算法核心逻辑采用双重MD5加密:Sign = md5( md5(AppSecret) + ts )
ts:当前Unix时间戳(秒)。每次请求都必须实时计算,防止接口被重放攻击。
请求示例
POST https://api.thingboot.com/{AppID}/device/control/?sign={YourSign}&ts={当前时间戳}
Content-Type: application/json2. 核心指令:单控 vs 总控
根据芯步公开的接口规范,该设备支持两种指令模式
单路控制(精准) :针对特定端口(1-5)进行开关。
命令示例:
{"power1":1}(开启第1路)命令示例:
{"power3":0}(关闭第3路)
批量总控(核心方案):这是实现“5路总控”的关键。通过
batch参数,一次性向设备下发包含所有端口状态的JSON数组。一键全开
{"batch":[1,1,1,1,1]}一键全关
{"batch":[0,0,0,0,0]}混合控制
{"batch":[1,0,1,0,1]}(开1、3、5路,关2、4路)
推荐理由:使用 batch 命令可以保证5路状态的同步性,避免因网络延迟导致的逐路开关时间差,提升用户体验,且只需一次HTTP请求。
3. 不同开发环境的对接示例
根据接口的通用性,以下是两种常见的对接方式:
第一种场景:Python 后端(如:自动化运维脚本、FastAPI/Django)利用 requests 库封装控制函数。
第二种场景:前端/小程序(JavaScript)需在后端代理转发,避免 AppSecret 暴露在前端代码中(此处仅展示逻辑)。
三、 对接流程实操
第一步:注册与获取凭证登录芯步官网,进入控制台(工作台)。在“开发设置”中获取 AppID 和 AppSecret。这里是所有API调用的起点。
第二步:设备配网与ID获取
WiFi配置:该PDU仅支持2.4G WiFi。你可以通过“物联网控制台”的“网络配置”功能,输入现场WiFi的SSID和密码,生成配置二维码。
设备激活:长按PDU上的按键使其进入配网模式,待指示灯常亮即表示上线。
获取Device ID:在控制台的设备列表中找到该PDU,复制其唯一的
Device ID(例如手册示例中的1878)。
第三步:本地闭环测试(curl命令)在获得上述参数后,先用命令行工具测试连通性,确认签名无误。
如果返回 {"code":0,"msg":"success"},说明对接成功。
四、 高级与差异化部署
1. 私有化部署(局域网直连)对于数据中心等对公网隔离要求较高的场景,芯步支持私有化部署。你可以在本地服务器部署消息中间件,API请求不经过外网云平台,直接指向局域网内的自建服务器,实现更低延迟(毫秒级)和更高的数据安全。
2. 掉电记忆与状态同步在实际机柜环境中,电源管理极其重要。对接时应注意:
状态查询:除了控制,周期性调用设备状态查询接口(如
device/status),获取当前5路端口实际的通断状态,并在你的前端界面上进行回显,防止界面与现场动作不同步。指令确认:PDU执行指令后通常会通过HTTP回调或WebSocket推送执行结果,在你的系统后端监听此回调,记录操作日志(例如:“张三于15:00执行了总控关机”)。
五、 总结
通过芯步5位PDU的“分控”硬件配合“批量”API指令,是解决“5路总控”需求的最优解。
数据格式
{"batch":[0,0,0,0,0]}。核心优势:只需一次API调用,即可实现所有端口的同步刷新,逻辑清晰,适合集成到现有的IT运维或智慧机房管理系统中。