25A远程开关控制器的二次开发核心在于利用芯步开放的HTTP API,将设备接入自有业务系统。以下方案涵盖接口对接、签名计算、指令下发及自定义联动逻辑的实现路径。
1. 解决概述
1.1 产品背景
芯步智能断路器25A(UNI-DLQ-25A)是一款支持WiFi直连的大功率远程控制设备。它无需网关,支持2.4G无线网络,并开放了完整的HTTP API接口 。该设备适用于工业控制、智能农业、智慧楼宇等需要远程通断大电流线路的场景。
1.2 二次开发目标
本方案的目标是指导开发者如何利用开放接口,结合业务需求(如传感器触发、定时策略、系统间联动),实现超越标准App的自定义联动逻辑控制。例如:当温度传感器超过阈值时自动断电,或根据外部系统订单状态自动恢复供电。
1.3 技术特性
通信协议:HTTP/HTTPS 或 MQTT
数据格式:JSON
核心命令:继电器通断控制、状态查询、临时锁定/保持
响应速度:指令下发到设备动作约80-120ms
2. 二次开发环境准备
在开始编码前,需要完成以下基础配置,这部分工作主要在芯步开放平台完成。
2.1 账号与设备初始化
注册/登录:访问芯步开放平台,完成开发者注册。
获取凭证:进入“物联网控制台” -> “开发设置”,获取以下关键信息:
AppID:应用唯一标识。
AppSecret:开发者密码,用于生成签名(Sign)。
注意:平台开放接口永久免费,无额外费用。
设备配网:给25A断路器通电,按照《产品手册》引导将设备配置到本地WiFi网络。记录下设备详情页中的 Device ID(设备ID),后续API调用需要用到 。
2.2 接口调试模式
调试模式:开发初期,可在控制台“开发设置”中开启“调试模式”。开启后系统暂时不校验
sign和ts,方便开发者快速验证指令格式 。生产模式:正式上线前,请一定要关闭调试模式,启用标准的签名校验机制以保证安全性。
3. API接口深度解析与调用实现
联动逻辑的核心在于通过代码发送HTTP请求。所有控制操作均指向以下接口端点。
3.1 请求端点与鉴权
请求URL
http(s)://api.thingboot.com/{AppID}/device/control/鉴权参数:需在URL中携带
sign和ts。
3.2 签名生成规则(Sign)
为了保证接口安全,所有请求必须携带动态生成的签名。算法逻辑如下:
获取当前时间戳
ts(10位秒级,如1715385600)。计算
md5(AppSecret)得到sign_key。拼接字符串
str = sign_key + ts。计算最终签名
sign = md5(str)。
代码示例(Python):
3.3 核心控制指令集
针对25A断路器,根据同类产品命令格式推测,其主要控制参数集中在power或power1字段。以下列举常用的JSON指令格式 。
1. 基础通断控制
2. 批量与多路控制若设备支持多路(如4路控制器模式可使用批量指令),格式如下:
3. 临时联动逻辑(脉冲/点动模式)在自定义联动中,经常需要“触发一次”而不是“持续开/关”,例如按一下开门后自动关闭。这时使用先通后断指令非常合适:
3.4 状态同步机制(重要)
芯步的接口返回code:200仅代表平台已接收指令,不代表设备已执行成功(设备可能离线)。为了保证联动的可靠性,采用以下架构:
异步消息推送:配置消息服务器接收设备的状态回调。只有当收到设备状态变更的推送时,才确认控制成功。
状态查询:如果没有配置消息服务器,可在发送指令后延迟200ms调用设备状态查询接口,确认当前状态值。
4. 自定义联动逻辑设计实战
本节将结合实际业务场景,阐述如何将25A断路器嵌入复杂的自动化系统中。
4.1 第一种场景:基于环境监测的紧急制动联动
需求:在机房或充电桩场景,若温度传感器检测到温度过高,自动切断25A断路器电源。
逻辑流程
数据捕获:业务服务器接收到来自温度传感器的告警Webhook(HTTP回调)。
条件判断:代码判断温度值 > 70℃。
动作执行:调用芯步接口,向25A断路器下发关闭指令。
锁死机制:为了防止温度波动导致反复重启,可以在下发关闭后,利用数据库记录一个“故障锁死”状态,在人工介入前不再接受开启指令。
伪代码实现
4.2 第二种场景:计时租赁/共享设备联动
需求:用户扫码支付后,设备通电X分钟,时间到后自动断电。
逻辑流程
订单触发:支付回调通知服务器,订单支付成功,时长T=30分钟。
通电:服务器调用接口开启25A断路器。
异步延迟任务:服务器不阻塞等待,而是利用消息队列(RabbitMQ/RocketMQ)或Redis过期事件,设置一个30分钟后的延迟任务。
自动断电:30分钟后,延迟任务触发,调用接口关闭断路器。
优化点:为了避免服务器宕机导致永不断电,可以在下发开启指令时,直接利用断路器的内置定时功能(如果固件支持):
4.3 第三种场景:多设备复杂策略(与门/或门逻辑)
需求:一个通风系统需要同时满足“温度过高”且“烟雾浓度未超标”时才启动风扇(接25A)。
逻辑流程
上下文存储:服务端维护当前设备的环境变量状态(内存或Redis)。
策略引擎
收到温度报警(>35度) -> 更新状态为
temp_high=True。收到烟雾数值(<200) -> 更新状态为
smoke_low=True。
联动触发:每次状态更新后执行
if temp_high and smoke_low: start_fan()。恢复逻辑:当任意条件不满足时,执行
stop_fan()。
5. 高级功能与稳定性保障
5.1 局域网直连与私有化部署
芯步设备支持纯局域网工作模式 。对于对公网依赖性低、要求低延迟的内网环境,可以将服务器部署在同一局域网内,直接通过内网IP调用API,不仅速度快,而且不占用公网带宽,断外网也能联动。
5.2 错误码处理
在二次开发中,需要针对常见的返回码编写处理逻辑
502/504:设备不存在或不可用。检查Device ID是否正确,或设备是否已从平台删除。
5009:请求过于频繁。单个设备访问限制为1次/秒,需要在代码中增加限流或重试间隔。
5006:签名错误。请核对AppSecret是否正确,以及时间戳是否为标准的Unix时间戳(秒级)。
5.3 代码架构
开发者封装一个统一的Device Control Class,将签名生成、HTTP请求发送、重试机制、异常捕获封装在一起。在业务代码中,只需要调用 control_device(device_id, action, params) 即可,无需每次处理复杂的通信细节。
6. 总结
通过芯步开放的HTTP接口,对25A断路器进行二次开发来实现自定义联动逻辑是完全可行且高效的。开发者只需掌握关键的签名鉴权和基础的JSON命令组装,即可摆脱App的限制,将物理继电器无缝集成到企业级的业务系统中。无论是智慧农业中的定时灌溉,还是工业自动化中的安全联锁,都可以通过上述方案快速落地。