CATALOG

芯步的智能排插开放HTTP接口,说白了就是给你一串网址,你用代码去访问它就能拿到数据或控制开关。下面我按“准备工作—状态查询—控制开关—完整示例—注意事项”的顺序来讲。

一、准备工作:先搞懂你手上的是啥

在动手写代码之前,得先把这几样东西准备好:

1. 设备本身你提到的“8位机柜智能插排”,也就是8个插孔都能独立控制的PDU。每个插孔对应一个线路号(一般是1到8),你操作的时候需要指定是对第几位进行操作。

2. 设备ID每个设备出厂时都有一个唯一ID,就像身份证号。你需要在芯步的后台(物联网控制台)里找到你的插排,复制这个Device ID。这是必填参数,搞错了就找不到设备。

3. 应用ID(AppID)、签名(Sign)、时间戳(TS)这三个是调接口时用来做身份验证的:

  • AppID:你在芯步平台注册应用后自动生成的,标识是哪个应用在调用。

  • TS:当前时间戳(精确到毫秒或秒),防止请求被恶意重放。

  • Sign:签名,一般是把AppID、设备ID、TS按照约定的顺序拼接后,再MD5加密得到的字符串。具体生成规则参考官方文档。

4. 设备要联网确保你的插排已经通过WiFi配网成功了(芯步的设备一般支持2.4G WiFi),而且和你的服务器在同一网络(公网或局域网都行)。

二、核心任务:查询每个插孔的开关状态

你要做的事情: 向芯步的API接口发一个HTTP POST请求,告诉它你想查哪个设备、哪个插孔的当前状态。

接口地址格式大概是这样的:

POST请求体(JSON格式):

解析一下这个JSON:

  • deviceId:就是刚才说的设备ID。

  • commands:是个数组,因为你可以一次查多个插孔。

  • cmdId:随便写个整数就行,用于区分命令,服务器返回时会带上相同的ID,方便你对应。

  • code

    • 查询第1路用 "power1"

    • 查询第2路用 "power2"

    • …… 以此类推到 "power8"

  • value:当你要“查询”状态时,一般传空字符串 "" 或者 "?"(具体看文档,但通常查询时value不重要,有的接口直接不传)。

服务器返回啥?

成功的话,服务器会返回类似这样的数据:

  • status: 0 表示接口调用成功。

  • data 里每个元素对应你请求的一个命令。

  • value: "1" 表示开启, "0" 表示关闭。

说白了:你发个请求过去,它返回每个插孔的1或0,你解析一下就知道哪个口开哪个口关了。

三、进阶操作:控制开关(开/关/重启)

查完状态,下一步肯定是控制它了。比如发现服务器死机了,想远程重启第3个插孔。

接口地址和验证方式跟查询一模一样,只是POST请求体的内容变了。

1. 开启某个插孔

value: "1" 就是开启。

2. 关闭某个插孔

value: "0" 就是关闭。

3. 重启某个插孔(先断后通)

有些设备支持原子操作 reset,一键实现“先断电再通电”。

也有先用 power3 关,延迟几秒后再用 power3 开的笨办法,但不如 reset 优雅。

4. 批量控制多个插孔

如果你想一次关掉第1、3、5路,不用发三次请求,可以用 batch 命令:

value: "10001010" 的意思是:第1路开,第2路关,第3路关,第4路关,第5路开,第6路关,第7路关,第8路关。(顺序从高位到低位对应线路1~8)

四、完整示例:用Python代码实现

假设你已经拿到了AppID、设备ID和签名密钥,用Python的 requests 库来实现查询所有插孔状态。

跑完这段代码,控制台就会打印出每个插孔的开关状态。

如果要控制某个插孔,把 commands 里的 codevalue 改成开/关的就行。

五、一些容易被坑的地方

1. 签名别算错了这是新手最容易遇到的问题。时间戳、拼接顺序、加密方式(MD5还是SHA256)必须和官方文档完全一致,差一个字符服务器就给你返回“签名错误”。

2. 状态不是实时推送的你调用接口查到的状态是那一刻的快照。如果你需要实时监控(比如功率突然飙升时报警),最好是定时轮询,比如每5秒查一次。

3. 设备的定时和点动功能芯步的设备支持 reset(延时断开)或 point(点动)。比如你想让插孔通电1小时后自动关闭,可以传 "reset": 3600000(单位毫秒)。这个在你做“临时授权供电”时很实用。

4. 网络要通

  • 公网模式:设备能上网就行,你的服务器也在公网。

  • 局域网模式:如果你的服务器和设备在同一个内网,可以走私有化部署的本地API,延迟更低,也更安全。这时候要把API地址换成你自建服务器的IP。

5. 8位排插的线路编号一定要确认好第一个插孔对应的是 power1 还是 power0。大部分设备从1开始,但不敢100%保证,最好先用一个小功率设备(比如LED灯)测一下。

6. 考虑并发和重试如果你要同时控制几十台机柜的几百个插孔,在代码里做好重试机制(比如失败后隔1秒再试一次),以及控制请求速率,别把设备或服务器打挂了。

总结一下

对接芯步的8位机柜排插,核心就是三步:

  1. 准备参数:AppID、Device ID、签名。

  2. 拼请求:根据你要做的动作(查状态 / 开 / 关 / 重启)构造JSON,发POST到指定URL。

  3. 解析响应:拿到返回数据后判断开关状态或操作结果。

整个流程其实就是一个HTTP接口调用的活儿,难度不大。先在芯步的控制台里用他们提供的调试工具试一把,确认设备在线、接口能调通,再动手写代码。