CATALOG

一、咱们先聊聊需求和场景

先问个问题:机房里服务器、交换机、路由器这些设备,有没有必要做定时控制?

你可能会说——“服务器不应该是7x24小时开着的吗?”

没错,业务服务器确实不能随便关。但实际场景中有很多“非核心设备”是需要灵活控制的,比如:

  • 测试服务器的定时开关(下班自动关,上班自动开)

  • 机柜散热风扇的定时启停(晚上负载低的时候关掉省电)

  • 大屏展示设备的定时上下电

  • 备用设备的周期性通电检测

  • 甚至是你工位旁边的网络设备,周末自动断电省电

有了智能PDU(8位分控),再加上芯步开放的HTTP接口,写几行代码就能搞定这些事情。今天咱们就聊聊怎么二次开发实现这个功能。

二、用到的硬件和它的接口

设备长什么样?

用的是芯步的 智能PDU[分控]|8位 这款设备

简单说就是一个机柜专用的排插,但它有8个可独立控制的插座口,每个口都可以单独开关。每个插座对应一个继电器,你通过API告诉它“把第3路打开”,它就照做。

开放接口什么样?

这是最良心的地方——芯步免费开放了HTTP接口。这意味着:

  • 不挑编程语言:Python、Java、Go、Node.js、PHP……只要你能发HTTP请求,就能控制它

  • 不挑部署环境:你写个脚本跑在Windows、Linux、Mac上都行

  • 支持局域网:如果不想走云端,还可以私有化部署,纯局域网内控制

接口调用方式大概是这样

签名计算方式:

控制命令示例:

  • {"power1": 1} → 打开第1路

  • {"power2": 0} → 关闭第2路

  • {"batch": "10101010"} → 批量控制8个口

三、整体方案设计思路

我们要实现的功能是:定时控制8路设备的开关

比如这样的定时任务表:

端口设备开启时间关闭时间生效日期
1测试服务器09:0018:00工作日
2机柜风扇08:0022:00每天
3大屏展示机10:0017:00周一至周五
4备用设备每月1日 00:00每月1日 06:00每月一次

实现方式有两种思路:

  1. 写一个定时脚本:用Python或Node.js写个脚本,配合系统的cron任务调度,定时调用API

  2. 部署一个常驻服务:用Node.js或Python写个常驻服务,内部维护定时任务列表,自己控制执行时机

我个人推荐第二种,更灵活,而且方便加个简单的管理界面。不过第一种对新手更友好,看你的需求。

四、动手开干——代码实现

第一步:准备工作

  1. 去芯步官网注册账号

  2. 创建工作台,进入物联网控制台

  3. 给PDU配网(2.4G WiFi,按官方文档操作就行)

  4. 在控制台找到你的设备ID和AppID、AppSecret

  5. 设备通电并在线

第二步:封装API调用

先写一个核心的API调用封装,我用Node.js示例(Python也类似):

如果你更喜欢Python,大概长这样:

注意几点:

  • 签名要严格按照 md5(md5(AppSecret) + 时间戳) 的顺序

  • 时间戳用秒级的

  • device参数如果需要控制多个设备,可以用逗号分隔

第三步:实现定时调度服务

有了API封装,接下来做定时调度。这里用Node.js的node-cron库举例:

cron表达式的说明:

  • 0 9 * * 1-5 → 每周一到周五的上午9:00整

  • 0 18 * * 1-5 → 每周一到周五的下午6:00整

  • 0 8 * * * → 每天早上8:00整

  • 0 22 * * * → 每天晚上10:00整

第四步:进阶——加个简易管理界面

如果想让运维同事也能用,可以加个简单的Web管理界面。用Express写几个接口就行:

五、部署和运维注意事项

1. 网络环境

  • PDU只支持2.4G WiFi,确保机柜附近有2.4G信号

  • 如果机柜在弱电井或者信号不好的地方,考虑拉个AP或者用有线网络方案(芯步也有支持有线的型号)

2. 服务高可用

  • 定时控制服务最好部署在内网的一台小型服务器或者树莓派上

  • 做进程守护(用PM2或者systemd),万一挂了能自动重启

  • 如果服务挂了,PDU会保持最后一次的开关状态,不会丢配置

3. 安全性

  • AppSecret要妥善保管,别硬编码在代码里提交到Git,用环境变量

  • 如果通过公网API控制,考虑加一层VPN或者IP白名单

  • 支持私有化部署的话,直接用局域网模式

4. 失败重试

网络波动是常态,调用API的时候加重试逻辑:

六、总结

就这么简单——写个几十行代码,芯步的PDU就能按你的想法自动干活了。

关键优势在于:

  1. 接口免费开放,不额外收费

  2. 协议简单,就是个HTTP调用,啥语言都能写

  3. 支持局域网,内网控制延迟低、还安全

  4. 8路独立控制,每个设备各管各的,互不干扰

如果想做得更完善,还可以扩展:

  • 加个电量统计功能(如果PDU支持的话),监控每路设备的功耗

  • 对接企业微信/钉钉,定时任务执行后发个通知

  • 做个Web管理后台,让运维同事也能改定时配置

如果有技术问题,芯步那边也提供全程技术指导,从选型到调试都有人帮忙。放心干就完了!

有什么具体问题或者想进一步讨论的,欢迎随时交流!

插排产品方案:
如何接入8位总控PDU插排以实现场景联动总控电源
查看 >>
怎么接入机柜PDU(5位)以实现多设备联动控制
查看 >>
共享设备机房机柜电源控制:如何将机柜分控PDU5位接入到项目中
查看 >>
怎样在智慧教室设备机柜电源管理中集成智能设备以实现8路设备总电源状态监测
查看 >>
车间设备电源控制:怎样把智能5位总控PDU接入到软件项目中
查看 >>
机柜场景方案:
怎样在智慧教室设备机柜电源管理中集成智能设备以实现8路设备总电源状态监测
查看 >>
怎么在仓储设备机柜电源管理中对接智能硬件来实现总路过流过载保护控制
查看 >>
创客工坊设备机柜电源控制:怎样把8位智能分控PDU接入到项目中
查看 >>
怎样在展会现场设备机柜电源控制中接入智能硬件以实现分路开关控制8台设备电源
查看 >>
无人值守门店机柜电源控制:怎样把智能PDU[分控]|8位集成到自己的项目中
查看 >>
8路用途方案:
怎么在自助打印设备机柜电源控制中接入智能硬件以实现8路设备总电源状态监测
查看 >>
怎样对接8位总控PDU来实现集中一键控制8路设备电源
查看 >>
如何在仓储设备电源控制中接入智能设备以实现8路设备总电源状态监测
查看 >>
怎样在门店照明系统集中控制中对接智能设备来实现多达8路独立线路控制
查看 >>
怎样在共享茶室照明控制中集成智能硬件来实现远程控制8路照明设备通断
查看 >>