Appearance
蓝牙遥控器模块
蓝牙遥控器以锁用户身份创建并绑定,用于管理、控制所绑定的门锁。
识别与扫描规则
| UUID 格式 | 过滤规则 | 说明 |
|---|---|---|
| 128 位 UUID | 01778826-... | 保留以该前缀开头的设备 |
广播字节结构、扫描方式、状态标志位等其余规则见 蓝牙广播。
概述
蓝牙遥控器管理涉及客户端、门锁、蓝牙遥控器、服务端协作,流程:绑定蓝牙遥控器 → 向蓝牙遥控器下发锁端数据 → 在锁端添加蓝牙遥控器用户 → 上报服务端 → 开锁 → 删除蓝牙遥控器。
功能支持判断
使用本模块前,须确认门锁 特征值 中 位 82(bluetoothRemoteDevice)为 1,表示设备支持本协议的独立蓝牙遥控器功能。
位 7(bluetoothRemoteControl)为原方案的蓝牙遥控器,通过 遥控模块 管理,与本模块不是同一套方案,不能混用该标志位。
管理流程
绑定蓝牙遥控器 参考 设备管理 中与门锁绑定的相同流程,客户端使用文档中的命令连接并绑定蓝牙遥控器(获取公钥 → 获取私钥和签名密钥 → 读取设备状态信息 → 增加超级管理员)。从 读取设备状态信息 应答中取得蓝牙遥控器的
SerialNum0、MAC 地址、设备名称等信息。向蓝牙遥控器下发锁端数据 使用 传输设备数据 将锁的 MAC 地址、锁端密钥相关数据发送给蓝牙遥控器。
在锁端添加蓝牙遥控器用户 使用 增加超级管理员 在门锁上添加用户:
KeyType设为2(蓝牙遥控器),UserID填写蓝牙遥控器的SerialNum0。添加成功后,从应答的No字段取得该遥控器在锁端的序号。上报服务端 客户端将相关数据上报至服务端,包括蓝牙遥控器 MAC 地址、密钥、
SerialNum0、设备名称、在锁端序号(No)等参数。后续服务端需根据No对应操作记录中的用户。开锁 使用 开门 控制门锁开启,
UserID填写蓝牙遥控器的SerialNum0。OpenMode的 Bit1 需设为1(遥控器开锁)。设备端需校验OpenMode与SerialNum0。删除蓝牙遥控器 使用 删除用户,
DelUserID填写蓝牙遥控器的SerialNum0。
传输设备数据
管理流程第 2 步:向蓝牙遥控器写入锁端 MAC 及密钥。
指令码
0x3050
方向:客户端 → 蓝牙遥控器
请求参数
| 字段名称 | 类型 | 长度 | 说明 |
|---|---|---|---|
| CmdID | 整型 | 2 | 指令 ID (0x3050) |
| KeyID | 字符串 | 40 | 钥匙 ID |
| UserID | 字符串 | 20 | 用户 ID |
| MAC | 字符串 | 20 | 锁的蓝牙 MAC 地址 |
| PublicKey | 二进制 | 16 | 公钥 |
| PrivateKey | 二进制 | 16 | 私钥 |
| SignKey | 二进制 | 16 | 签名密钥 |
| Token | 整型 | 4 | 动态口令 |
| AuthCodeLen | 整型 | 1 | 鉴权码长度 |
| AuthCode | 字符串 | 变长 | 鉴权码 |
响应参数
| 字段名称 | 类型 | 长度 | 说明 |
|---|---|---|---|
| CmdID | 整型 | 2 | 指令 ID (0x3050) |
| Status | 整型 | 1 | 状态码0: 成功 |
| Token | 整型 | 4 | 动态口令 |
