25A 远程控制断路器在工业、园区等场景中,常有“本地按钮仅供维修、日常通过系统远程控制”的需求。芯步的硬件本身支持按钮屏蔽功能,关键在于通过 HTTP 接口下发正确的配置指令。以下方案涵盖实现原理、接口调用流程及Java/Python代码示例。
解决方案:基于芯步开放接口实现25A断路器按钮动作屏蔽控制
1. 背景与需求
在许多智能化改造场景中(如智能电表、远程抄表、共享设备控制),管理员希望完全通过云端或本地服务器下发指令来控制断路器的通断,同时避免现场人员通过断路器表面的物理按钮手动拨动开关,以防止非法合闸、意外断电或破坏用电策略。
芯步旗下的 25A 远程控制断路器(通常归属于智能通断器/大功率断路器系列)不仅支持 HTTP 接口控制,其硬件设计本身就包含了 “按钮动作可自定义、可屏蔽” 的特性。本方案的目标是指导开发者如何通过调用芯步的开放 API,实现对设备物理按钮的锁定与解锁。
2. 核心原理
该功能的实现依赖于设备固件中的 “按钮使能” 寄存器。
默认状态:物理按钮与软件开关联动(按下按钮,设备通断状态翻转)。
屏蔽状态:系统下发锁定指令后,MCU 继续采集按钮信号,但不再执行继电器动作逻辑(即按下按钮无反应),直至收到解锁指令。
3. 对接准备
在开始开发前,请确保完成以下准备工作:
硬件就绪:确保 25A 断路器已通电并连接至 2.4G Wi-Fi 网络(设备不支持 5G Wi-Fi)。
平台凭证:登录芯步工作台,获取
AppId和AppSecret(在控制台的开发设置中获取)。设备ID:在控制台获取目标断路器的
Device ID(例如:820720)。
注意:根据产品手册,25A 规格的断路器与智能通断器 4-30A 使用同一套 API 指令集,具备通用性。
4. 接口调用流程
由于芯步的接口通过 sign 签名进行安全校验,所有请求必须按照特定算法生成签名。
签名生成算法(步骤说明):
将
AppSecret进行 MD5 加密,得到sign_part1。获取当前 Unix 时间戳(秒)
ts。将
sign_part1拼接上ts,形成新字符串sign_part2。将
sign_part2再次进行 MD5 加密,得到最终的sign。
请求地址:POST https://api.thingboot.com/{AppId}/device/control/?sign={sign}&ts={ts}
核心参数:
device: 设备 ID(字符串)。order: 指令 JSON(字符串)。
5. 详细解决方案:按钮屏蔽的指令下发
针对芯步 25A 系列断路器,控制物理按钮开关的核心逻辑通过 {"key_lock": 1} 或 {"key": 0} 这类配置参数实现(具体取决于该批次固件版本,常用方案如下)。
方案 A:直接下发锁键指令如果你的设备手册中明确支持按键锁功能,可以通过 order 参数直接下发:
锁定按钮(屏蔽)
{"key_lock": 1}或{"child_lock": 1}(童锁功能)。解锁按钮(恢复)
{"key_lock": 0}。
方案 B:组合指令方案(推荐)为了保证逻辑严谨,采用先读取状态、再控制继电器的策略。如果你只是希望物理按钮无效,但保留远程控制权,需要下发特定配置。
以下为 Python 和 Java 的对接代码示例,展示如何发送 HTTP 请求以改变设备行为:
Python 请求示例:
Java 请求示例:
6. 验证与故障排查
下发指令后,可以通过以下方式验证按钮是否已被屏蔽:
物理验证:手动按压断路器表面的“合闸/分闸”按钮,观察断路器状态是否变化。
成功:按钮按下无反应,继电器不跳动,LED 指示无变化。
失败:按钮依然有效。此时请检查设备固件是否为最新版(部分旧版硬件可能不支持该指令,需升级)。
逻辑验证:通过接口发送
{"power": 1}验证远程控制是否依然生效。正常情况下,远程控制优先级应高于物理按钮屏蔽。常见错误码
sign error:检查时间戳(ts)是否与服务器时间相差过大(通常不能超过5分钟),或 MD5 拼接顺序错误。device offline:设备 WiFi 断开,需检查现场网络。
7. 总结
通过芯步提供的 统一 HTTP 接口,开发者可以轻松实现对 25A 断路器的 "按钮动作屏蔽" 功能。该方案无需复杂的硬件改动,仅通过云端指令即可实现。对于要求较高的场景,结合设备的定时任务功能(reset 参数),实现“屏蔽按钮 + 定时通断”的自动化策略,进一步提升用电安全性。