芯步的智能PDU开放了标准的HTTP接口,对接思路很直接——按规范算签名、发POST请求就行。下面我按“准备工作→接口调用→状态反馈→代码示例”的顺序写,你可以直接拿去参考。
1. 准备工作:把“基础设施”搭好
在写代码之前,得先把硬件和账号准备好,不然接口调通了设备也没反应:
硬件上电与配网:把你的智能PDU[总控]|5位插上电。它只支持2.4G WiFi,需要用芯步的小程序或者电脑控制台,把WiFi名称和密码“告诉”设备。配网成功时,设备上的指示灯会从闪烁变为常亮。
获取三把“钥匙”:登录芯步官网,进入控制台的“开发设置”页面。你会看到:
AppID:就像你的“账号名”,接口URL里要用到。
AppSecret:像“密码”,千万别泄露,它是用来生成签名的。
设备ID:在设备列表页能看到,是一串数字,告诉接口你要控制哪台PDU。
2. 核心逻辑:签名计算(这是关键)
芯步的接口为了安全,所有指令都需要携带签名(sign)。你不需要理解复杂的加密原理,只要按固定公式计算就行:
签名公式sign = MD5( MD5(AppSecret) + ts )
别晕,拆解一下:
先把你的AppSecret做一次MD5加密。
把当前的时间戳(ts,精确到秒)拼在上一步得到的字符串后面。
把拼接后的新字符串再做一次MD5,最后得到的值就是sign。
举个例子(伪代码)
3. 实战:如何控制“总线路”和“分位”
对于你的需求“总线路状态反馈控制”,核心就是下发HTTP请求。PDU[总控]的特点是虽然只有1路总进线,但内部有5位输出可以独立控制。
请求地址(POST方式):https://api.thingboot.com/{你的AppID}/device/control/?sign={你的sign}&ts={当前时间戳}
请求体(Body, JSON格式):
控制单个分位(比如关闭第3位):想让第3口断电?命令里写
power3即可。如果想打开,就把
0改成1。一键控制总线路(批量操作):虽然物理上是控制5个分位,但你可以同时发指令实现“总控”的效果。比如紧急情况需要一键全开/全关:
注意这里的
batch参数稍微有点嵌套,因为它还支持更灵活的用法。比如你想同时开1、3、5位,关掉2、4位,也是一条指令的事:小提示:这里的
order值是个JSON字符串,所以在拼写时注意引号的转义。
4. 状态反馈:怎么拿到实时数据?
你提到了“状态反馈”,这才是智能化落地最有价值的一环。总不能每次想知道开关状态都去查一遍吧?
芯步提供了“消息推送”机制。简单说,就是设备状态一旦发生变化(比如有人按了PDU上的物理按钮、电压过载自动跳闸、或者你远程关了机),云端会主动把你的服务器地址推送消息。
开启推送:在控制台设置你的服务器接收URL(Webhook)。
接收数据:当第2位插座电流异常或者被关闭了,你的服务器会立刻收到类似
{“device”:“xxx”, “power2”: 0, “current”: “xxA”}的实时JSON数据。这么做的好处:不用一直问设备“你关了吗?”,设备出问题了会主动“举手报告”。
5. 来点实际的:Python 和 Shell 示例
如果你习惯在服务器上敲命令,下面两个脚本直接拿去改改就能用。
Python 3 示例:
Bash (cURL) 示例:如果你更习惯用命令行排查,用curl最直接
总结
对接芯步的智能PDU其实不复杂。
连上网:配网是第一步,设备不在线一切白搭。
算签名:按“MD5(MD5(密钥)+时间戳)”的公式生成sign。
发指令:操作单路用
powerX,操作总路或多路用batch。收反馈:配置好消息推送,让状态“主动”找上门。