芯步的5位总控插排开放了HTTP接口,可以用任何编程语言直接调用。下面我从接口准备、单路控制到“一键总控”的实现,按步骤梳理一遍,最后给个简单的Python示例。
一、我们有什么“家底”?(准备工作)
在开始写代码之前,咱们得先搞清楚手里有什么。你需要准备以下三样东西,这些在芯步的控制后台都能找到:
设备的“身份证” (Device ID) :也就是你那台5位总控插排的唯一ID。在包装盒上或者把插排添加到后台后,都能看到一个纯数字的ID。
你的“通行证” (AppID / Sign) :既然是二次开发,你的程序要访问芯步的云平台,必须带上身份标识。主要是 AppID,以及通过密钥计算出来的 Sign(签名) 和 Ts(时间戳)。这是为了防止别人乱动你的设备 。
接口地址 (API URL) :也就是你要把命令发往哪个网址。
二、核心技能:怎么“喊”动这个插排?
对于这款5位总控插排,控制命令主要是通过 HTTP POST 请求发出去的。它的接口设计得非常简洁,你不需要搞懂复杂的电气协议,只需要学会发“指令包”就行。
1. 看懂指令格式
芯步的接口支持 JSON 格式传参,非常友好。主要参数就两个:
device:把刚才说的设备ID填进去。order:这里是重点,写你要干什么。
根据官方文档和产品手册,针对这个插排,我们主要用到以下参数
| 功能描述 | 指令内容 (Order JSON) | 适用场景 |
|---|---|---|
| 控制单个孔位 | {"power1": 1} (或 0) | 只开关第一个孔,其他不动 |
| 一键全开/全关 | {"power": 1} (或 0) | 这就是你要的“总控” |
| 临时通电(点动) | {"point": 3000} | 像按门铃一样,通电3秒后自动断电 |
| 延迟断电 | {"reset": 10000} | 立即断电,10秒后再恢复通电 |
注意:这里的 1 代表开,0 代表关。时间单位是毫秒(ms)。
2. 单兵作战:控制第一路设备
假设现在天气太热,你想远程重启一下路由器(路由器插在第一口)。代码逻辑是这样的:
你发送一个请求:告诉服务器,设备ID是 123456789,把 power1 这个参数设为 0(关闭)。
三、实现你的目标:一键5路设备电源总控
回到我们的主题:“怎么通过二次开发实现5路设备的总控?”
这其实分两个层面:
软件层面的“总控”:你点一下按钮,程序给5个孔位挨个发指令。
硬件层面的“一键”:利用插排自带的
power指令直接全开/全关。
方案一:利用插排的“总开关”指令 (推荐)
这是最简单、最优雅的做法。通过查阅芯步的产品手册发现,这款插排在硬件逻辑上支持总控指令。你只需要发一条指令,插排内部芯片就会自己完成5个继电器的通断 。
优点:响应快,只需要请求一次接口,即使网络稍微有点卡顿,5路也是同步动作的。
方案二:轮询控制 (适合个性化场景)
如果你想做更细致的总控,比如“不是同时关,而是从第1路到第5路按顺序每隔0.5秒依次关闭”,就需要用到轮询。
思路解析写一个循环,在循环里依次修改参数 power1 到 power5。
伪代码逻辑
适用场景比如你接了5台大功率服务器,如果同时通电瞬间电流太大可能会跳闸,这时候用程序控制“逐个启动”就非常实用了。
四、实战 Demo (Python 示例)
既然你说要稍微口语化一点,那咱们就来点能直接跑的代码。这里用 Python 举个例子,展示如何实现“一键全关”:
五、避坑指南 & 小贴士
在二次开发中,有几个地方容易踩坑,提前给你打个预防针:
关于“总控”的定义:这里说的总控,是指软件逻辑的总控。插排本身有一个物理上的“总开关”吗?这款5位PDU通常是没有物理总控按钮的,所以二次开发正好弥补了这一点,让你的手机/电脑变成它的远程总控遥控器。
超时与异步:接口返回200只代表云平台收到了命令,不代表设备执行成功。如果设备WiFi断了,接口也是200。如果需要强反馈,开启MQTT方式监听设备状态回传 。
签名算法(Sign):很多新手会卡在这一步。芯步的签名通常是将请求参数排序后加上Key做MD5。一定要严格按照文档的示例来拼接字符串,多一个空格或少一个大写都会报错。
局域网直连:如果你是在同一个WiFi网络下进行开发,不需要走外网云,可以用HTTP直连插排的本地IP,响应速度会更快,几乎没有延迟 。
总结一下,只要掌握了那个 {"power":0} 的指令,你的二次开发目标就实现了一大半。剩下的就是把这个HTTP请求封装到你的现有系统(比如HomeAssistant、Node-RED或者自建的管理后台)里了。