CATALOG

芯步的智能硬件开放了HTTP API接口,这意味着你可以用任何支持HTTP编程的语言来扩展设备功能。针对“定时开门”这个需求,核心思路就是写一个定时脚本,到点调用开关接口。下面从接口原理、签名算法到几种语言的实现示例,提供一个完整的方案。

一、 技术背景与原理

芯步的智能触摸墙壁开关(以及同系列门禁产品)核心是一个继电器。在安防门禁场景中,它通常与电磁锁电插锁串联在电源回路中。通过控制继电器的通断(即开关的“开”与“关”),即可实现锁的通电吸合/断电释放。

二次开发的核心是利用其提供的 HTTP API。通过向其 API 端点发送特定的 JSON 指令,可以实现:

  1. 即时开门:发送 {"power": "1"}{"power1": 1} 让开关瞬间接通(开锁),配合 pointreset 命令实现脉冲开门。

  2. 定时任务:利用定时脚本,在特定时间(如 9:00 AM)发送上述指令。

  3. 逻辑联动:配合传感器或其他系统逻辑,实现自动化控制。

二、 核心 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 / power11 (开) / 0 (关)单纯通电/断电。适合控制指示灯或不需要脉冲触发的特殊设备。
point (先通后断)3000 (毫秒)脉冲开锁(推荐)。开关立即闭合(开锁/断电),持续3秒后自动断开(闭锁/通电)。适合电插锁(断电开锁型)。
reset (先断后通)2000 (毫秒)脉冲开锁(推荐)。开关立即断开(开锁),持续2秒后自动闭合。常用于控制门禁继电器模块。

推荐方案:对于一般门禁系统,使用 pointreset 命令比单纯的 power 更安全。因为即便代码因Bug未发送“关锁”指令,门锁也会在几秒后自动物理复位,不会一直处于开门状态。

四、 方案落地实施步骤

第一步:环境准备与凭证获取

在芯步控制台(Console)中:

  1. 获取 AppIDAppSecret

  2. 获取 Device ID(设备ID)。

第二步:编写核心控制脚本(代码示例)

您可以选择任意后端语言实现。为了方便部署定时任务,推荐使用 PythonShell

方案 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 自动关门/脉冲:

五、 高级拓展与集成技巧

如果您不想依赖外部服务器,或者担心网络延迟,可以利用芯步设备的特性:

  1. 设备本地局域网控制芯步的智能触摸墙壁开关支持 局域网私有化 部署。如果您的服务器(如 HomeAssistant、Node-RED)与设备处于同一 LAN 段,可以尝试直接调用设备本地 IP 的 API(具体端口和路径请查阅产品手册)。这可以降低延迟并解除对云端网络的依赖。

  2. “保持”功能利用如果您是控制会议室或公共区域,可以使用 power1 命令配合状态保持。但对于门禁,pointreset 依然是首选,因为它们提供了自动复位机制,防止门一直开着

六、 总结

通过芯步提供的开放 HTTP API,实现“定时开门”并不复杂。开发者只需要掌握 签名生成算法脉冲指令 (point/reset) 的用法。

推荐实施路径:

  1. 在芯步控制台拿到 AppIDAppSecretDeviceID

  2. 使用 PythoncURL 脚本封装 API 请求。

  3. 在服务器上设置 Cron 定时任务

  4. (进阶)若需更低延迟,探索 局域网直连 模式。

这一方案利用了现有硬件资源,无需布线或购买专用网关,通过软件编程即可高效地将普通门禁纳入自动化管理体系中。