一、写在前面:为什么需要屏蔽按钮?
在实际应用中,很多场景需要禁止本地按钮操作。比如:
公共区域的用电设备:防止路人随意开关
远程控制的工业设备:本地误触可能引发安全隐患
儿童房或特殊场所:避免熊孩子乱按
自动化联动场景:设备状态应由系统自动控制,本地干预会打乱逻辑
芯步AC3-10A计量版(型号UNI-TDQ-AC3-10A-P)正好支持“按钮动作可自定义、可屏蔽”这个功能。下面咱们就聊聊怎么通过二次开发把它实现出来。
二、先了解一下AC3-10A的开放接口
AC3系列产品开放的是标准的HTTP接口,也就是说,任何能发HTTP请求的语言(Python、Java、JS、Shell……)都能和它通信。
控制设备的核心接口长这样:
请求体是一个JSON,结构如下
常见的命令有这么几种:
| 命令类型 | 说明 | 示例值 |
|---|---|---|
| power | 控制通断 | "1"开 / "0"关 |
| point | 先通后断(延时断开) | "3000"(毫秒) |
| reset | 先断后通(延时重启) | "3000"(毫秒) |
这些都是常规操作,但要实现“屏蔽按钮”,我们需要看另外一个接口——设备配置类接口。
三、核心方案:修改按钮行为配置
AC3-10A的物理按钮本质上是一个触发源,它的行为可以通过配置参数来改变。根据官方文档描述,“按钮动作可自定义、可屏蔽”,意味着我们可以通过API把按钮的动作设置为“无响应”或“空操作”。
方案思路
简单说就是:不让物理按钮绑定任何有效动作。这样按下去,设备内部处理了按键事件,但没有下发任何执行指令,按钮就成了“摆设”。
具体怎么做?
第一步:查阅按钮配置的参数名
虽然官方没有在公开文档里把所有配置参数列全,但通常这类设备的按钮配置对应参数名类似 button_action、key_function、local_control 等。先从控制台或者设备详情接口获取设备的能力集。
第二步:调用设备配置修改接口
配置接口的路径一般是 /device/set 或 /device/config,类似这样:
第三步(可选):设置恢复密码
某些场景下,你可能希望“屏蔽按钮”不是永久性的,而是可以通过特定方式(比如长按10秒、连续按5次)恢复。这个可以结合设备的自定义联动功能来实现。
四、实战示例:Python完整脚本
下面给一个稍微完整的示例,包含了按钮屏蔽和恢复功能:
五、注意事项和小技巧
参数名以官方文档为准:上面用的
button_action是我根据常见命名推测的,实际使用请先查一下官方API文档,确认准确的参数名。可以先用控制台或抓包工具看看正常配置下发时的字段名。计量版的特点:既然是计量版(带-P后缀),它还能实时上报功率、电流、电压数据。你可以做个联动:当检测到功率异常波动时自动屏蔽本地按钮,防止危险操作。
固件版本差异:不同固件版本可能对按钮配置的支持程度不同。如果发现配置不生效,可以先升级设备固件到最新版。
组合玩法:按钮屏蔽可以配合其他功能一起使用。比如搭配“安全功率设置”——超过设定阈值自动断电,同时屏蔽按钮防止强行合闸。
调试
先用Postman之类的工具测试API,确认能正常调用
改配置前后分别调用设备信息接口,对比配置是否真的变了
如果按钮还是能控制,试试发送
{"local_control": "disabled"}这类配置
六、总结
AC3-10A计量版开放HTTP接口,二次开发门槛不高。要实现“屏蔽按钮”,核心就两步:
找到按钮行为配置对应的参数
通过配置接口将该参数设为“无动作”或“禁用”
搞定之后,你的设备就彻底“听话”了——只听远程指令,无视本地操作。这招在无人值守、远程集中控制的场景下特别好用。
如果在实际开发中遇到参数名不确定的问题,直接联系芯步的技术支持要一份完整的API文档,或者进控制台看接口返回的字段信息。祝开发顺利!