以下是“如何接入PDU插排(8位)以实现远程打开关闭8路设备电源”的解决方案。
1. 概述
芯步推出的智能PDU(8位) 分为总控版和分控版两种型号。本方案主要针对分控版(即8位插孔均可独立控制),通过其开放的HTTP API接口,实现将PDU插排无缝集成到现有的业务系统(如机房动环系统、无人值守设备控制系统、智能家居中控等)中。
开发者无需复杂的嵌入式开发,仅需通过标准的HTTP请求即可实现对每一路电源的独立开关、批量控制、定时重启等操作。
2. 准备工作
2.1 硬件准备
芯步智能PDU(8位分控版):确保设备支持8路独立控制。
网络环境:2.4GHz Wi-Fi网络(设备不支持5G频段)。
2.2 软件与账号准备
注册开发者账号:访问芯步官网,注册账号并登录。
获取密钥在后台的“控制台” -> “开发设置”中获取以下两个关键参数:
AppID:应用的唯一标识。
AppSecret:开发者密码,用于计算签名。
3. 设备配网与激活
在调用接口之前,需要先让PDU插排连接到互联网。
推荐使用微信小程序进行配网:
微信搜索“芯步”小程序。
登录已注册的账号。
点击右上角“+”添加设备。
输入当前现场的2.4G Wi-Fi密码。
长按PDU插排上的开关按钮,直到指示灯进入快闪模式。
手机连接PDU发出的热点进行信息配置,听到“配网成功”提示音即表示设备上线。
设备上线后,在PC端控制台的“设备列表”中可以看到该设备,并获取到Device ID(设备ID),这是后续API调用的核心参数。
4. API 调用详解
芯步采用标准的HTTP协议,请求地址为:http(s)://api.thingboot.com/{AppID}/device/control/
4.1 鉴权机制
为了防止接口被恶意调用,需进行时间戳签名(Sign) 认证。签名生成算法Sign = MD5( MD5(AppSecret) + ts )
ts:当前Unix时间戳(秒级)。
MD5():标准的MD5加密函数。
代码示例(生成Sign):
4.2 指令控制
通过POST请求向device字段指定的PDU下发order指令。
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| device | String | 是 | 设备的唯一ID(从控制台获取) |
| order | JSON | 是 | 控制指令,具体内容见下表 |
各线路控制命令表(8位分控版):
| 动作描述 | Order JSON (参数) | 说明 |
|---|---|---|
| 开启第1路 | {"power1": 1} | 针对8位PDU,参数范围为power1~power8 |
| 关闭第2路 | {"power2": 0} | 0代表断开,1代表闭合 |
| 开启所有 | {"power":"1"} | 仅限总控版或部分支持全局命令的版本 |
| 批量控制 | {"batch":{"relay":[1,3,5],"power":0}} | 同时关闭第1、3、5路 |
| 重启设备 | {"reset":{"relay":[2],"interval":5000}} | 第2路断开,5秒后重新接通 |
4.3 调用示例
场景:需要远程重启连接在PDU第1口的服务器(先断电,再通电)。
请求地址:POST https://api.thingboot.com/APP_ID_XXXX/device/control/?sign=SIGN_VALUE&ts=1704067200
请求Body (JSON):
cURL命令示例
5. 高级应用场景
5.1 设备状态监控
由于HTTP请求是“发后不管”的单向模式,若需要实时获知设备当前的通断电状态(例如前端UI显示开关状态),采用以下两种方案:
轮询机制:调用“设备状态查询”接口(根据平台文档),定期获取PDU各端口的电流、电压及开关状态。
消息推送:搭建公网可访问的接收服务器,在控制台配置回调URL。当PDU状态发生变化时,平台会主动推送消息到你的服务器。
5.2 定时任务
如果需要每天凌晨2点关闭所有设备:可以在芯步控制台的“设备管理”页面,针对该PDU设置云端定时任务,无需编写代码。或者,在你的业务服务器中配置Cron任务,定时触发上述API调用。
6. 常见问题与排错
1. 为什么调用接口返回200,但设备没反应?
说明:HTTP状态码200仅代表平台收到了指令,且指令格式正确。
原因:设备可能处于离线状态(Wi-Fi断开)。
解决:检查PDU的指示灯状态,确认网络连通性。
2. Sign签名校验失败(错误码501/502)
原因:时间戳
ts误差过大,或MD5计算顺序错误。解决:确保服务器时间与标准时间误差不超过5分钟,严格按照
md5(md5(AppSecret)+ts)顺序拼接。
3. 如何区分总控和分控?
如果你的项目名为“智能PDU8位[总控]”,则命令为
{"power":0}控制全部。如果你的项目需要单独控制每一个插孔,请购买分控版型号,并使用
{"power1":1}等命令。
7. 总结
通过芯步提供的开放API,我们可以仅用几行代码就将8位PDU插排接入现有的运维系统。无论是用于机房的远程故障重启,还是共享空间(如自习室、微型机房)的用电计费与管理,该接口方案都提供了简单、可靠的解决路径。
技术支持:芯步官方为开发者提供免费的全流程技术指导。