芯步的50A智能断路器开放了标准HTTP接口,可以用任何编程语言通过简单的API调用实现远程通断控制。下面是一个完整的二次开发解决方案。
解决方案:基于芯步开放接口二次开发50A智能限流断路器实现远程通断控制
一、 准备篇
在动手写代码之前,我们需要确认硬件和账号权限已经就绪。
硬件确认
设备型号:请确保你的设备是芯步的 UNI-DLQ-M-50A 型号。这款产品支持WiFi连接(仅支持2.4G频段),不需要买额外的网关,只要给它通上电,它就能自己连网。
核心参数:它是50A的大功率版本,阻性负载最大支持10000W。如果你的项目是控制电机、空调这类感性负载,功率需要降额到1700W以内。
账号与环境准备
注册账号:去芯步官网注册一个开发者账号,登录到“工作台”。
获取密钥:在“开发设置”里找到两个关键字符串:AppID(应用ID)和 AppSecret(应用密钥)。这两个东西相当于你调用接口的账号和密码,不要泄露给无关的人。
设备联网:按照说明书,用官方App把断路器配网绑定了。你可以在后台的设备列表里看到它的 Device ID(设备编号)。
二、 接口原理篇
芯步的接口设计得比较“简单粗暴”,走的是标准的 HTTP POST 请求。
你不需要懂底层的复杂协议,只需要记住:向一个固定的网址,发一段JSON文本。
请求地址
http(s)://api.thingboot.com/{你的AppId}/device/control/核心参数:只需要传两个东西:
device(设备ID) 和order(命令)。
三、 实战开发篇
想要“远程通断控制”,核心就是搞定 签名计算 和 发送命令。签名验证是很多人在开发时比较容易卡住的环节。
1. 重点:签名算法为了安全,接口每次请求都需要一个动态签名(sign)。很多刚接触API的朋友在这一步会觉得有点绕,我拆解一下:
第一步:把你刚才拿到的
AppSecret做一次 MD5 加密,得到一个32位的字符串(记作Sec_MD5)。第二步:获取当前的Unix时间戳(秒数,例如 1714352400,记作
ts)。第三步:把
Sec_MD5和ts拼接起来,再整体做一次 MD5 加密,结果就是sign。
口语化人话版:就是对密码加密一次,加上当前时间,再一起加密一次。这样每次请求的密码都不一样,防止被别人破解。
2. 代码怎么写?
假设你用的是 Python 写后台脚本,代码如下:
3. 如果你用的是Shell脚本(比如在OpenWrt路由器里)有时候我们想在Linux服务器或路由器上直接控制,用 curl 命令也很方便。
4. 不止是通断,还有“计量”与“限流”你提到了要实现“计量”和“限流”功能,这需要稍微多走一步:
如何获取电量数据(计量)设备不会主动推送数据,需要你主动去查询。你需要调用 “查询设备状态” 的API接口。
通常你会拿到一个包含电压、电流、功率的JSON串。
小技巧:如果你要做实时监控,记得做个定时任务(比如每5秒查询一次)去轮询,然后存入数据库,做成图表给用户看。
如何实现“限流”这其实是一个软件逻辑,而不是硬件指令。
你可以通过接口轮询当前的实时电流数值。
设定逻辑:判断
if 当前电流 > 50A:调用上面的断开接口{“power”: 0}。:为了避免频繁通断损坏设备,触发了限流之后,最好设置一个“闭锁时间”(比如5分钟后才能再次尝试合闸)。
四、 特色功能与进阶玩法
1. 定时任务如果你不想每次都自己写代码去关,可以利用接口里的“保持”或“定时”参数。在一些芯步的固件里,支持直接在命令里带时间参数,比如 “reset”:3600000 表示接通后1小时自动断开(具体需确认产品手册),这比你自己在服务器上写定时任务要靠谱得多。
2. 批量控制如果你有50个电表箱,想一键全开:你可以用 device 参数传多个ID,用逗号隔开,例如 device=“820720,820721,820722”,这样一条指令就能搞定全楼断电,非常方便。
3. 集成到BPM系统你可以把这几个HTTP请求封装成一个简单的 Python SDK 或 Java Jar包。
工单系统联动:当有人在微信小程序支付了电费 -> 你的后端收到支付回调 -> 调用
{“power”: 1}-> 用户来电了。告警通知:如果检测到电压异常或过载跳闸,可以在你的业务系统里自动发一条短信给管理员。
五、 避坑指南
签名不对(401/403错误)
检查时间戳
ts,服务器时间和你电脑时间误差不能太大(通常几百毫秒内)。如果你的电脑时间慢了一分钟,肯定报错。检查MD5是32位小写。
命令发了没反应
确认设备在线:看看设备指示灯是不是常亮(或呼吸状态),如果快闪说明掉线了。
确认
DeviceID是字符串还是整型,参考API文档来。
50A大功率注意事项
这款设备是导轨式安装,直接接在入户电箱里的。
由于电流大,接线时 螺丝必须拧紧,虚接会导致发热,这是电气安全的大忌。
感性负载:如果控制的是中央空调外机或大电机,由于启动电流很大(可能是额定电流的5-7倍),在命令里增加延时吸合逻辑,或者直接把这个断路器当总闸用,尽量不频繁带载分断。
总结
芯步的这个50A断路器开发门槛很低,核心就是把 AppID + AppSecret + DeviceID + 时间戳 算出一个签名,然后往指定URL POST 一个 {“power”: 1} 的JSON数据就行。
你可以把这个逻辑集成到任何后端语言里,配合轮询查询电流数据,就可以轻松实现“超限自动跳闸”、“远程缴费通电”等高级功能。