芯步的智能门禁产品全线开放HTTP接口,这意味着你可以用任何编程语言直接向设备下发指令,实现门禁与其他系统的联动控制。以下方案涵盖核心接口对接、签名算法、典型场景代码实现及架构。
解决方案:基于芯步开放接口的智能门禁感应开关二次开发
一、 背景与概述
在很多智能化改造场景中,传统的门禁系统往往是孤立的,无法与消防系统、监控系统或楼宇自动化系统联动。芯步的智能门禁产品线(如智能墙壁出门开关、智能密码门禁等)提供了标准化的 HTTP 开放接口。开发者可以通过二次开发,利用任何支持 HTTP 请求的编程语言(Python, Java, PHP, Node-RED, Shell 等)接管门禁控制权,实现跨系统的智能联动。
二、 核心技术原理
芯步的设备采用 WiFi(2.4GHz) 直连或网关连接方式,云端提供统一的 RESTful API。
二次开发的核心流程是:外部系统/传感器触发 -> 后端服务器计算签名 -> 调用芯步 API -> 设备执行动作(开/关/点动)。
主要涉及以下两类操作:
设备控制: 向指定设备下发
power(开关)、reset(断开后接通,常用于门禁触发)、point(接通后断开)等指令 。状态反馈: (可选)通过回调/消息服务器接收设备上报的状态,确认门是否已开。
三、 二次开发关键步骤
1. 环境准备与接口鉴权
在调用 API 前,需要从芯步控制台获取密钥,并进行签名计算以保证安全性。
AppID:开发者ID,用于标识身份。
AppSecret:开发者密码,用于加密签名。
签名算法(Sign) :
md5( md5(AppSecret) + ts )。注:
ts为 Unix 时间戳(秒)。
代码示例(Python 签名生成):
2. 核心接口调用:控制门禁开关
门禁控制的核心是继电器通断。对于电插锁或磁力锁,通常需要断电开锁。
场景: 用户按动自定义按钮,服务器控制门禁打开 3 秒钟后自动锁闭(即“点动”模式)。在芯步协议中,这对应 reset(先断后通)指令。如果锁是断电开锁类型,reset 参数表示断开多久 。
请求地址:https://api.thingboot.com/{AppID}/device/control/?sign={sign}&ts={ts}
请求方法:POST请求头:Content-Type: application/json
请求体参数:
释义:"reset": 3000 表示立即断开继电器(开门),3000毫秒(3秒)后自动闭合继电器(锁门) 。
3. 不同产品的指令差异
芯步对不同硬件产品的指令字段做了统一抽象,开发时需根据实际产品型号传参:
| 产品类型 | 典型动作指令 | order 参数示例 | 说明 |
|---|---|---|---|
| 智能墙壁出门开关 | 点动开门 | {"reset": 3000} | 线路断开3秒后自动恢复通电 |
| 常开/常闭 | {"power": 1} 或 {"power": 0} | 直接控制继电器状态 | |
| 智能密码门禁 | 远程开门 | {"power": 1} | 触发门禁继电器动作 |
| 添加密码 | {"pwd": "123456"} | 远程修改门禁密码 |
四、 典型联动场景解决方案
以下是几种高频的二次开发应用场景:
场景 1:火警联动(安全优先)
需求: 当烟感传感器或消防系统触发警报时,门禁系统必须立即断开所有门的电源(开门),确保人员逃生。实现方案:
监听: 服务器监听消防系统的干接点信号或 Modbus 数据。
逻辑: 一旦接收到火警信号,触发联动逻辑。
执行: 服务器遍历所有门禁设备ID,下发
{"power": 0}命令(如果是断电开锁类型,需反逻辑处理)。此场景下应忽略返回值,使用异步多线程批量发送,确保即时性。
场景 2:人脸识别/二维码闸机联动
需求: 在访客机或闸机上刷脸/扫码成功,控制门禁自动开门。实现方案:
触发: 第三方设备(如安卓闸机)通过 HTTP 请求调用开发者的后端接口。
鉴权: 后端验证访客权限。
执行: 后端调用芯步 API。
推荐指令:
{"reset": 2000}(开门2秒,适合人员快速通过)。代码片段(Python 使用 requests 库):
场景 3:办公自动化(OA)系统集成
需求: 员工在手机 APP 端点击“加班申请审批通过”,自动为员工开启特定楼层的门禁权限(或临时密码)。实现方案:
接口调用: OA 系统审批流程结束后,回调自定义联动服务。
动作:
方式 A(下发密码): 调用
{"pwd": "随机临时码"}接口,下发到密码门禁设备 。方式 B(临时授权): 记录数据库,并触发
{"reset": 60000}(开门1分钟,允许进入)。
五、 高级功能与优化
局域网私有化部署(低延迟方案)对于网络依赖性高或安全性要求严苛的场景,芯步支持 私有化部署。设备直连本地服务器的 IP 地址,二次开发时只需将 API 请求的域名替换为内网 IP 即可,响应速度可低至 80-120ms。
定时任务与保持功能在二次开发时,可以利用接口参数实现简单的定时逻辑,无需在服务器端维护复杂的 Cron 任务。
示例:
{"reset": 3600000}效果: 开门,并在 1小时后 自动锁门。这对于仓库、机房等需要定时巡检的场景非常实用 。
多设备批量控制请求体中的
device字段支持传入逗号分隔的多个 ID。示例:
"device": "123456,123457,123458"应用: 一键打开所有门禁,或统一锁定整栋大楼。
六、 总结
通过芯步提供的开放 HTTP 接口,开发者可以像调用本地函数一样远程控制硬件。无论是简单的 Shell 脚本 还是复杂的业务中台系统,只需遵循 签名鉴权 -> 构造 JSON -> 发送 POST 请求 这一流程,就能轻松实现门禁与消防、安防、OA 等系统的无缝联动。这种开放性使得门禁系统从“硬件工具”升级为“可编程的服务”。