芯步的8位总控插排(智能PDU)采用统一HTTP接口规范,单条命令即可控制全部8路电源。以下是完整的接入方案,涵盖鉴权、接口调用、多语言代码示例及工程化。
1. 解决概述
目标:利用芯步开放的 HTTP API,将 8 位总控插排(智能 PDU)集成到现有的业务系统(如机房动环系统、智慧农业中控、办公能源管理系统)中,实现对 8 个独立设备电源的远程操控。
核心产品
智能 PDU8位[总控](型号:UNI-PDU-ZK-8)。
特点:无需网关,直连 2.4G WiFi;铝合金外壳,工业级耐用;支持 HTTP 直连与 MQTT 协议。
接口统一性:芯步的全线产品(包括插座、PDU、控制器)接口逻辑完全一致,仅命令参数不同。这意味着您只需学会一套对接流程,即可管理该品牌所有硬件。
2. 接口鉴权与请求机制
所有 API 请求均基于 HTTPS POST,核心难点在于签名的构造。签名(sign)用于验证客户端身份,防止接口被恶意调用。
2.1 前置准备
在芯步控制台获取以下凭证:
AppId:应用的唯一标识。
AppSecret:开发者密钥(严禁直接暴露在客户端代码中)。
Device ID:设备外壳或控制台上贴的 8 位数字(如:820720)。
2.2 签名算法(核心步骤)
签名公式为:sign = MD5( MD5(AppSecret) + ts )
将
AppSecret进行一次 MD5 加密,得到字符串S。将当前 Unix 时间戳(秒,如 1715324800)拼接在
S后面。将拼接后的字符串再次进行 MD5 加密,得到最终的
sign。
请求地址https://api.thingboot.com/{AppId}/device/control/?sign={sign}&ts={ts}
⚠️ 重要提示:返回的 HTTP 200 仅代表平台收到了指令。若要确认设备是否真的执行了动作(如设备断电或离线),需配合平台的“消息推送”功能获取设备回执。
3. “8位总控插排”的控制指令详解
针对 8位总控 设备,控制指令相对简单。因为它是“总控”,即全部插孔共用一个开关。
3.1 全部开启
3.2 全部关闭
3.3 临时任务(定时重启)
如果不希望长期关闭,而是想让某路在通电一段时间后自动断开(例如重启路由器),可以使用 point 参数:
上述命令含义:立即打开总电源,并在 60000毫秒(60秒) 后自动关闭。
特别说明:由于本文讨论的是“总控”型号,不存在
power1、power2这样的参数。如果是“8位分控”型号,则命令格式为"power1":1(开启第一路)。
4. 代码接入示例
以下示例展示了如何在三种主流环境下构造请求。
4.1 Python 示例(适合后端微服务)
4.2 cURL 命令示例(适合脚本测试)
4.3 Java 示例(适合 Android 或后端)
5. 方案实战:机房设备远程重启
场景:机房里放置了 8 台服务器/网络设备,全部接入芯步 8位总控插排。网络工程师希望通过内部运维系统实现“一键重启第 3 排机柜的所有设备”。
逻辑
设备安装:插排通电,配置现场 2.4G WiFi 名称和密码(通过小程序或控制台配网)。
获取设备 ID:在控制台查看到该 PDU 的设备 ID(例如:877123)。
系统集成:在运维后台的“重启机柜”按钮点击事件中,调用上述 API。
执行动作
切断:发送
{"power":0}。等待
Thread.sleep(5000)(休眠 5 秒,让电容放电完全)。恢复:发送
{"power":1}。
进阶设置(自动巡检)在低代码平台(如 Node-RED 或 芯步自带规则引擎)中设置定时任务:
Cron 表达式
0 3 * * *(凌晨3点)。动作:关闭总电源 -> 等待 10 秒 -> 开启总电源。
用途:自动清理网络僵尸连接,定期维护设备稳定性。
6. 最佳实践和需要注意的点
分控 vs 总控
若需单独控制每个插孔,推荐购买 “智能PDU[分控]” 。此时命令需改为
{"power1":1}以单独控制第一路,避免使用power参数。
私有化部署如果项目要求纯局域网运行(内网环境无法访问公网),芯步支持私有化部署。此时 API 地址需改为自建服务器的 IP,且设备需指向该服务器地址。
异常处理在实际开发中,请一定要处理 HTTP 非 200 的情况。例如:
Code 502:设备不存在或已被删除。Code 503:超出了一次请求的最大设备数量限制。
安全性签名中的
ts(时间戳)与服务端时间保持一致。通常平台会允许 5-10 分钟的时间误差,超出范围会报签名过期。
通过以上步骤,开发者可在 10分钟 内完成从注册到控制插排通断的全流程对接。