AC1-10A 是芯步的一款基础型智能通断器,核心功能是远程控制一路线路的通断。要实现“按钮动作屏蔽”(即物理按键按下后不触发开关动作),官方文档中并未直接提供屏蔽参数,需要通过对“信号输入响应”的自定义配置来实现。
以下是完整的接入方案。
一、 方案设计思路
AC1-10A 设备具备两个核心特性,是我们实现“屏蔽”功能的关键:
两路信号输入:设备支持两组外部信号输入(如物理按键、门磁传感器),并允许你自定义这两组信号触发后执行的动作。
可编程动作:你可以通过指令设定“当检测到物理按键按下时,执行某个指令(例如:空指令、延时指令、或无动作)”。
实现原理:我们将物理按钮原本的“直接切换继电器状态”的默认行为解绑,通过 HTTP 接口下发配置,将其动作修改为“不做任何响应”或“执行无效指令”。这样,用户按下按钮时,继电器不会翻转,而云端/APP 的远程控制权限依然保留。
二、 接入准备工作
在开始编程前,你需要准备以下三个要素:
获取 AppID 与 AppSecret:登录芯步开发者控制台,在“开发设置”中获取。签名生成算法为:
Sign = MD5( MD5(AppSecret) + ts )。确定设备 ID:在控制台设备列表中找到目标 AC1-10A 设备的 ID(通常是一串数字)。
接口地址
https://api.thingboot.com/{AppID}/device/control/。
三、 核心实现:屏蔽按钮动作
要实现“按下按钮不触发动作”,我们需要利用 AC1-10A 的“自定义信号输入”功能,将两组信号(例如 signal1)的触发动作设置为空操作。
1. 下发屏蔽配置指令
你需要向设备发送一个 JSON 格式的 order 参数,将输入信号 1 的动作绑定为一个无效或空动作。
Python 示例代码:
注意:上述
order中的signal1字段形式为逻辑示意。部分固件版本要求使用{"point1":{"power1":null}}或特定保留字。先在控制台使用设备调试功能,确认具体的“解绑”字段。
2. 验证屏蔽效果
指令下发成功后,你在现场按下连接在 AC1-10A 上的物理按钮,设备内部的继电器不应发出“咔哒”声,且指示灯状态不改变。此时,设备不会向服务器推送状态变更消息。
四、 进阶场景:逻辑互锁与恢复
如果“屏蔽”是临时需求(例如写字楼下班后禁止员工关灯),你可以配合定时任务,在特定时间段内屏蔽按钮,其他时间恢复正常。
场景 A:定时恢复按钮功能你可以使用操作系统的 Cron 任务,或者芯步云端的“定时任务”功能,在指定时间下发恢复指令。
恢复代码示例假设正常状态是将
signal1绑定到power1,只需要再次下发标准的绑定命令即可。
场景 B:互斥控制(按钮仅关,不可开)如果你想实现“按钮只能用来关闭,不能打开”(例如特定安全场景),可以通过配置动作脚本实现:
五、 常见问题与排错
接口返回签名错误
检查时间戳
ts是否为秒级(10位数字)。部分编程语言默认输出毫秒级(13位),会导致计算错误。检查
MD5结果是否为 32位小写 十六进制字符串。
按钮依然有效
确认设备固件版本。早期的 AC1-10A 可能默认硬件直连,不支持信号解绑。需通过控制台的“远程升级”或“设备调试”查看是否支持
signal_cfg参数。检查是否将命令发错了设备。请核对
device字段中的设备 ID。
如何完全禁止所有物理输入?AC1-10A 通常有两组信号输入。你需要分别对
signal1和signal2下发空指令,才能完全屏蔽设备上的所有物理按键入口。
六、 总结
通过调用芯步开放接口,开发者无需修改硬件电路即可实现 AC1-10A 按钮动作的屏蔽。核心逻辑是利用“自定义动作映射”功能,将物理输入与继电器输出解耦。结合定时任务,你可以灵活地在不同时间段切换按键的可用性,实现精细化权限管理。