CATALOG

一、我们为什么需要智能PDU?

先聊点实际的。如果你管过一批广告灯箱,肯定遇到过这种情况:半夜某个灯箱死机了,或者屏幕卡住了,你得专门跑一趟去现场拔电重启。一个两个还好,要是管着几十上百个点位,那真能把人跑断腿。

智能PDU(电源分配单元)就是来解决这个问题的。把8位PDU插排接到机柜里,每个灯箱独立供电,这样你就可以远程控制每一个灯箱的开关——哪个死机就重启哪个,不用跑现场,也不用把正常运行的灯箱一起断电。

核心价值就三句话: 少跑腿、少断电、省电费。

二、整体方案长什么样?

这套东西的架构其实不复杂,我画个思路给你:

说白了就是:PDU负责执行指令(开/关),云平台负责转发指令和设备状态,你的系统负责展示和控制。你只需要调用芯步的开放接口,就能告诉PDU“把第3口给我合上”或者“查一下第5口的电流”。

三、准备工作:先把账号和设备连起来

动手之前,这几样东西你得先弄好:

  1. 注册芯步账号,进到控制台,拿到你的AppID和AppSecret(这东西相当于你系统的身份证,别泄露)

  2. 把PDU设备加到平台。设备外壳上一般贴着设备ID标签,在控制台把它绑定到你账号下。确认设备在线——一般通过4G或者网线联网,上线了平台会有状态提示。

  3. 设备ID记下来。每个PDU有一个唯一ID,后面调用接口控制它全靠这个ID

  4. 配置消息推送地址(可选但推荐)。如果你希望设备状态变化时你的系统能“被通知”而不是一直去问,就设一个接收地址

四、重点来了:怎么控制PDU的8个位?

控制PDU的核心动作就是:向设备下发指令

芯步提供了两种调用方式——HTTP和MQTT。如果你的系统是传统的后端服务,用HTTP最简单;如果追求实时性和低延迟,可以考虑MQTT

4.1 基本操作:远程开关某个口

假设你想关掉第3个口(灯箱死机了要重启),指令大概是这样的:

请求方式: POST接口地址:http(s)://api.thingboot.com/{你的AppID}/device/control/?sign={签名}&ts={时间戳}

请求参数(JSON格式,推荐):

(这里约定 0=关,1=开,具体字段名要看你的PDU产品定义,一般是outlet_1到outlet_8)

返回结果:

code为200表示平台收到了指令并下发成功,但不代表设备一定执行了——如果设备离线,指令会下发失败,这时需要配合消息推送来确认执行结果。

如果你用的是MQTT方式,发布主题是 api/{AppID}/device/control,消息体格式跟HTTP一样

4.2 进阶操作:批量控制和定时任务

同时控制多个口:

加上业务标识(方便追踪):

这个extra字段在消息推送时会原样返回,方便你做日志关联

批量控制多台设备:device字段用逗号或竖线分隔,可以一次给最多100台设备发指令

4.3 获取设备状态:怎么知道当前是开是关?

获取状态有两种常用方式:

方式一:主动查询调用设备状态查询接口(具体接口路径参考芯步文档),传入设备ID,返回每个口的开关状态、电流、电压等信息。

方式二:被动接收(推荐)配置消息推送后,设备状态发生变化时,平台会主动推送到你的服务器。比如有人按了PDU上的物理开关,或者设备上下线了,你都能实时知道。

下线消息的推送格式大概是这样的

reason字段会告诉你设备是正常退出、超时断线还是主动关闭。

如果你在界面上需要实时展示每个灯箱的在线/离线状态、当前开关状态,同时用这两种方式——主动查询做