芯步智能PDU采用HTTP接口开放策略,开发者只需携带AppID、设备ID和签名即可下发指令,无需学习私有协议。以下方案涵盖配网、接口调用及代码示例,帮助你快速实现8路设备的独立控制。
1. 产品理解与核心概念区分
首先,我们需要明确你使用的设备型号。芯步提供两款不同的8位PDU:
智能PDU[分控]:支持独立控制每一个插位的开关,适合需要精细化管理的场景。
智能PDU[总控]:只能统一控制所有插位(同时开或同时关)。
依据你的需求标题 “8路设备电源总控” ,对应的硬件设备应该是 “智能PDU8位[总控]” (型号:UNI-PDU-ZK-8)。
该类设备运行在 2.4G WiFi 环境下,无需网关,设备直连路由器。
2. 接入前置准备
在编写代码之前,需要完成物理设备的初始化配置,确保设备在线。
2.1 硬件配网(关键步骤)
由于API下发指令的前提是设备在线,需按以下步骤将PDU接入局域网:
注册与登录:在“芯步”官网控制台注册账号。
登记Wi-Fi:在控制台的“网络配置”中,输入现场2.4G Wi-Fi的名称和密码。
设备配网
方法A(热点模式):长按PDU按键直到指示灯进入快闪状态,用手机连接设备自身热点,在控制台选择“配置到此网络”。
方法B(小程序):使用“芯步”小程序,扫描设备二维码,输入Wi-Fi密码完成配网。
确认在线:配网成功后,网页控制台的设备列表中该PDU状态会显示为 “在线” ,此时获取其 Device ID(设备ID)。
2.2 获取API凭证
在芯步控制台的 “应用管理” 中,创建或获取:
AppID:应用的唯一标识。
App Secret:用于生成签名(Sign)的密钥,请注意保密。
3. API接口调用方案
芯步的设备开放HTTP接口,无需安装SDK,只要支持HTTP请求的语言均可使用(如Python, Java, Go, PHP, Node.js等)。
3.1 接口协议与地址
请求方式
POST数据格式
Content-Type: application/json地址结构
https://api.yoyoiot.net/v2/device/control/{DeviceID}(注:具体URL请以芯步最新的API文档为准,此处为通用逻辑示意)
3.2 签名生成规则
为了防止接口被恶意调用,需进行签名验证。通常包含以下参数(以官方文档为准):
app_id: 你的应用IDts: 当前时间戳(秒或毫秒)sign: 通过排序后的参数拼接+密钥进行MD5或哈希加密。
伪代码逻辑:
3.3 控制指令下发
对于 “总控” 设备,控制相对简单,通过开关参数控制所有插位。但API通常支持通用指令格式。
请求Body示例(开启PDU):
请求Body示例(关闭PDU):
4. 实操解决方案与场景联动
4.1 集成到第三方系统(BMS/PLC)
如果你的机房动环监控系统无法直接调用HTTP,可以通过以下两种方式过渡:
Node-RED 中间件:搭建一个Node-RED服务,使用
http request节点封装芯步的API,然后通过Modbus协议与PLC对接。Python 脚本中转:如果你有上位机,可以嵌入以下Python核心代码段:
4.2 定时重启与巡检
利用API可以轻松实现设备的自动化运维:
定时任务:在Linux服务器(或Windows任务计划程序)中设置Crontab任务,每小时调用一次上述脚本的
control_power("off")和control_power("on"),实现自动断电重启。心跳监测:结合Ping命令,如果检测到某台网络设备(如路由器、服务器)宕机,自动触发API调用该PDU对应的插位进行断电重启。
5. 常见问题排查与
离线问题:如果API返回“设备离线”,请检查PDU连接的Wi-Fi是否稳定。为PDU的MAC地址在路由器中绑定静态IP,并确保Wi-Fi信号强度。
控制延迟:由于HTTP接口基于云端(或局域网),总延迟一般在几十毫秒到一两秒之间。如果是内网部署(私有化),可以联系厂家启用纯局域网模式以降低延迟。
分控与总控:如果你以后买了“分控”设备,代码中的
cmd需要增加outlet(插座位)参数,例如指定outlet_id为 1-8。
通过上述步骤,你可以在 1小时内 完成从设备配网到API首次调用的全过程。如果遇到签名验证失败,请仔细核对参数排序方式(通常是按照ASCII码升序排列)。