芯步的密码门禁设备开放了完整的HTTP接口,支持通过公网API和局域网直连两种模式进行二次开发。以下方案涵盖两种调用方式的签名算法、核心命令示例,以及Java/Python/Shell的代码实现。
解决方案:基于芯步HTTP接口的密码门禁远程控制二次开发
1. 背景与技术原理
芯步的智能密码门禁设备(如型号UNI-MJ-MM-CM)支持标准的HTTP接口调用,这意味着开发者可以绕过其原生App,直接将门禁控制功能集成到自己的办公系统、小程序或管理平台中。
核心原理:设备连接WiFi(2.4G)后,会与芯步云平台保持长连接。开发者通过向云平台API发送特定的HTTP请求(携带签名和设备ID),云平台会实时将指令推送给设备,从而实现远程开门、密码管理等功能。
适用场景:
将门禁集成到公司内部的OA或ERP系统。
开发定制化的智慧民宿管理后台。
实现基于时间条件的自动化门禁控制。
2. 接口调用方式
芯步提供两种HTTP对接模式,开发者可根据网络环境选择:
| 模式 | 地址示例 | 适用场景 | 特点 |
|---|---|---|---|
| 公网API模式 | https://api.thingboot.com/{AppID}/... | 分布式系统、手机App、跨地域管理 | 需联网,支持设备不在同一局域网,需签名验证 |
| 局域网直连模式 | http://{设备IP}/control | 内部局域网服务器、高实时性要求 | 响应更快(内网传输),无需经过云平台,适合可控内部网络 |
3. 二次开发关键步骤
3.1 准备工作:获取凭证与设备ID
在开始编码前,需要准备以下三个关键信息(均可在芯步控制台获取):
AppID: 应用的唯一标识。
AppSecret: 用于加密签名的密钥(严禁直接写在客户端代码中)。
Device ID: 目标门禁设备的ID(通常为一串数字或字符串)。
3.2 核心技术:签名算法
为了保证接口安全,每次调用公网API都必须携带动态生成的签名(Sign)。算法规则如下
计算
MD5(AppSecret),得到Secret_MD5。获取当前Unix时间戳(秒)
Ts。拼接字符串
SignStr = Secret_MD5 + Ts。计算
Sign = MD5(SignStr)。
示例:假设 AppSecret = "abc123",Ts = 1712100000
Secret_MD5 = MD5("abc123") = "e99a18c428cb38d5f22e03"(仅为示例格式)SignStr = "e99a18c428cb38d5f22e03" + "1712100000"Sign = MD5(SignStr)
4. 核心功能实现:远程开门
这是最常用的功能。通常控制门锁是操作继电器通断,命令为 power。
4.1 使用公网API远程控制(推荐)
请求地址:https://api.thingboot.com/{AppID}/device/control/方法: POST参数(JSON Body):
多场景命令说明:
瞬间开门:
{"power":0}(具体看接线,如果是常开锁则是1,通常0为释放锁)。开门后自动复位(脉冲模式):
{"reset":"3000"}立即打开门锁,保持3秒断电状态后自动闭锁。
4.2 局域网直连控制(高稳定性)
如果您的服务器与门禁在同一个局域网内,可以直接控制,无需经过云端,延迟更低。请求地址:http://{设备IP}/control方法: POST
注:局域网模式可能需要对设备配置固定IP或通过网关发现。
5. 进阶功能:动态密码管理
相比于单纯的远程开门,二次开发往往更看重动态密码的管理能力。芯步门禁支持100个动态密码,非常适合访客或临时工场景。
1. 设置/修改密码向设备下发命令,设置一个6位数的密码及其有效期。
命令示例:
2. 删除/清空密码
删除指定密码:
{"delete": "123456"}清空所有密码:
{"clear": true}
6. 代码实现示例(多语言)
以下代码片段演示了如何通过计算签名来调用接口控制门禁。
Python 3 示例
Java (OkHttp) 示例
Shell (cURL) 示例
适合在Linux服务器上直接测试或脚本调用。
7. 注意事项与最佳实践
安全性
签名密钥
AppSecret请一定要在后端计算。不要在前端(JS/App)暴露此密钥。接口仅支持HTTPS(公网模式),防止中间人攻击。
异步反馈
/device/control/接口返回200仅代表指令发送成功,不代表门真的开了。如果需要确切的“已开门”回执,通过控制台设置消息推送回调URL,接收设备上报的事件。
网络稳定性
门禁设备使用信号良好的2.4G WiFi。如果用于核心机房或财务室等高安保场景,采用局域网直连模式,避免因外网波动导致控制失灵。
设备配网
二次开发调试前,需先使用官方小程序或控制台为设备配置WiFi。设备配网成功后指示灯常亮。
通过上述方案,开发者可以在一小时内完成从环境配置到远程开门的基础功能集成。