芯步门禁设备通过统一的HTTP接口开放控制能力,支持从简单的远程开门到复杂的自定义联动。以下方案涵盖签名计算、核心命令、多场景联动逻辑及代码示例,帮助快速落地。
解决方案:基于芯步开放接口的远程门禁控制与自定义联动实践
一、 概述
芯步的智能门禁(如智能密码门禁、智能墙壁出门开关等)均全面开放了HTTP API接口。通过调用这些接口,开发者可以轻松实现远程开门,并能基于时间、事件或第三方传感器数据,构建高度自定义的自动化联动逻辑(如:用户预订成功后自动下发密码、刷卡开门后自动开灯、下班后自动布防等)。
核心优势:
协议简单: 仅需标准的 HTTP POST 请求,兼容任意编程语言(Python, PHP, Java, Go 等)及开发环境(Web, APP, 小程序, SaaS)。
低延迟: 命令下发到设备执行仅 80-120ms,体验流畅。
支持私有化: 支持局域网和私有化部署,数据安全可控。
多功能集成: 不仅控制通断,还支持动态密码下发、门磁状态读取、语音播报(部分型号)等。
二、 硬件选型推荐
根据不同的场景需求,选用以下设备:
UNI-MJ-MM-CM(智能密码门禁):适用于办公大门、机房、共享办公室。支持100个动态密码和30个永久密码,可直接控制12V电磁锁/电插锁。
智能墙壁出门开关:适用于改造传统门禁或控制电机类设备(卷帘门、伸缩门),支持断电开锁/通电上锁两种模式。
4路/7路智能控制器:适用于复杂的联动场景(如棋牌室、民宿)。除了控制门锁,还能独立控制灯光、空调、麻将机等,具备语音播报能力。
三、 基础接口对接指南
在实现复杂联动前,需要先完成基础的设备对接。
1. 接口协议
请求地址:
http(s)://api.thingboot.com/{AppId}/device/control/?sign={sign}&ts={ts}请求方式: POST
Content-Type: application/json
2. 签名机制
为了保证安全性,每次请求需携带签名。签名算法如下:
将您的
AppSecret进行一次 MD5 加密,得到str1 = md5(AppSecret)。获取当前Unix时间戳(秒级)
ts。拼接
str2 = str1 + ts。再次进行 MD5 加密得到最终签名:
sign = md5(str2)。
3. 核心命令示例
以下命令以控制“智能墙壁出门开关”或“门禁”为例,演示开门动作:
场景 A:简单的开门(点动模式)门禁通常需要“断电”开锁。以下命令实现“断开继电器(开门),5秒后自动重新吸合(锁门)”。
注:reset字段非常适合门禁场景,避免忘记关门。
场景 B:远程下发临时密码(智能密码门禁专用)适用于访客自助进入的场景。
注:也可以使用 list 查询密码列表,或 delete 删除密码。
四、 自定义联动操作方案
利用 HTTP 接口,你可以将门禁与其他系统(业务软件、传感器、定时任务)连接起来。
联动场景 1:预订即授权(酒店/共享空间)
逻辑: 用户在平台下单支付成功 -> 系统自动生成临时密码 -> 短信/微信推送给用户 -> 用户在预定时间内开锁进门。实现步骤:
业务系统处理支付回调。
调用门禁接口
order: {"pwd":"临时码#"},并设置有效期与订单时间一致。用户到达后输入密码,门禁自动开门。
联动场景 2:一键场景模式(智能会议室/工作室)
逻辑: 管理员点击“上班模式” -> 门锁打开 + 灯光亮起 + 空调开启。所需设备: 智能密码门禁(UNI-MJ)+ 4路控制器(UNI-CTRL)。实现步骤:
联动场景 3:安防事件触发(自习室/财务室)
逻辑: 检测到非法撬锁或多次密码错误 -> 门禁系统立即上锁 -> 触发现场警报器 -> 调用 HTTP 接口通知管理员服务器。实现方式:虽然芯步设备主动上报通常通过消息服务器(需配置),但在联动侧,你可以利用 “定时轮询” 或 Webhook 接收。当异常事件发生时(如错误次数超限),门禁设备会向预设的 HTTP 服务器地址推送状态,你的服务器接收后可以执行:
二次锁死: 再次向设备下发
{"power":0}强制断电锁门。通知推送: 调用钉钉/微信/短信 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 和密钥即可快速测试开门功能
六、 高级拓展
动态权限管理不仅仅是下发密码,可以利用
list和delete命令,在业务系统层面做“权限回收”。例如,当员工离职,自动在数据库中标记该员工,并调用接口{"delete":"密码#"}删除其进门密码,无需物理接触设备。局域网极致低延迟如果你的业务系统运行在门店现场(本地服务器/树莓派),可以利用芯步支持的局域网直连功能。设备与服务器在同一局域网下,请求不经公网绕行,延迟可降至 20ms 以内,且断外网也能控制。
数据可视化与统计门禁设备通常会上报开门记录(谁、什么时间、通过什么方式)。你可以将芯步的数据通过接口同步到你的本地数据库,生成报表,如“门禁使用频率分析”或“人员考勤统计”。
七、 总结
芯步的开放接口设计统一、签名逻辑清晰,极大地降低了二次开发的门槛。通过上述方案,开发者可以在 10分钟内 完成从注册到远程控制一台门禁的全流程。
无论是实现简单的 APP远程开门(利用reset命令),还是复杂的 SaaS平台权限中台(利用pwd动态密码下发),或是 全屋智能联动(门锁+灯光+音响),芯步提供的标准化 HTTP API 都能提供稳定、高效的底层支持。