二次开发手册
智能硬件-通讯协议说明书
产品命名规则
智能硬件-通讯协议说明书-v2
智能硬件-通讯协议说明书-v3
智能硬件-通讯协议说明书-WPP-v3
倒计时控制器-通讯协议说明书-DWY-v1
云喇叭-通讯协议说明书-v1
计量硬件-通讯协议说明书-WPP-v4
计量硬件-通讯协议说明书-v1
报警器-通讯协议说明书-v1
ARMS
config
tcp-config
mqtt-config
rules
常见问题
如何对接到自己的私有服务器
如何配网
计量硬件-通讯协议说明书-v1
250428
250429
远程开关-说明书
产品需求
计量报警控制设备-需求规划
计量硬件-通讯协议说明书-v2
智能硬件测试教程 HTTP Server 版本
智能硬件测试教程 MQTT Client 版本
智能硬件测试教程 TCP Client 版本
引进新的工业品类
开发新的工业品
尝试与店家沟通
推进智能硬件品类
推进扫码支付品类
推进自助系统品类
完善 SmartHW 项目代码
DTU 项目开发
寻找软硬件供应商
构建产品体系
尝试询问淘宝商家是否愿意推广我的品类
智能硬件新增两款温度计品类
hex版本管理
硬件利润分析
通用-通讯协议说明书-v1
Untitled
智能硬件-通讯协议说明书-WPP-v3
计量硬件-通讯协议说明书-WPP-v4
logic
d2-rc-v1.0-logic
sub-protocol
protocol-rc-v1.5.0
protocol-rc-v1.6.0
protocol-rc-v1.7.0
protocol-rd-v1.5.0
protocol-lock-v1.0.0
protocol-v1.8
protocol-rd-v1.9.0
本文档使用 MrDoc 发布
-
+
首页
protocol-lock-v1.0.0
# 项目版本: LOCK产品专用协议 v1.0.0 *** ## 一、前言 本文档专门针对LOCK产品(智能锁控制盒,产品型号:D2_LOCK)的协议规范,基于主协议v1.8提取并整理了所有与LOCK产品相关的通信协议内容。 LOCK产品采用双路电控锁控制技术,支持2个独立的电控锁控制,同时支持门磁传感器检测、手柄传感器检测、蓝牙BLE通讯等功能。适用于智能门锁控制盒控制等应用场景。 ### 1.1. 产品特性 - **产品型号**: LOCK (D2_LOCK) - **主要功能**: 智能锁控制盒 - **硬件能力**: 双路电控锁控制 + 门磁检测 + 手柄传感器 + LED指示 + 蓝牙BLE + NBIOT + 电池供电 - **控制方式**: 继电器控制(支持开锁/锁定) - **锁数量**: 2个独立电控锁(编号0-1) - **传感器**: 门磁传感器 + 手柄传感器 - **通讯方式**: NBIOT(MQTT) + 蓝牙BLE - **指示功能**: LED状态指示 - **电源管理**: 电池供电 + 电池状态监控 ### 1.2. 支持的协议 1. NBIOT协议: - MQTT: "硬件终端"通过NBIOT模块作为MQTT客户端连接云端平台 2. 蓝牙协议: - BLE: "硬件终端"作为BLE外围设备,支持手机APP直连 ## 二、产品型号说明 | 产品型号 | 完整名称 | 硬件能力 | 主要用途 | |---------|---------|---------|---------| | LOCK | D2_LOCK | 双路电控锁控制 + 门磁检测 + 手柄传感器 + BLE + NBIOT + LED指示 + 电池供电 | 智能锁控制盒 | ## 三、设备标识 (dev_id) - 用途:代表终端的唯一编号 - 默认值:设备的主芯片的唯一id ## 四、通信协议 ### 4.1. NBIOT协议 #### 4.1.1. MQTT 协议 ##### 4.1.1.1. MQTT 协议概要 - mqtt 通讯基于2个主题,dev_id/dev_pub_topic与dev_id/dev_sub_topic - "硬件终端"通过dev_id/dev_pub_topic主题发布数据,"应用终端"通过该主题接收"硬件终端"的数据 - "硬件终端"通过dev_id/dev_sub_topic主题接收数据,"应用终端"通过该主题发送数据 ***node***: mqtt主题由dev_id动态构成,修改dev_id时,将自动修改这两个主题 ##### 4.1.1.2. MQTT 通讯框图 以下图表,展示了"硬件终端"的"事件上报"与"控制终端"的"应用命令请求"或"参数请求"对应的通讯流程图. ```mermaid sequenceDiagram participant HW_MQTT_Client participant MQTT_Server participant APP_MQTT_Client HW_MQTT_Client->>MQTT_Server: 发布消息到 dev_pub_topic Note right of HW_MQTT_Client: 事件上报 MQTT_Server->>APP_MQTT_Client: 转发消息 APP_MQTT_Client->>MQTT_Server: 发布控制指令到 dev_sub_topic Note right of APP_MQTT_Client: 控制命令或参数请求 MQTT_Server->>HW_MQTT_Client: 转发指令 Note right of MQTT_Server: 设备执行指令 HW_MQTT_Client-->>MQTT_Server: 回复确认或失败信息 MQTT_Server-->>APP_MQTT_Client: 转发应答结果 ``` * HW_MQTT_Client: 硬件终端,MQTT客户端 * MQTT_Server: MQTT 服务器端,一般指客户在阿里云,华为云等云平台构建的MQTT服务器终端 * APP_MQTT_Client: 应用终端,也是MQTT客户端,一般由手机小程序充当 ### 4.2. 蓝牙BLE协议 #### 4.2.1. BLE 协议概要 - BLE协议基于标准的蓝牙低功耗技术实现 - "硬件终端"作为BLE外围设备(Peripheral),"手机APP"作为BLE中心设备(Central) - 支持直接点对点通讯,无需网络连接 - 通讯距离通常在10米以内,适合近距离操作 - **特别说明**: BLE接口主要的目的是为了在没有网络连接时,也能进行设备控制。当NBIOT网络不可用或信号弱时,BLE提供了备用的本地控制方式。 #### 4.2.2. BLE 服务特性 - **服务UUID**: 自定义服务UUID用于设备识别 - **特征UUID**: - 命令特征(Command Characteristic): 用于接收控制命令 - 通知特征(Notify Characteristic): 用于主动上报事件和状态 - **数据格式**: 与NBIOT协议保持一致,使用JSON格式 #### 4.2.3. BLE 通讯框图 ```mermaid sequenceDiagram participant Phone as 手机APP participant BLE_dev as BLE设备 Note over Phone: 扫描BLE设备 Phone->>BLE_dev: 连接请求 BLE_dev-->>Phone: 连接确认 Phone->>BLE_dev: 发现服务和特征 BLE_dev-->>Phone: 返回服务特征信息 Phone->>BLE_dev: 写入控制命令 (JSON格式) BLE_dev-->>Phone: 命令执行应答 BLE_dev->>Phone: 通知事件上报 (JSON格式) Note right of BLE_dev: 主动上报状态变化 ``` * Phone: 手机APP,作为BLE中心设备 * BLE_dev: 硬件终端,作为BLE外围设备 ## 五、报文格式 ### 5.1. 控制指令 (LOCK产品专用) | 命令 | JSON 格式 | 说明 | | ------- | ------------------------------------------------------------ | --------------------------------------------------------------------------------------------------- | | 打开电控锁 | `{"ctrl_cmd":{"open_lock_cmd":x}}` | 打开电控锁,x为锁编号(0-1),如: {"ctrl_cmd":{"open_lock_cmd":0}} | | 关闭电控锁 | `{"ctrl_cmd":{"close_lock_cmd":x}}` | 关闭电控锁,x为锁编号(0-1),如: {"ctrl_cmd":{"close_lock_cmd":0}} | | 设置电控锁状态 | `{"ctrl_cmd":{"set_lock_cmd":{"lock_id":"0","state":true}}}` | 设置电控锁状态,lock_id:锁编号(0-1), state: true开锁/false锁定 | | 查询电控锁状态 | `{"ctrl_cmd":{"query_lock_cmd":x}}` | 查询单个电控锁状态,x为锁编号(0-1),如: {"ctrl_cmd":{"query_lock_cmd":0}} | | 批量电控锁控制 | `{"ctrl_cmd":{"batch_lock_cmd":[true,false]}}` | 批量设置电控锁状态,数组索引对应锁编号,true开锁,false锁定 | | 恢复出厂设置 | `{"ctrl_cmd":{"factory_params_cmd":"xxxx"}}` | 恢复出厂设置,xxxx参数可以为任意字符串 | | 重启系统 | `{"ctrl_cmd":{"restart_cmd":"xxxx"}}` | 重启系统,xxxx参数可以为任意字符串 | | OTA 更新 | `{"ctrl_cmd":{"ota_cmd":{"url":"xxxx"}}}` | OTA 升级,url 为固件升级地址<br>例:`{"ctrl_cmd":{"ota_cmd":{"url":"http://192.168.1.100:8080/firmware.bin"}}}` | ### 5.2. 参数设置&参数获取 (LOCK产品适用) | 参数名 | 设置参数 | 获取参数 | 默认值 | 说明 | | ----------- | ------------------------------------------------------------------------------ | ----------------------------------------------- | -------------------------------- | --------------------------------------------------- | | 设备 ID | `{"set_param":{"dev_id":"dev001"}}` | `{"get_param":{"dev_id":{}}}` | 使用 ESP32 芯片 ID | | | 软件版本 | - | `{"get_param":{"soft_ver":{}}}` | 当前版本 | 只读参数 | | 硬件版本 | - | `{"get_param":{"hard_ver":{}}}` | 当前版本 | 只读参数 | | 协议版本 | - | `{"get_param":{"protocol_ver":{}}}` | 当前版本 | 只读参数 | | 参数版本 | - | `{"get_param":{"param_ver":{}}}` | 当前版本 | 只读参数 | | 编译日期时间 | - | `{"get_param":{"build_datetime":{}}}` | 编译时日期时间 | 只读参数 | | 完整版本信息 | - | `{"get_param":{"full_ver":{}}}` | 版本信息 | 只读参数,包含所有版本信息的组合字符串 | | MQTT 服务器 | `{"set_param":{"mqtt_server":"mqtt.example.com"}}` | `{"get_param":{"mqtt_server":{}}}` | "192.168.1.45" | | | MQTT 端口 | `{"set_param":{"mqtt_port":1883}}` | `{"get_param":{"mqtt_port":{}}}` | 1883 | | | MQTT 用户名 | `{"set_param":{"mqtt_username":"user"}}` | `{"get_param":{"mqtt_username":{}}}` | "" | | | MQTT 密码 | `{"set_param":{"mqtt_password":"pass"}}` | `{"get_param":{"mqtt_password":{}}}` | "" | | | MQTT 客户端 ID | `{"set_param":{"client_id":"client001"}}` | `{"get_param":{"client_id":{}}}` | 基于 MAC 地址生成 | | | 设备订阅主题 | `{"set_param":{"dev_sub_topic":"dev001/sub"}}` | `{"get_param":{"dev_sub_topic":{}}}` | "dev001/sub" | | | 设备发布主题 | `{"set_param":{"dev_pub_topic":"dev001/pub"}}` | `{"get_param":{"dev_pub_topic":{}}}` | "dev001/pub" | | | OTA 标志 | `{"set_param":{"ota_f":true}}` | `{"get_param":{"ota_f":{}}}` | true | OTA 升级标志位,true:允许 OTA,false:禁止 OTA | | Ping 功能使能 | `{"set_param":{"ping_en":true}}` | `{"get_param":{"ping_en":{}}}` | true | 启用 Ping 主动上报功能 | | Ping 上报间隔 | `{"set_param":{"ping_interval_s":30}}` | `{"get_param":{"ping_interval_s":{}}}` | 60 | Ping 消息上报间隔,单位:秒 | | Ping 字段配置 | `{"set_param":{"ping_fields":["dev_id","full_ver","rssi_abs","lock_states"]}}` | `{"get_param":{"ping_fields":{}}}` | ["dev_id","full_ver","rssi_abs"] | 配置ping消息包含的字段列表,可选择任意param或status字段,支持特殊字段如rssi_abs | | 蓝牙设备名称 | `{"set_param":{"ble_name":"D2_LOCK"}}` | `{"get_param":{"ble_name":{}}}` | "D2_LOCK" | 蓝牙BLE广播设备名称 | | 门开启超时阈值 | `{"set_param":{"door_open_timeout_s":30}}` | `{"get_param":{"door_open_timeout_s":{}}}` | 30 | 门开启超时告警阈值,单位:秒 | | 锁0二维码标签 | `{"set_param":{"lock_0_qr_code":"LOCK001_0"}}` | `{"get_param":{"lock_0_qr_code":{}}}` | "" | 锁0的二维码标签内容 | | 锁1二维码标签 | `{"set_param":{"lock_1_qr_code":"LOCK001_1"}}` | `{"get_param":{"lock_1_qr_code":{}}}` | "" | 锁1的二维码标签内容 | | 电池低电压告警阈值 | `{"set_param":{"battery_low_voltage_th":3.2}}` | `{"get_param":{"battery_low_voltage_th":{}}}` | 3.2 | 电池低电压告警阈值,单位:V | | | | | | | ### 5.3. 状态设置&状态获取 (LOCK产品专用) 状态(Status)与参数(Param)的区别: 1. 状态是运行时的实时数据, 如当前锁状态、门磁状态、手柄状态等,这些数据断电后不会保存 2. 当设备收到状态获取命令后, 会返回对应的状态值, 具体格式请参考: [[#5.6. 消息应答]] | 命令 | 设置状态 | 获取状态 | 说明 | | ------- | --------------------------------------------- | ------------------------------------------- | ------------------------------------------------------------------------------------- | | 信号强度 | - | `{"get_status":{"rssi_abs":{}}}` | 只读参数,NBIOT信号强度的绝对值:<br>50: 非常好<br>60~70: 好<br>70~80: 一般<br>80~90: 差 | | 电控锁状态组 | `{"set_status":{"lock_states":[true,false]}}` | `{"get_status":{"lock_states":{}}}` | 设置/获取所有电控锁状态数组:<br>返回格式: [true,false]<br>数组索引从0开始,对应锁编号0-1<br>true: 开锁状态, false: 锁定状态 | | 门磁传感器状态 | - | `{"get_status":{"door_sensor_state":{}}}` | 获取门磁传感器状态:<br>true: 门开启状态<br>false: 门关闭状态 | | 手柄传感器状态 | - | `{"get_status":{"handle_sensor_state":{}}}` | 获取手柄传感器状态:<br>true: 手柄被按下(手动开锁)<br>false: 手柄释放状态 | | 蓝牙连接状态 | - | `{"get_status":{"ble_connected":{}}}` | 获取蓝牙连接状态:<br>true: 有设备连接<br>false: 无设备连接 | | 电源电压值 | - | `{"get_status":{"voltage_v":{}}}` | 只读参数,当前电源电压值,单位:V | | 电池电压值 | - | `{"get_status":{"battery_voltage":{}}}` | 只读参数,当前电池电压值,单位:V | | 电池充电状态 | - | `{"get_status":{"battery_charging":{}}}` | 获取电池充电状态:<br>true: 正在充电<br>false: 未充电 | | 电池电量百分比 | - | `{"get_status":{"battery_percentage":{}}}` | 获取电池剩余电量百分比,范围:0-100 | ### 5.4. 事件上报 (LOCK产品专用) | 事件类型 | JSON 格式 | 说明 | | ---------- | --------------------------------------------------------------------------------------- | -------------------------------------------------------------------- | | OTA 更新完成事件 | `{"event":{"ota_end_evt":"更新结果"}}` | OTA 升级完成后上报结果 | | 上电事件 | `{"event":{"powerup_evt":""}}` | 设备上电时上报 | | 重启事件 | `{"event":{"reboot_evt":""}}` | 设备重启时上报 | | 恢复出厂设置事件 | `{"event":{"factory_params_evt":""}}` | 恢复出厂设置时上报 | | 系统信息上报事件 | `{"event":{"report_sysinfo_evt":"系统信息"}}` | 上报系统所有可获取参数 | | 电控锁状态变化事件 | `{"event":{"lock_state_changed_evt":{"lock_id":0,"state":true}}}` | 电控锁状态发生改变时上报,lock_id:锁编号(0-1), state:锁状态 | | 门磁传感器触发事件 | `{"event":{"door_sensor_triggered_evt":{"lock_id":0,"state":true,"timestamp":135893}}}` | 门磁传感器状态变化时上报,lock_id:锁编号(0-1), state:门状态, timestamp:时间戳(ms) | | 门开启超时事件 | `{"event":{"door_open_timeout_evt":{"lock_id":0,"duration":35,"timestamp":140893}}}` | 门开启时间超过阈值时上报,lock_id:锁编号(0-1), duration:开启持续时间(秒), timestamp:时间戳(ms) | | 门异常开启告警事件 | `{"event":{"door_abnormal_open_evt":{"lock_id":0,"timestamp":142893}}}` | 非法开启时上报,lock_id:锁编号(0-1), timestamp:事件时间戳(ms) | | 门关闭后未上锁事件 | `{"event":{"door_not_locked_evt":{"lock_id":0,"timestamp":148293}}}` | 门关闭但未检测到上锁操作时上报,lock_id:锁编号(0-1), timestamp:事件时间戳(ms) | | 手动激活事件 | `{"event":{"manual_activate_evt":{"lock_id":0,"timestamp":135893}}}` | 按锁把手手动激活设备时上报,lock_id:锁编号(0-1), timestamp:时间戳(ms) | | 按键短按 | `{"event":{"key_id":0,"short_click_evt":{}}}` | 按键0被短按时触发,key_id:按键编号 | | 按键长按 | `{"event":{"key_id":0,"long_click_evt":{}}}` | 按键0被长按时触发,key_id:按键编号 | | 按键超长按 | `{"event":{"key_id":0,"extra_long_click_evt":{}}}` | 按键0被超长按时触发,key_id:按键编号 | | 按键双击 | `{"event":{"key_id":0,"double_click_evt":{}}}` | 按键0被双击时触发,key_id:按键编号 | | 按键三击 | `{"event":{"key_id":0,"triple_click_evt":{}}}` | 按键0被三击时触发,key_id:按键编号 | | 蓝牙连接事件 | `{"event":{"ble_connected_evt":{"dev_name":"iPhone","timestamp":135893}}}` | 蓝牙设备连接时上报,dev_name:连接设备名称, timestamp:时间戳(ms) | | 蓝牙断开事件 | `{"event":{"ble_disconnected_evt":{"dev_name":"iPhone","timestamp":142893}}}` | 蓝牙设备断开时上报,dev_name:断开设备名称, timestamp:时间戳(ms) | | 进入休眠事件 | `{"event":{"enter_sleep_evt":{"timestamp":148293}}}` | 设备进入休眠模式时上报,timestamp:时间戳(ms) | | 从休眠唤醒事件 | `{"event":{"wake_up_evt":{"wake_reason":"handle_sensor","timestamp":155893}}}` | 设备从休眠唤醒时上报,wake_reason:唤醒原因, timestamp:时间戳(ms) | | 电压异常事件 | `{"event":{"voltage_abnormal_evt":{"voltage":3.1,"timestamp":160893}}}` | 电源电压异常时上报,voltage:当前电压值, timestamp:时间戳(ms) | | 电池低电压事件 | `{"event":{"battery_low_voltage_evt":{"battery_voltage":3.1,"timestamp":165893}}}` | 电池电压低于阈值时上报,battery_voltage:电池电压值, timestamp:时间戳(ms) | | 电池充电状态变化事件 | `{"event":{"battery_charge_state_changed_evt":{"charging":true,"timestamp":170893}}}` | 电池充电状态变化时上报,charging:充电状态, timestamp:时间戳(ms) | 注意: 1. 按键事件上报中的数值表示按键索引,从0开始 2. 按键事件的触发时间: - 短按:立即触发 - 双击:两次按键间隔小于300ms - 三击:三次按键间隔小于500ms - 长按:按住时间超过3秒 - 超长按:按住时间超过10秒 3. 当按键被锁定时(key_lock=true),所有按键事件将被禁用 4. 对于LOCK产品: - 电控锁编号从0开始(锁编号: 0-1) - 锁状态: true=开锁状态, false=锁定状态 - 电控锁通过继电器控制实现开锁和锁定操作 - 支持批量操作和单个操作两种模式 5. 对于传感器事件: - 门磁传感器检测门的开启/关闭状态 - 手柄传感器检测手动开锁操作 - 所有传感器事件包含timestamp时间戳字段 6. 对于休眠唤醒: - 唤醒原因包括: "handle_sensor"(手柄传感器), "ble_connection"(蓝牙连接), "button_press"(按键按下)等 - 设备可通过多种方式从休眠状态唤醒 ### 5.5. 主动上报 (LOCK产品适用) "硬件终端"间隔一定的时间,会往"服务器端",上报的报文 该报文是可选,可使用"参数设置"报文开启或关闭 可通过"参数设置"报文,设置上报时间间隔 **支持动态配置ping消息包含的字段** | 消息类型 | JSON 格式 | 说明 | | ---- | ------------------------------------------------------------------------------------------ | -------------------- | | 心跳包 | 动态格式,根据ping_fields参数配置决定包含的字段,具体格式见下方示例 | 包含可配置的设备信息字段,支持从参数和状态对象中选择任意字段 | #### 5.5.1. Ping字段配置功能 **功能概述**: - 通过`ping_fields`参数动态配置ping消息包含的字段 - 支持选择任意param(参数)或status(状态)对象中的字段 - 支持特殊的动态计算字段,如NBIOT信号强度(rssi_abs) - 字段名称以JSON数组格式配置(推荐)或逗号分隔字符串格式(兼容) **默认配置**: ```json "ping_fields": ["dev_id","full_ver","rssi_abs"] ``` **LOCK产品配置示例**: 1. **基础配置**: ```json {"set_param":{"ping_fields":["dev_id","full_ver","rssi_abs"]}} ``` 生成的ping消息: ```json {"ping":{"dev_id":"ESP32_123456","full_ver":"v1.0.0","rssi_abs":68}} ``` 2. **锁状态监控配置**: ```json {"set_param":{"ping_fields":["dev_id","full_ver","lock_states","door_sensor_state","handle_sensor_state"]}} ``` 生成的ping消息: ```json {"ping":{"dev_id":"ESP32_123456","full_ver":"v1.0.0","lock_states":[true,false],"door_sensor_state":false,"handle_sensor_state":false}} ``` 3. **完整状态监控配置**: ```json {"set_param":{"ping_fields":["dev_id","ble_enable","ble_connected","lock_states","door_sensor_state","handle_sensor_state","sleep_state","voltage_v","rssi_abs"]}} ``` 生成的ping消息: ```json {"ping":{"dev_id":"ESP32_123456","ble_enable":true,"ble_connected":false,"lock_states":[true,false],"door_sensor_state":false,"handle_sensor_state":false,"sleep_state":false,"voltage_v":3.3,"rssi_abs":72}} ``` ### 5.6. 消息应答 终端收到服务器下发的消息后,会根据消息执行结果返回对应的应答帧。 应答帧格式如下: | 消息类型 | JSON 格式 | 说明 | | ------ | --------------------------- | -------------------------------------------------------------------------------------- | | 确认应答 | `{"ask":true}` | 命令执行成功的应答 | | 否认应答 | `{"ask":false}` | 命令执行失败的应答 | | 获取参数应答 | {"ask_param":{"name":val}} | 举例:<br>发送`{"get_param":{"dev_id":{}}}`<br>返回 `{"ask_param":{"dev_id":"dev001"}}` | | 获取状态应答 | {"ask_status":{"name":val}} | 举例:<br>电控锁状态查询:<br>发送`{"get_status":{"lock_states":{}}}`<br>返回 `{"ask_status":{"lock_states":[true,false]}}`<br>单个锁状态查询应答:<br>发送`{"ctrl_cmd":{"query_lock_cmd":0}}`<br>返回 `{"ask_status":{"lock_0":true}}`<br>门磁传感器状态查询:<br>发送`{"get_status":{"door_sensor_state":{}}}`<br>返回 `{"ask_status":{"door_sensor_state":false}}`<br>手柄传感器状态查询:<br>发送`{"get_status":{"handle_sensor_state":{}}}`<br>返回 `{"ask_status":{"handle_sensor_state":false}}` | | 未知命令 | `{"unknown_cmd":0}` | 收到未知命令时的应答 | ## 六、电控锁控制功能说明 ### 6.1. 功能概述 电控锁控制功能专用于LOCK产品(智能锁控制盒),用于控制2个独立的电控锁。该功能通过以下方式工作: 1. 支持2个独立的电控锁控制 2. **支持开锁和锁定两种操作** 3. 通过继电器控制锁的开启和锁定 4. 实时监测锁的状态反馈 5. **支持批量操作和单个操作两种模式** ### 6.2. 硬件特性 - **锁数量**: 2个独立电控锁 - **控制方式**: 继电器控制(支持持续电平控制) - **状态反馈**: 实时状态检测 - **锁编号**: 0-1(对应数组索引0-1) - **功能支持**: 支持开锁和锁定操作 ### 6.3. 控制方式说明 #### 6.3.1. 批量操作(推荐使用) 通过 `set_status` 指令进行批量锁控制,适合需要同时操作多个锁的场景: ```json {"set_status":{"lock_states":[true,false]}} ``` - 数组中 `true` 表示开锁状态 - 数组中 `false` 表示锁定状态 - 数组索引0-1对应锁编号0-1 #### 6.3.2. 单个操作 通过 `ctrl_cmd` 指令进行单个锁控制,适合单独操作某个锁的场景: ```json {"ctrl_cmd":{"open_lock_cmd":"0"}} // 开锁编号为0的锁 {"ctrl_cmd":{"close_lock_cmd":"0"}} // 锁定编号为0的锁 {"ctrl_cmd":{"query_lock_cmd":0}} // 查询编号为0的锁状态 {"ctrl_cmd":{"toggle_lock_cmd":"0"}} // 切换编号为0的锁状态 ``` #### 6.3.3. 高级控制 通过带参数的控制指令进行精确控制: ```json {"ctrl_cmd":{"set_lock_cmd":{"lock_id":"0","state":true}}} // 设置锁0为开锁状态 {"ctrl_cmd":{"batch_lock_cmd":[true,false]}} // 批量设置锁状态 ``` ### 6.4. 通信流程 #### 6.4.1. 批量电控锁控制流程 ```mermaid sequenceDiagram participant App as 应用终端 participant dev as LOCK设备 App->>dev: 批量设置锁状态 {"set_status":{"lock_states":[true,false]}} dev-->>App: 返回确认帧 {"ask":true} Note over dev: 锁0开锁,锁1锁定 dev->>App: 上报锁状态变化事件 {"event":{"lock_state_changed_evt":{"lock_id":0,"state":true}}} dev->>App: 上报锁状态变化事件 {"event":{"lock_state_changed_evt":{"lock_id":1,"state":false}}} App->>dev: 查询所有锁状态 {"get_status":{"lock_states":{}}} dev-->>App: 返回所有锁状态 {"ask_status":{"lock_states":[true,false]}} ``` #### 6.4.2. 单个电控锁控制流程 ```mermaid sequenceDiagram participant App as 应用终端 participant dev as LOCK设备 App->>dev: 开锁单个电控锁 {"ctrl_cmd":{"open_lock_cmd":"0"}} dev-->>App: 返回确认帧 {"ask":true} Note over dev: 对锁0执行开锁操作 dev->>App: 上报锁状态变化 {"event":{"lock_state_changed_evt":{"lock_id":0,"state":true}}} App->>dev: 查询单个锁状态 {"ctrl_cmd":{"query_lock_cmd":0}} dev-->>App: 返回单个锁状态 {"ask_status":{"lock_0":true}} ``` ### 6.5. 相关指令说明 | 类型 | 指令 | 说明 | | ---- | ------------------------------------------------------------ | ------------------------------------------------------- | | 状态设置 | `{"set_status":{"lock_states":[true,false]}}` | 批量设置所有锁状态<br>数组索引0-1对应锁编号0-1<br>true: 开锁状态, false: 锁定状态 | | 状态查询 | `{"get_status":{"lock_states":{}}}` | 查询所有锁的状态数组 | | 单个开锁 | `{"ctrl_cmd":{"open_lock_cmd":"0"}}` | 开锁单个电控锁,参数为锁编号(0-1) | | 单个锁定 | `{"ctrl_cmd":{"close_lock_cmd":"0"}}` | 锁定单个电控锁,参数为锁编号(0-1) | | 单个查询 | `{"ctrl_cmd":{"query_lock_cmd":0}}` | 查询单个电控锁状态,参数为锁编号(0-1) | | 单个切换 | `{"ctrl_cmd":{"toggle_lock_cmd":"0"}}` | 切换单个电控锁状态,参数为锁编号(0-1) | | 精确设置 | `{"ctrl_cmd":{"set_lock_cmd":{"lock_id":"0","state":true}}}` | 精确设置指定锁的状态,支持锁编号和状态参数 | | 批量控制 | `{"ctrl_cmd":{"batch_lock_cmd":[true,false]}}` | 批量控制所有锁状态,数组格式 | ### 6.6. 工作原理 1. **继电器控制机制**: - 每个锁通过独立的继电器控制 - 支持持续电平控制模式 - 可配置正逻辑或负逻辑控制 - 支持开锁和锁定两种操作 2. **状态反馈机制**: - 每个锁配备独立的状态检测 - 实时监测锁的开启/锁定状态 - 状态变化时自动上报事件 3. **批量控制优化**: - 支持通过状态设置同时控制多个锁 - 数组索引与锁编号一一对应 - 提供高效的批量操作接口 4. **单个控制支持**: - 支持通过控制命令操作单个锁 - 提供多种单个锁操作指令 - 支持状态查询和切换操作 ## 七、传感器检测功能说明 ### 7.1. 门磁传感器功能 #### 7.1.1. 功能概述 门磁传感器用于检测门的开启和关闭状态,提供实时的门状态监控。 #### 7.1.2. 硬件特性 - **检测类型**: 磁性接触式检测 - **检测状态**: 门开启/门关闭 - **响应速度**: 毫秒级检测响应 - **去抖设置**: 可配置去抖时间 #### 7.1.3. 相关事件 - **门磁传感器触发事件**: 门状态变化时上报 - **门开启超时事件**: 门开启时间超过阈值时上报 - **门异常开启告警**: 非法开启时上报 - **门关闭后未上锁事件**: 门关闭但未检测到上锁操作 ### 7.2. 手柄传感器功能 #### 7.2.1. 功能概述 手柄传感器用于检测手动开锁操作,当用户按压门锁把手时触发。 #### 7.2.2. 硬件特性 - **检测类型**: 机械按压式检测 - **检测状态**: 手柄按下/手柄释放 - **响应速度**: 毫秒级检测响应 - **去抖设置**: 可配置去抖时间 #### 7.2.3. 相关事件 - **手柄传感器触发事件**: 手柄状态变化时上报 - **手动激活事件**: 按锁把手激活设备时上报 ### 7.3. 传感器应用场景 1. **门状态监控**: 实时监控门的开关状态 2. **手动开锁检测**: 检测用户手动开锁操作 3. **安全告警**: 异常开门或超时开门告警 4. **智能休眠**: 基于传感器状态智能唤醒设备 5. **操作审计**: 记录所有门锁操作历史 ## 八、蓝牙BLE功能说明 ### 8.1. 功能概述 蓝牙BLE功能为LOCK产品提供近距离无线通讯能力,支持手机APP直接连接设备进行控制操作,无需网络连接。 ### 8.2. BLE技术特性 - **协议版本**: 蓝牙5.0 BLE - **角色**: 外围设备(Peripheral) - **通讯距离**: 10米以内 - **连接模式**: 点对点连接 - **数据格式**: JSON格式(与NBIOT协议一致) - **功耗**: 低功耗设计,支持休眠模式 ### 8.3. BLE服务架构 #### 8.3.2. BLE协议表格 将MQTT协议简洁抽象为4个BLE Characteristic,实现完整的协议对应: | name | uuid | value | permissions | descriptors | | ----- | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------- | ----------- | -------------------------- | | write | 0000FF01-0000-1000-8000-00805F9B34FB | `{"ctrl_cmd":{...}}` or `{"set_param":{...}}` or `{"get_param":{...}}` or`{"set_status":{...}}` or `{"get_status":{...}}` | Write | 全能写操作接口,包含所有控制命令、参数操作、状态操作 | | read | 0000FF02-0000-1000-8000-00805F9B34FB | `{"ask":true/false}` or `{"ask_param":{...}}` or `{"ask_status":{...}}` or `{"unknown_cmd":0}` | Notify | 全能消息应答接口,返回所有命令的执行结果 | | event | 0000FF03-0000-1000-8000-00805F9B34FB | `{"event":{...}}` | Notify | 事件上报接口,主动推送所有设备事件 | | ping | 0000FF04-0000-1000-8000-00805F9B34FB | `{"ping":{...}}` | Notify | Ping消息接口,定时上报心跳包 | #### 8.3.3. BLE与MQTT协议对应关系 ==BLE协议与MQTT协议完全一致,仅传输方式不同,以下仅展示部分协议项,完整的协议项请参考 MQTT 协议表格==: ##### 8.3.3.1. Write Characteristic对应关系 **MQTT协议项 → BLE Write Characteristic** | 协议类型 | MQTT格式 | BLE Write value | 说明 | | ---- | ---------------------------------------------------------- | ---------------------------------------------------------- | ------ | | 控制命令 | `{"ctrl_cmd":{"open_lock_cmd":0}}` | `{"ctrl_cmd":{"open_lock_cmd":0}}` | 开锁命令 | | 控制命令 | `{"ctrl_cmd":{"set_lock_cmd":{"lock_id":0,"state":true}}}` | `{"ctrl_cmd":{"set_lock_cmd":{"lock_id":0,"state":true}}}` | 设置锁状态 | | 参数设置 | `{"set_param":{"dev_id":"LOCK001"}}` | `{"set_param":{"dev_id":"LOCK001"}}` | 设置设备ID | | 参数获取 | `{"get_param":{"dev_id":{}}}` | `{"get_param":{"dev_id":{}}}` | 获取设备ID | | 状态设置 | `{"set_status":{"lock_states":[true,false]}}` | `{"set_status":{"lock_states":[true,false]}}` | 设置锁状态组 | | 状态查询 | `{"get_status":{"battery_voltage":{}}}` | `{"get_status":{"battery_voltage":{}}}` | 查询电池电压 | ##### 8.3.3.2. Read Characteristic对应关系 **MQTT应答 → BLE Read Notify** | 应答类型 | MQTT格式 | BLE Read Notify value | 说明 | | ---- | ---------------------------------------- | ---------------------------------------- | ------ | | 成功应答 | `{"ask":true}` | `{"ask":true}` | 命令执行成功 | | 失败应答 | `{"ask":false}` | `{"ask":false}` | 命令执行失败 | | 参数应答 | `{"ask_param":{"dev_id":"LOCK001"}}` | `{"ask_param":{"dev_id":"LOCK001"}}` | 返回设备ID | | 状态应答 | `{"ask_status":{"battery_voltage":3.7}}` | `{"ask_status":{"battery_voltage":3.7}}` | 返回电池电压 | | 未知命令 | `{"unknown_cmd":0}` | `{"unknown_cmd":0}` | 命令不识别 | ##### 8.3.3.3. Event Characteristic对应关系 **MQTT事件 → BLE Event Notify** | 事件类型 | MQTT格式 | BLE Event Notify值 | 说明 | |----------|-----------|-------------------|------| | 锁状态变化 | `{"event":{"lock_state_changed_evt":{"lock_id":0,"state":true}}}` | `{"event":{"lock_state_changed_evt":{"lock_id":0,"state":true}}}` | 锁状态变化事件 | | 门磁触发 | `{"event":{"door_sensor_triggered_evt":{"lock_id":0,"state":true,"timestamp":135893}}}` | `{"event":{"door_sensor_triggered_evt":{"lock_id":0,"state":true,"timestamp":135893}}}` | 门磁传感器触发 | | 蓝牙连接 | `{"event":{"ble_connected_evt":{"dev_name":"iPhone","timestamp":135893}}}` | `{"event":{"ble_connected_evt":{"dev_name":"iPhone","timestamp":135893}}}` | 蓝牙连接事件 | | 电池低电 | `{"event":{"battery_low_voltage_evt":{"battery_voltage":3.1,"timestamp":165893}}}` | `{"event":{"battery_low_voltage_evt":{"battery_voltage":3.1,"timestamp":165893}}}` | 电池低电压事件 | ##### 8.3.3.4. Ping Characteristic对应关系 **MQTT Ping → BLE Ping Notify** | Ping类型 | MQTT格式 | BLE Ping Notify值 | 说明 | |----------|-----------|------------------|------| | 心跳包 | `{"ping":{"dev_id":"LOCK001","full_ver":"v1.0.0","rssi_abs":68}}` | `{"ping":{"dev_id":"LOCK001","full_ver":"v1.0.0","rssi_abs":68}}` | 定时心跳消息 | #### 8.3.4. MTU协议配置 ==由于BLE characteristic默认payload大小为20字节,不足以支持复杂的JSON数据传输,因此需要通过MTU协议调整传输单元大小==: **MTU协议设置**: - **默认MTU**: 23字节 (20字节payload + 3字节header) - **设置目标MTU**: 250字节 (247字节payload + 3字节header) - **支持的最大JSON长度**: 247字节 **MTU协谈流程**: ```mermaid sequenceDiagram participant Phone as 手机APP participant Device as LOCK设备 Phone->>Device: BLE连接建立 Device-->>Phone: 连接成功 Phone->>Device: 发送MTU Request (250 bytes) Device-->>Phone: MTU Response (250 bytes) Note over Phone,Device: MTU协商完成,payload大小设置为247字节 Phone->>Device: 发送大JSON数据 (write characteristic) Device-->>Phone: JSON数据处理结果 (read notify) ``` **支持的JSON数据示例**: ```json // 复杂参数设置 (247字节内) { "set_param": { "ping_fields": ["dev_id", "full_ver", "rssi_abs", "lock_states", "door_sensor_state", "handle_sensor_state", "battery_voltage", "battery_percentage", "ble_connected"], "mqtt_server": "mqtt.example.com", "lock_0_qr_code": "LOCK001_CABINET_A_SLOT_0_QRCODE_2024", "lock_1_qr_code": "LOCK001_CABINET_A_SLOT_1_QRCODE_2024" } } ``` ### 8.4. BLE通讯流程 #### 8.4.1. 连接建立流程 ```mermaid sequenceDiagram participant Phone as 手机APP participant BLE_dev as LOCK设备 Note over Phone: 启动BLE扫描 BLE_dev->>Phone: 广播设备信息 (设备名称、服务UUID) Phone->>BLE_dev: 发起连接请求 BLE_dev-->>Phone: 接受连接 Phone->>BLE_dev: 发现服务 (Service Discovery) BLE_dev-->>Phone: 返回服务列表 Phone->>BLE_dev: 发现特征 (Characteristic Discovery) BLE_dev-->>Phone: 返回特征列表 Phone->>BLE_dev: 启用通知 (Enable Notifications) BLE_dev-->>Phone: 通知启用成功 Note over Phone,BLE_dev: BLE连接建立完成,可进行数据交换 ``` #### 8.4.2. 命令执行流程 ```mermaid sequenceDiagram participant Phone as 手机APP participant BLE_dev as LOCK设备 Phone->>BLE_dev: 写入开锁命令 {"ctrl_cmd":{"open_lock_cmd":"0"}} Note over BLE_dev: 解析并执行开锁命令 BLE_dev-->>Phone: 通知命令执行结果 {"ask":true} BLE_dev->>Phone: 推送锁状态变化事件 {"event":{"lock_state_changed_evt":{"lock_id":0,"state":true}}} Phone->>BLE_dev: 查询锁状态 {"get_status":{"lock_states":{}}} BLE_dev-->>Phone: 通知查询结果 {"ask_status":{"lock_states":[true,false]}} ``` ### 8.5. BLE应用场景 1. **现场扫码开锁**: 手机APP扫描二维码后通过BLE连接开锁 2. **微信小程序授权**: 小程序获得授权后通过BLE控制门锁 3. **离线操作**: 在无网络环境下直接通过BLE控制(**主要目的**) 4. **网络故障备用**: 当NBIOT网络不稳定或信号弱时作为备用控制手段 5. **快速配置**: 通过BLE进行设备初始配置和参数设置 6. **状态查询**: 实时查询设备和锁的状态信息 ### 8.6. BLE安全机制 1. **配对认证**: 支持BLE配对和绑定机制 2. **数据加密**: 支持AES加密传输 3. **权限验证**: 命令执行前进行权限验证 4. **连接超时**: 设置连接超时防止长期占用 5. **访问控制**: 限制同时连接的设备数量 ## 九、休眠和唤醒功能说明 ### 9.1. 功能概述 休眠功能用于降低设备功耗,延长电池使用寿命。设备在无操作状态下自动进入休眠模式,通过多种方式可以唤醒设备。 ### 9.2. 休眠模式 #### 9.2.1. 休眠触发条件 - 超时触发: 无操作时间超过设置阈值 - 手动触发: 通过命令主动进入休眠 - 低电量触发: 电源电压过低时自动休眠 #### 9.2.2. 休眠状态特征 - CPU进入深度睡眠模式 - NBIOT模块关闭 - 蓝牙保持低功耗广播(可选) - 传感器保持监听状态 - LED指示灯进入休眠指示模式 ### 9.3. 唤醒方式 1. **手柄传感器唤醒**: 按压门锁把手时唤醒 2. **按键唤醒**: 按下设备上的物理按键 3. **BLE连接唤醒**: 手机APP尝试连接时唤醒 4. **定时唤醒**: 设置定时任务定期唤醒 5. **外部中断唤醒**: 其他GPIO中断信号唤醒 ### 9.4. 休眠唤醒流程 ```mermaid sequenceDiagram participant dev as LOCK设备 participant Sensor as 传感器 participant Phone as 手机APP Note over dev: 设备正常工作状态 dev->>dev: 检测超时,准备休眠 dev->>Phone: 上报休眠事件 {"event":{"enter_sleep_evt":{"timestamp":148293}}} Note over dev: 进入深度睡眠模式 Note over Sensor: 用户按压门锁把手 Sensor->>dev: 触发唤醒中断 dev->>dev: 从休眠模式唤醒 dev->>Phone: 上报唤醒事件 {"event":{"wake_up_evt":{"wake_reason":"handle_sensor","timestamp":155893}}} Note over dev: 恢复正常工作状态 ``` ### 9.5. 功耗管理 | 工作模式 | 典型功耗 | NBIOT状态 | BLE状态 | 传感器状态 | 说明 | | ---- | ----- | ------ | ----- | ----- | ------ | | 正常工作 | 150mA | 开启 | 开启 | 监听 | 全功能运行 | | 待机模式 | 50mA | 连接 | 广播 | 监听 | 保持网络连接 | | 浅度休眠 | 10mA | 关闭 | 广播 | 监听 | BLE可连接 | | 深度休眠 | 1mA | 关闭 | 关闭 | 中断 | 最低功耗 | ## 十、协议应用示例 ### 10.1. NBIOT协议应用示例 #### 10.1.1. 远程开锁操作 ```json // 应用端发送:远程开锁0 {"ctrl_cmd":{"open_lock_cmd":"0"}} // 设备应答: {"ask":true} // 设备事件上报: {"event":{"lock_state_changed_evt":{"lock_id":0,"state":true}}} ``` #### 10.1.2. 批量锁状态设置 ```json // 应用端发送:锁0开锁,锁1锁定 {"set_status":{"lock_states":[true,false]}} // 设备应答: {"ask":true} // 设备事件上报: {"event":{"lock_state_changed_evt":{"lock_id":0,"state":true}}} {"event":{"lock_state_changed_evt":{"lock_id":1,"state":false}}} ``` ### 10.2. BLE协议应用示例 #### 10.2.1. 现场扫码开锁流程 ```json // 1. 手机APP扫描设备二维码获得设备ID // 2. 手机通过BLE连接到设备 // 3. 手机发送开锁命令 写入命令特征: {"ctrl_cmd":{"open_lock_cmd":0}} // 4. 设备执行开锁并通知结果 通知特征推送: {"ask":true} // 5. 设备上报锁状态变化(同时通过BLE和NBIOT) 通知特征推送: {"event":{"lock_state_changed_evt":{"lock_id":0,"state":true}}} NBIOT同步上报: {"event":{"lock_state_changed_evt":{"lock_id":0,"state":true}}} // 同步到云端服务器 // 6. 设备LED指示灯闪烁确认 LED状态: 绿灯闪烁3次 ``` ### 10.3. 传感器事件示例 #### 10.3.1. 门磁传感器检测流程 ```json // 用户开门时触发门磁传感器 {"event":{"door_sensor_triggered_evt":{"state":true,"timestamp":135893}}} // 30秒后仍未关门,触发超时告警 {"event":{"door_open_timeout_evt":{"lock_id":0,"duration":35,"timestamp":140893}}} // 用户关门时再次触发门磁传感器 {"event":{"door_sensor_triggered_evt":{"state":false,"timestamp":170893}}} ``` #### 10.3.2. 手柄传感器激活流程 ```json // 用户按压门锁把手激活设备 {"event":{"handle_sensor_triggered_evt":{"state":true,"timestamp":135893}}} // 设备从休眠状态唤醒 {"event":{"wake_up_evt":{"wake_reason":"handle_sensor","timestamp":135895}}} // 手动激活事件(绿灯亮起,播放提示音) {"event":{"manual_activate_evt":{"lock_id":0,"timestamp":135900}}} // 用户释放把手 {"event":{"handle_sensor_triggered_evt":{"state":false,"timestamp":140893}}} ``` ### 10.4. 综合应用场景 #### 10.4.1. 智能门锁完整操作流程 ```json // 1. 用户按压把手激活设备(从休眠唤醒) {"event":{"wake_up_evt":{"wake_reason":"handle_sensor","timestamp":135893}}} {"event":{"manual_activate_evt":{"lock_id":0,"timestamp":135900}}} // 2. 设备指示灯变绿表示激活 LED状态: 绿灯亮起 // 3. 用户手机APP扫码连接 BLE连接建立成功 {"event":{"ble_connected_evt":{"dev_name":"iPhone","timestamp":136000}}} // 4. APP发送开锁命令 BLE写入: {"ctrl_cmd":{"open_lock_cmd":0}} // 5. 设备执行开锁并反馈(同时同步到云端) BLE通知: {"ask":true} {"event":{"lock_state_changed_evt":{"lock_id":0,"state":true}}} // BLE通知手机 NBIOT上报: {"event":{"lock_state_changed_evt":{"lock_id":0,"state":true}}} // 同步到云端服务器 LED状态: 绿灯闪烁确认开锁成功 // 6. 用户开门(事件同时通过BLE和NBIOT上报) {"event":{"door_sensor_triggered_evt":{"lock_id":0,"state":true,"timestamp":136500}}} // 7. 用户关门(事件同时通过BLE和NBIOT上报) {"event":{"door_sensor_triggered_evt":{"state":false,"timestamp":140000}}} // 8. 5分钟后设备自动进入休眠 {"event":{"enter_sleep_evt":{"timestamp":436000}}} // 注意:所有通过BLE触发的事件都会同步到云端服务器,确保数据一致性 ``` #### 10.4.2. 异常情况处理示例 ```json // 1. 门异常开启告警(未经授权开门) {"event":{"door_abnormal_open_evt":{"lock_id":0,"timestamp":142893}}} // LED状态指示 LED状态: 红灯闪烁 // 2. 门开启超时告警 {"event":{"door_open_timeout_evt":{"lock_id":0,"duration":35,"timestamp":140893}}} // LED状态指示 LED状态: 黄灯闪烁 // 3. 门关闭后未上锁告警 {"event":{"door_not_locked_evt":{"lock_id":0,"timestamp":148293}}} // LED状态指示 LED状态: 红灯常亮 // 4. 电压异常告警 {"event":{"voltage_abnormal_evt":{"voltage":3.1,"timestamp":160893}}} // LED状态指示 LED状态: 红灯快闪 ``` ## 十一、版本历史 ### v1.0.0 (当前版本) - **LOCK产品专用协议创建**: 基于主协议v1.8为D2_LOCK产品创建专门的协议文档 - **双路电控锁功能**: - 支持2个独立电控锁控制(编号0-1) - 支持开锁和锁定两种操作 - 提供批量操作和单个操作两种模式 - 通过继电器控制实现锁定和开锁功能 - **双协议通讯支持**: - NBIOT协议: MQTT、TCP Client、HTTP Server - 蓝牙协议: BLE外围设备模式,支持手机APP直连 - 数据格式统一使用JSON格式 - **传感器检测功能**: - 门磁传感器: 检测门开启/关闭状态 - 手柄传感器: 检测手动开锁操作 - 支持传感器去抖设置和实时事件上报 - **智能休眠功能**: - 支持自动休眠和手动休眠 - 多种唤醒方式(手柄、按键、BLE连接等) - 低功耗设计,延长电池使用寿命 - **指示和反馈功能**: - LED状态指示: 支持4路LED控制(常亮/闪烁/呼吸/关闭) - LED指示: 状态指示和告警提示 - 支持音量调节和提示音自定义 - **安全告警机制**: - 门异常开启告警 - 门开启超时告警 - 门关闭后未上锁告警 - 电压异常告警 - **动态Ping配置**: 继承主协议v1.8的动态ping字段配置功能 - **参数和状态管理**: - 丰富的参数配置选项 - 实时状态监控和上报 - 完整的事件上报机制 - **应用场景支持**: - 现场APP扫码开锁 - 远程开锁控制 - 微信小程序授权开锁 - 智能门锁控制盒应用 ### 基于主协议版本 - **v1.8**: 动态Ping配置功能、完善的事件上报机制 - **v1.7**: 通信协议完善和优化 - **v1.6**: 基础协议框架和多产品支持
admin
2025年8月20日 21:33
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码