CATALOG

针对25A远程开关控制器实现按钮屏蔽的核心,主要是利用其开放接口中的参数锁状态保持功能。下面是一份偏实战的解决方案,尽量说得直白一些。

解决方案:用芯步开放接口二次开发,实现25A控制器“按钮动作屏蔽”

一、 先理清思路:我们要屏蔽什么“按钮”?

针对25A智能断路器(型号通常为 UNI-DLQ-25A),它的“按钮”通常指设备外壳上的物理触摸按键或者物理拨杆

在实际场景中,比如智能宿舍、共享自习室、无人值守机房,你肯定不希望现场的人随手一按就把电给断了(导致服务器关机)或者把电给通了(导致还没缴费的人使用电器)。

芯步的25A控制器开放接口里,其实藏着一个很实用的功能:“按钮动作可自定义/可屏蔽”。我们要做的,就是通过API远程下发指令,告诉设备:“从此刻起,无视本地物理按钮的操作”。

二、 核心技术点:这不是“锁”,而是“状态保持”

很多刚接触的朋友以为屏蔽按钮是把按钮“焊死”或禁用,其实在物联网的二次开发里,这叫“状态保持”“本地锁定”

原理很简单:

  1. 正常模式:按一下按钮 -> 设备切换通断状态。

  2. 屏蔽/锁定模式:按一下按钮 -> 设备感应到了 -> 执行逻辑判断(“当前处于锁定状态”) -> 立即恢复原状态也就是你按了开,它瞬间给你关掉;你按了关,它瞬间又给你打开。从用户视角看,就是“按钮失效了”

三、 实战开发步骤(基于HTTP接口)

芯步的接口非常标准,只要有HTTP协议的地方就能跑,不管是PHP、Java、Python还是直接写在单片机里

1. 准备工作:拿到设备的“钥匙”

在做二次开发前,你需要在芯步控制台拿到三样东西:

  • AppID:你的应用ID。

  • AppSecret:你的应用密钥(用于计算签名,保证安全)。

  • Device ID:这个25A设备的唯一ID。

2. 核心代码逻辑:下发“屏蔽按钮”指令

要屏蔽按钮,我们需要找到对应的命令参数。针对25A断路器或者墙壁开关类产品,芯步通常使用 order 字段里的 keep 参数来实现“按钮动作屏蔽”

指令目标: 让设备保持关闭状态,且任何人按物理按钮都无法开启。

请求方式: POST(推荐)或 GETAPI地址:http(s)://api.thingboot.com/{AppID}/device/control/

请求参数(JSON格式):

白话解读这段JSON:

  • "power":0:先确保设备现在是断电状态。

  • "keep":1:开启“自闭锁”功能,也就是不让本地按钮操作生效。

  • "revert":3:如果有人手贱按了按钮,设备会在3秒内强行恢复回原来的状态(也就是关的状态)。

3. 关于签名的简单处理(sign)

芯步为了安全,要求每次请求带签名 sign。计算公式通常是 md5(md5(AppSecret) + ts)如果你是刚上手做二次开发,先去芯步控制台的“开发设置”里,打开“调试模式”(测试环境)。在调试模式下,系统会暂时忽略签名校验,这样你可以先用Postman把逻辑跑通,再去封装正式的签名算法

四、 高级应用:根据不同场景动态切换

仅仅“锁死”是不够的,二次开发的魅力在于逻辑控制。你可以通过服务器端代码实现更聪明的“按钮屏蔽”。

第一种场景:只有管理员能按,普通人不能按

需求:机房重地,只有持有管理App的人按下按钮才生效,普通人按了没反应。实现逻辑

  1. 平时服务器保持发送 {"keep":1} 指令,屏蔽按钮。

  2. 一旦系统检测到管理员在App上点击了“临时解锁”按钮。

  3. 服务器下发 {"keep":0} 指令,恢复按钮功能。

  4. 等待10秒(给管理员手动操作的时间),时间一到,服务器再次下发 {"keep":1}重新屏蔽

第二种场景:计费系统中的“欠费屏蔽”

需求:用于共享充电桩或售货机,用户没扫码付费,按按钮绝对不开。实现逻辑

  1. 用户未付费:服务器循环下发 {"power":0, "keep":1},确保设备强制关闭且按钮失效。

  2. 用户扫码付款成功:支付回调触发你的后端。

  3. 后端下发 {"keep":0} 解锁按钮,再下发 {"power":1} 接通电源。

  4. 倒计时结束:再次下发 {"keep":1} 锁定按钮并断电。

五、 避坑指南(稍微提醒一下)

  1. 确认固件版本:虽然25A断路器大多支持“按钮动作自定义”,但如果你的设备是旧版固件,可能需要在控制台升级一下固件,否则 keep 参数可能不生效

  2. 断网情况:这个屏蔽逻辑是基于云端下发指令的。如果设备WiFi断了(断网),本地逻辑通常还是会生效(即断网后本地按钮可能恢复控制权)。如果你的场景要求比较高(如断网也必须屏蔽),选购支持边缘计算/局域网通信的版本,或者在本地网关里写死逻辑。

  3. 先测后上:在正式环境部署前,一定先用Postman把接口调通。芯步的返回码 200 才是成功,看到 50xx 通常是指令格式不对

总结

通过芯步的开放接口二次开发25A控制器,只需要封装一个简单的HTTP请求,利用 {"keep":1, "revert":3} 这个“状态保持”指令,就能优雅地实现物理按钮的屏蔽。把这套逻辑接入你的计费系统或管理后台,就能实现“远程总控、本地无效”的硬核管理了。