芯步的智能硬件开放了HTTP API接口,这意味着你可以用任何支持HTTP编程的语言来扩展设备功能。针对“定时开门”这个需求,核心思路就是写一个定时脚本,到点调用开关接口。下面从接口原理、签名算法到几种语言的实现示例,提供一个完整的方案。
一、 技术背景与原理
芯步的智能触摸墙壁开关(以及同系列门禁产品)核心是一个继电器。在安防门禁场景中,它通常与电磁锁或电插锁串联在电源回路中。通过控制继电器的通断(即开关的“开”与“关”),即可实现锁的通电吸合/断电释放。
二次开发的核心是利用其提供的 HTTP API。通过向其 API 端点发送特定的 JSON 指令,可以实现:
即时开门:发送
{"power": "1"}或{"power1": 1}让开关瞬间接通(开锁),配合point或reset命令实现脉冲开门。定时任务:利用定时脚本,在特定时间(如 9:00 AM)发送上述指令。
逻辑联动:配合传感器或其他系统逻辑,实现自动化控制。
二、 核心 API 接口解析
要实现二次开发,我们主要依赖 “设备控制” 接口。
1. 请求地址与签名机制
URL:
https://api.thingboot.com/{AppId}/device/control/Method: POST
鉴权参数 (Query String):
ts: 当前 UNIX 时间戳(秒)。sign: 签名。算法为md5( md5(AppSecret) + ts )。
Header:
Content-Type: application/json
安全性说明:该签名机制确保了每次请求都是合法且未被篡改的。动态时间戳
ts防止了重放攻击。
2. 请求体 (Body) 结构
device: 设备的唯一 ID。
order: 指令 JSON 对象。这是控制逻辑的核心。
三、 “定时开门”逻辑设计与指令选择
针对门禁场景,普通开关控制可能不够用,我们需要根据不同锁具类型选择指令:
| 指令类型 (Order Key) | 指令值示例 | 适用场景与逻辑描述 |
|---|---|---|
| power / power1 | 1 (开) / 0 (关) | 单纯通电/断电。适合控制指示灯或不需要脉冲触发的特殊设备。 |
| point (先通后断) | 3000 (毫秒) | 脉冲开锁(推荐)。开关立即闭合(开锁/断电),持续3秒后自动断开(闭锁/通电)。适合电插锁(断电开锁型)。 |
| reset (先断后通) | 2000 (毫秒) | 脉冲开锁(推荐)。开关立即断开(开锁),持续2秒后自动闭合。常用于控制门禁继电器模块。 |
推荐方案:对于一般门禁系统,使用 point 或 reset 命令比单纯的 power 更安全。因为即便代码因Bug未发送“关锁”指令,门锁也会在几秒后自动物理复位,不会一直处于开门状态。
四、 方案落地实施步骤
第一步:环境准备与凭证获取
在芯步控制台(Console)中:
获取 AppID 和 AppSecret。
获取 Device ID(设备ID)。
第二步:编写核心控制脚本(代码示例)
您可以选择任意后端语言实现。为了方便部署定时任务,推荐使用 Python 或 Shell。
方案 A:Python 实现(最适合复杂逻辑)Python 脚本逻辑清晰,易于维护,且可以方便地扩展为 Web 服务或集成到 HomeAssistant 中。
方案 B:Shell + cURL 实现(最轻量)适合直接在路由器、OpenWrt 或 Linux 服务器上通过 Crontab 执行。
Reference: 签名生成逻辑参考自官方示例,Shell 控制逻辑参考社区实现。
第三步:实现定时任务 (Cron Job)
有了上述脚本,我们需要一个“触发器”来按计划执行它。最常用的工具是操作系统的 Cron(Linux/macOS)或 任务计划程序(Windows)。
示例:配置 Cron (Linux)假设我们将脚本保存为 /home/pi/control_door.py,并希望每天早上 8:00 自动开门,晚上 18:00 自动关门/脉冲:
五、 高级拓展与集成技巧
如果您不想依赖外部服务器,或者担心网络延迟,可以利用芯步设备的特性:
设备本地局域网控制芯步的智能触摸墙壁开关支持 局域网 或 私有化 部署。如果您的服务器(如 HomeAssistant、Node-RED)与设备处于同一 LAN 段,可以尝试直接调用设备本地 IP 的 API(具体端口和路径请查阅产品手册)。这可以降低延迟并解除对云端网络的依赖。
“保持”功能利用如果您是控制会议室或公共区域,可以使用
power1命令配合状态保持。但对于门禁,point和reset依然是首选,因为它们提供了自动复位机制,防止门一直开着。
六、 总结
通过芯步提供的开放 HTTP API,实现“定时开门”并不复杂。开发者只需要掌握 签名生成算法 和 脉冲指令 (point/reset) 的用法。
推荐实施路径:
在芯步控制台拿到
AppID、AppSecret、DeviceID。使用 Python 或 cURL 脚本封装 API 请求。
在服务器上设置 Cron 定时任务。
(进阶)若需更低延迟,探索 局域网直连 模式。
这一方案利用了现有硬件资源,无需布线或购买专用网关,通过软件编程即可高效地将普通门禁纳入自动化管理体系中。