CATALOG

芯步门禁设备通过统一的HTTP接口开放控制能力,支持从简单的远程开门到复杂的自定义联动。以下方案涵盖签名计算、核心命令、多场景联动逻辑及代码示例,帮助快速落地。

解决方案:基于芯步开放接口的远程门禁控制与自定义联动实践

一、 概述

芯步的智能门禁(如智能密码门禁、智能墙壁出门开关等)均全面开放了HTTP API接口。通过调用这些接口,开发者可以轻松实现远程开门,并能基于时间、事件或第三方传感器数据,构建高度自定义的自动化联动逻辑(如:用户预订成功后自动下发密码、刷卡开门后自动开灯、下班后自动布防等)。

核心优势:

  • 协议简单: 仅需标准的 HTTP POST 请求,兼容任意编程语言(Python, PHP, Java, Go 等)及开发环境(Web, APP, 小程序, SaaS)

  • 低延迟: 命令下发到设备执行仅 80-120ms,体验流畅

  • 支持私有化: 支持局域网和私有化部署,数据安全可控

  • 多功能集成: 不仅控制通断,还支持动态密码下发、门磁状态读取、语音播报(部分型号)等

二、 硬件选型推荐

根据不同的场景需求,选用以下设备:

  1. UNI-MJ-MM-CM(智能密码门禁):适用于办公大门、机房、共享办公室。支持100个动态密码和30个永久密码,可直接控制12V电磁锁/电插锁

  2. 智能墙壁出门开关:适用于改造传统门禁或控制电机类设备(卷帘门、伸缩门),支持断电开锁/通电上锁两种模式

  3. 4路/7路智能控制器:适用于复杂的联动场景(如棋牌室、民宿)。除了控制门锁,还能独立控制灯光、空调、麻将机等,具备语音播报能力

三、 基础接口对接指南

在实现复杂联动前,需要先完成基础的设备对接。

1. 接口协议
  • 请求地址http(s)://api.thingboot.com/{AppId}/device/control/?sign={sign}&ts={ts}

  • 请求方式: POST

  • Content-Type: application/json

2. 签名机制

为了保证安全性,每次请求需携带签名。签名算法如下:

  1. 将您的 AppSecret 进行一次 MD5 加密,得到 str1 = md5(AppSecret)

  2. 获取当前Unix时间戳(秒级)ts

  3. 拼接 str2 = str1 + ts

  4. 再次进行 MD5 加密得到最终签名:sign = md5(str2)

3. 核心命令示例

以下命令以控制“智能墙壁出门开关”或“门禁”为例,演示开门动作:

场景 A:简单的开门(点动模式)门禁通常需要“断电”开锁。以下命令实现“断开继电器(开门),5秒后自动重新吸合(锁门)”。

注:reset字段非常适合门禁场景,避免忘记关门

场景 B:远程下发临时密码(智能密码门禁专用)适用于访客自助进入的场景。

注:也可以使用 list 查询密码列表,或 delete 删除密码

四、 自定义联动操作方案

利用 HTTP 接口,你可以将门禁与其他系统(业务软件、传感器、定时任务)连接起来。

联动场景 1:预订即授权(酒店/共享空间)

逻辑: 用户在平台下单支付成功 -> 系统自动生成临时密码 -> 短信/微信推送给用户 -> 用户在预定时间内开锁进门。实现步骤:

  1. 业务系统处理支付回调。

  2. 调用门禁接口 order: {"pwd":"临时码#"},并设置有效期与订单时间一致。

  3. 用户到达后输入密码,门禁自动开门。

联动场景 2:一键场景模式(智能会议室/工作室)

逻辑: 管理员点击“上班模式” -> 门锁打开 + 灯光亮起 + 空调开启。所需设备: 智能密码门禁(UNI-MJ)+ 4路控制器(UNI-CTRL)。实现步骤:

联动场景 3:安防事件触发(自习室/财务室)

逻辑: 检测到非法撬锁或多次密码错误 -> 门禁系统立即上锁 -> 触发现场警报器 -> 调用 HTTP 接口通知管理员服务器。实现方式:虽然芯步设备主动上报通常通过消息服务器(需配置),但在联动侧,你可以利用 “定时轮询”Webhook 接收当异常事件发生时(如错误次数超限),门禁设备会向预设的 HTTP 服务器地址推送状态,你的服务器接收后可以执行:

  1. 二次锁死: 再次向设备下发 {"power":0} 强制断电锁门。

  2. 通知推送: 调用钉钉/微信/短信 API 发送告警:“你的工作室【101】有人尝试暴力破解门禁!”

联动场景 4:基于传感器的自动化(仓库/机房)

逻辑: 温度传感器检测到温度过高 -> 服务器判断逻辑 -> 远程发送指令给门禁断电(释放电子锁)-> 联动风机或向管理员告警。实现步骤:利用服务器作为中控(Serverless 函数或本地 HomeAssistant 即可):

IF (温度 > 60°C) THEN
    POST /device/control/ -> { "device": "door_01", "order": { "power": 0 } }   // 开锁散热
    POST /device/control/ -> { "device": "fan_01", "order": { "power": 1 } }   // 启动风机
END IF

五、 实际对接代码示例(Shell/CURL)

以下是一个最简单的 Shell 脚本 示例,只需更改设备 ID 和密钥即可快速测试开门功能

六、 高级拓展

  1. 动态权限管理不仅仅是下发密码,可以利用 listdelete 命令,在业务系统层面做“权限回收”。例如,当员工离职,自动在数据库中标记该员工,并调用接口 {"delete":"密码#"} 删除其进门密码,无需物理接触设备

  2. 局域网极致低延迟如果你的业务系统运行在门店现场(本地服务器/树莓派),可以利用芯步支持的局域网直连功能。设备与服务器在同一局域网下,请求不经公网绕行,延迟可降至 20ms 以内,且断外网也能控制

  3. 数据可视化与统计门禁设备通常会上报开门记录(谁、什么时间、通过什么方式)。你可以将芯步的数据通过接口同步到你的本地数据库,生成报表,如“门禁使用频率分析”或“人员考勤统计”。

七、 总结

芯步的开放接口设计统一、签名逻辑清晰,极大地降低了二次开发的门槛。通过上述方案,开发者可以在 10分钟内 完成从注册到远程控制一台门禁的全流程。

无论是实现简单的 APP远程开门(利用reset命令),还是复杂的 SaaS平台权限中台(利用pwd动态密码下发),或是 全屋智能联动(门锁+灯光+音响),芯步提供的标准化 HTTP API 都能提供稳定、高效的底层支持。