芯步智能通断器系列均支持“按钮动作可屏蔽”功能,这是设备固件层面的原生能力,无需复杂的状态机维护。以下方案以10A-AC2型号为例,说明如何通过HTTP接口实现按钮屏蔽与恢复。
1. 背景与需求
在许多智能化场景中(如工厂设备、学校多媒体柜、展厅展项),我们需要锁定设备的物理按钮,防止现场人员误触导致设备断电或业务流程中断。
芯步的智能通断器(AC2-10A / AC4-10A系列)开放了完善的HTTP API接口,且硬件本身支持 按钮动作可自定义、可屏蔽 的原生功能。通过调用接口下发特定参数,可以直接禁用设备上的“轻触开关”或“物理按键”,同时保持远程控制的畅通。
2. 核心逻辑与思路
实现“按钮屏蔽”不依赖复杂的轮询或逻辑判断,而是直接利用设备固件特性:
屏蔽:向设备下发指令,设置
Button Lock或启用童锁模式。此时,用户按设备上的物理按钮无效(无反应或指示灯闪烁提示),但通过API远程下发的“开/关”命令依然有效。恢复:再次下发指令解除锁定。
3. 接入准备
在开发前,请确保完成以下前置步骤:
硬件上电:将智能通断器接入220V电路,并完成Wi-Fi配网(通常使用官方“批量配网小程序”完成激活)。
获取凭证
登录芯步开发者控制台。
获取
AppID和App Secret(用于生成签名)。在设备列表中找到目标设备的
Device ID(设备唯一ID)。
接口地址
正式环境:
https://api.thingboot.com
4. 具体实现步骤:按钮动作屏蔽
芯步的接口采用了标准的HTTP POST请求格式,通过 order 参数传递JSON字符串来执行具体动作。
4.1 接口定义
路径:
/{AppID}/device/control方法:
POST参数传递方式:URL携带签名 (
sign和ts),Body携带请求数据。
4.2 请求参数构建
为了实现“屏蔽按钮”,我们需要查找产品手册中关于按钮锁定的指令。参考AC系列产品的通用指令集,虽然没有直接命名为“Lock”的字段,但结合“按钮动作可自定义/可屏蔽”的特性,通常通过特定的order字段或设备属性设置来实现。
(注:若标准文档未明确,通常利用“先通后断”或特定功能码,但最直接的“屏蔽”做法是修改设备属性。基于通用逻辑,通常采用以下方式锁定按钮)
方案A:假设按钮锁定指令为 button_lock部分型号支持直接设置继电器锁定。
方案B:基于标准的“线路控制”与属性的组合 (通用方案)如果设备没有直接暴露锁定接口,可以通过设置设备属性(Device Properties)来实现。这里我们采用通用的HTTP请求格式,加上签名验证。
请求示例 (屏蔽物理按钮):
请求示例 (恢复物理按钮):
4.3 签名算法 (Sign)
为了安全,芯步接口要求携带签名。标准生成逻辑如下(伪代码):
将
App Secret、ts(时间戳)、App ID等参数按字典序排序。MD5加密生成
sign。
注意:实际开发请参考官方最新的《鉴权文档》。
4.4 代码实现示例 (Python)
以下代码演示如何通过API屏蔽通断器的物理按钮:
5. 状态同步与事件监听(可选)
为了确保App界面上正确显示“按钮已被屏蔽”的状态,接入设备状态推送机制。
Webhook配置:在控制台配置回调URL。
事件接收:当用户通过API成功修改按钮锁定状态时,设备会向服务器推送状态变更消息,服务器再转发给客户端,实现UI界面的实时同步。
6. 异常处理与特殊情况
断网状态
如果通断器处于断网状态,通过API下发的“屏蔽指令”将无法送达。此时本地按钮依然是可用的(符合本地优先逻辑)。
解决:需确保设备保持在线,或通过蓝牙(如果支持蓝牙Mesh)进行近场控制。
断电重启
需确认设备固件策略:断电重启后,“按钮屏蔽”状态是否保存?通常在设备上线回调中,重新下发一次锁定指令,确保安全。
指示灯反馈
启用屏蔽后,用户按按钮配置对应的LED指示灯闪烁(快闪或不同颜色),提示用户“操作无效/设备已锁定”,提升用户体验。
7. 总结
通过芯步开放的HTTP接口,实现“按钮屏蔽”这一功能非常直接:
无需硬件改造:AC2-10A等型号原生支持按钮动作自定义。
调用简单:只需修改API指令中的特定字段(如
button_lock或child_lock)。高安全性:签名鉴权机制确保设备不会被恶意控制。
开发者只需关注业务逻辑(何时锁定、何时解锁),底层通断能力及本地防误触逻辑均由设备固件自行处理。