家庭锁-功能实现说明

更新时间:2022-03-02 02:05:43下载pdf

Zigbee 门锁功能辅助文档

Zigbee门锁功能实现说明

版本 版本说明 修订日期 备注
V1.0.0 修改 2020.3.2 新增恢复出厂设置修改远程开门

涉及协议内容请参考 ZigBee 门锁通用MCU对接协议

涉及 DP 内容请参考ZigBee 家庭锁 DP 解锁说明

配网

使用场景

初次配网或操作移除网络后的配网,模块自带功能,无 DP。

实现流程

配置子设备前,需要将网关先用 APP 配上网,才能添加 Zigbee 子设备。具体配网步骤,请参考:
如何在APP添加设备让设备联网?(Zigbee)

正常完成配网后给模块上电上传数据,只需要给模块上电,等待模块返回已连接服务器的网络状态即可。

流程参考如下:

家庭锁-功能实现说明

使用协议:0x01 查询产品信息 ——0x02 查询模块网络状态 —— 0x03 配置 Zigbee 模块

电量显示功能

使用场景

显示设备当前电量情况。

涉及DP

DP 10 剩余电量:显示当前剩余电量百分比,取值范围0~100

电量上报逻辑,以下情况要求上报:

  1. 设备首次配网/重新配网
  2. 设备重启(更换电池)
  3. 电量发生变化
  4. 定期上报,如 10 天更新上报一次

使用协议:0x05 实时状态上报

开门记录功能

使用场景

App 上可查看门锁的历史开门记录。

涉及DP

DP 1 指纹解锁

DP 2 普通密码解锁

DP 3 临时密码解锁

DP 4 动态密码解锁

DP 5 卡片解锁

DP 6 人脸解锁

DP 7 机械钥匙解锁

DP 41 远程开门记录

DP 44 虹膜解锁

DP 45 掌纹解锁

DP 46 指静脉解锁

注:涉及全部 DP 均需要联系项目经理开通权限,APP 才能显示开门记录信息,且无条数限制

DP 说明

指纹解锁、普通密码解锁、卡片解锁、人脸解锁、虹膜解锁、掌纹解锁、指静脉解锁:DP 值用于区分人员(取值范围 0 ~ 999), 上报时面板显示对应人员解锁信息。如上报普通密码解锁 DP 值为1,面板显示“1 普通密码解锁”。通过 APP 将该编号与成员关联,即可显示对应人员名称开门,具体操作可参考本文成员管理部分。
临时密码解锁、动态密码解锁、机械钥匙解锁、远程开门记录:DP 值无特殊含义(取值范围 0 ~ 999),只为与上面对的数据格式保持统一,上报时面板只显示解锁方式,不做人员区别。如上报钥匙编号 DP 值为 25,面板显示“钥匙解锁”。

实现流程

基本思路:

门锁被打开时,上报对应开门方式的 DP 点,如下表。开门日志显示的记录数据需要在没有网络的情况下,和实际发生的事件一致,因此推荐使用记录型状态上报,具体格式参考协议文档 0x23 命令。在断网时模块保存无法上报成功的数据,当下次有数据上报的时候再重新上报,记录型数据携带时间为设备本地时间。

开门方式 上报DP点 DP值 DP值示例
指纹开门 指纹解锁 与实际对应 1
普通密码开门 普通密码解锁 与实际对应 2
临时密码开门 临时密码解锁 任意值均可 3
动态密码开门 动态密码解锁 任意值均可 4
刷卡开门 卡片解锁 与实际对应 5
人脸识别开门 人脸解锁 与实际对应 6
钥匙开门 机械钥匙解锁 任意值均可 7
APP远程开门 远程开门记录 任意值均可 8
虹膜识别开门 虹膜解锁 与实际对应 9
掌纹识别开门 掌纹解锁 与实际对应 0
指静脉识别开门 指静脉解锁 与实际对应 999

实现流程:

家庭锁-功能实现说明

使用协议:0x23 记录型状态上报

成员管理

使用场景

APP 成员包括家庭成员和非家庭成员两种。家庭成员必须有 APP 账号才能被邀请,受邀人需要同意后才可进入家庭。非家庭成员无需 APP 账号即可添加,只用于做门锁开门记录的对应关系。

APP 上添加成员,并绑定其拥有的开门方式编号,上报编号时 APP 将编号信息转换为对应的成员名称来显示。如:添加成员“测试人员”,并为其绑定指纹编号 3,当设备上报指纹编号 3 的开门信息时,APP 显示“测试人员 指纹解锁”(不绑定成员则显示“3 指纹解锁”)。

实现流程

家庭锁-功能实现说明

消息/报警功能

使用场景

门锁报警被触发时,App 上能及时提示报警,且能查看报警记录

涉及DP

DP 9 报警

DP 14 门铃

DP 35 劫持报警

注:涉及全部 DP 均需要联系涂鸦项目经理开通权限,APP才能显示报警记录信息,且无条数限制

DP 说明

报警:报警支持的内容包括指纹试错报警、密码试错报警、卡试错报警、人脸试错报警、假锁(锁舌卡住)、高温报警、超时未关门、电子锁舌未弹出、防撬报警、钥匙插入、低电报警。
门铃:门锁硬件上如带有门铃功能时选择,上报 DP 值为 0 或 1,APP 上都会显示门铃报警记录。
劫持报警:有劫持报警功能时选择,具体功能由云端实现,设备硬件不需要支持。例如用户通过 App 将指纹 3 标记为劫持报警,若服务器收到指纹 3 的开锁记录,会触发劫持报警。

实现流程

基本思路:

触发报警时,MCU 上报对应报警 DP 值。

注:用记录型状态上报,要采用设备端时间,且要注意时间的准确性。若设备时间比实际时间滞后,上报时 App 报警图标无闪烁提醒,点击进去可以查看到该条报警记录;若以服务端时间为准,设备断网后重新联网,这时 APP 显示记录时间和实际发生的事件不符合。

报警:

家庭锁-功能实现说明
劫持报警:
家庭锁-功能实现说明

使用协议:0x23 记录型状态上报

远程开门功能

使用场景

通过 APP 远程开锁,包括含密远程开门和免密远程开门两种功能。

涉及 DP

DP 21 含密远程开门指令

DP 22 远程开门指令反馈

DP 23 禁用远程开门

DP 41 远程开门记录

DP 48 设置免密远程开门秘钥

DP 49 新免密远程开门-带秘钥

DP 说明

含密远程开门指令: APP 远程开门需要验证密码时使用。模块下发,DP 值为用户在 APP 上输入的密码,设备收到密码后自行校验。

远程开门指令反馈:与含密远程开门指令和免密远程开门配合使用。MCU 上报,点击“远程开门请求”,MCU 收到含密远程开门/免密远程开门指令,本地判断是否开门并上报该指令,拒绝开锁上报 0,同意开锁上报 1。

禁用远程开门:APP 禁用远程开门功能时使用,功能逻辑由 APP 实现。开启禁用远程开门功能后,点击远程开门,APP 无指令下发。

设置免密远程开门秘钥:用户设置不同的选项,新免密密钥失效或者生效。如用户选择所有账号免密时,面板端调用 http 接口下发 DP 48 新远程开门免密密钥到 MCU 端;用户选择禁用远程开门或含密远程开门时,面板端调用 http 接口下发 DP 48 使得免密密钥失效。恢复出厂设置后会删除密钥。

新免密远程开门-带秘钥:APP 远程开门不需要输入密码时使用。模块下发,DP 值无特殊含义。

实现流程

基本思路:

APP 上发起远程开门,设备收到远程开门指令后校验其有效性,控制门锁的状态并进行开门指令反馈。

实现流程:

家庭锁-功能实现说明

动态密码功能

使用场景

主人在 APP 上生成动态密码,有效时间内访客在门锁上输入对应的动态密码即可开门。

实现流程

基本思路:

APP 上获取动态密码,设备端输入动态密码并上报,模块返回校验结果,设备根据回复结果控制门锁状态。动态密码 5 分钟内有效,超时重新获取。

动态密码是不依赖网络实现的临时性密码,该方案依靠算法实现。APP向涂鸦的服务器请求某个门锁当前的动态密码,当门锁收到某个疑似为动态密码的密码时,将该密码提交给涂鸦的模块,同时把当前的时间、管理员密码,一并给到模块。模块收到当前时间、管理员密码,结合模块自己保存的初始秘钥进行运算,将运算后得到的密码与用户输入的密码进行比对。如果比对通过,模块告诉 MCU 开门,比对失败,拒绝开门。

实现流程:

家庭锁-功能实现说明

使用协议:0x07 请求动态密码

临时密码功能

使用场景

主人在 APP 上设置临时密码,有效时间内访客在门锁上输入对应的临时密码即可开门。

涉及DP

DP 24 创建临时密码

DP 25 删除临时密码

DP 26 修改临时密码

DP 27 冻结临时密码

DP 28 解冻临时密码

DP 39 清除门锁临时密码

DP说明

创建临时密码:APP创建临时密码时下发。

删除临时密码:APP删除临时密码时下发。

修改临时密码:APP修改临时密码属性时下发,如修改临时密码、生效/失效时间等。

冻结临时密码:APP冻结临时密码时下发,冻结后密码暂时失效,在密码过期前可解冻恢复使用。

解冻临时密码:APP解冻临时密码时下发。

清除门锁临时密码:用于门锁恢复出厂设置清除所有临时密码。当APP将门锁恢复出厂设置时,云端下发指令清除给门锁清除本地临时密码;门锁本地进行恢复出厂设置时,上报指令给云端同步临时密码状态,若上报失败,需要再下次联网后重新上报。

临时密码状态说明

配置中:密码下发到设备但未收到设备反馈。

注:网关上线或者每隔一小时,到云端查找处于配置中的密码并下发到设备上更新。app上下拉密码列表,或者调用api接口,触发云端主动下发更新 。

未生效:密码未到生效时间

生效中:密码已生效,距离到期时间超过7天

即将过期:密码已生效,距离到期时间在7天之内

已冻结:密码在APP端冻结,若密码超出有效期,APP上无法解冻密码

已失效:密码已到达失效时间

已删除:密码在APP端删除

转换关系如下:

家庭锁-功能实现说明

实现流程

基本思路:

临时密码是指有时效限制的密码。通过 app 创建后,由服务器发送给门锁硬件,门锁会把密码和有效期存在设备上。一旦存了以后,除非收到删除或修改的指令。否则都按照创建的时效性执行——创建、删除、修改,都依赖网络。

临时密码获取流程:

家庭锁-功能实现说明

恢复出厂设置

使用场景

门锁本地或 APP 恢复出厂设置

APP 恢复出厂设置

Zigbee 公版 APP 端进行恢复出厂设置操作,流程如下:

  1. 用户在 APP 操作恢复出厂设置(解绑并清除数据)
  2. 云端清空所有临时密码,开门记录等信息
  3. 云端下发清除门锁临时密码指令(DP39)
  • 如果设备此时能接收该 DP 39,则设备端清空临时密码,并返回 ack 告知服务端已接收到该指令。此时,设备端的临时密码失效。
  • 如果设备没有收到该 DP 39(设备离线或者云端与设备的链路已经断开),则需要在设备重新配网后,服务端主动下发 DP 39,重置设备端全部临时密码。设备端接收到该指令并返回ack,告知已经清空和重置临时密码。

设备恢复出厂设置重新配网后,用户在 APP 创建临时密码时,云端需要判断设备是否清空了临时密码(以是否接收到设备端的清空 ack 为判断条件)

  • 如果设备清空了全部临时密码,并回复云端该ack,则创建临时密码时,不需要再次重置。
  • 如果设备本地没有清空临时密码,即云端没有收到设备清空的 ack,则云端再次下发 DP39清除门锁临时密码指令。

门锁本地恢复出厂设置

设备本地进行恢复出厂设置,清空本地临时密码,需要上报dp39到云端。这里分两种情况:
第一种情况:上报dp39到云端失败(此时云端的临时密码记录和开门记录还存在),设备需要在下次配网时重新上报该dp39。
第二种情况:上报dp39到云端成功,app端的设备移除,云端的临时密码记录和开门记录被删除。设备下次重新配网时,APP上开门记录和临时密码全部清除。

实现流程

APP 恢复出厂设置:
家庭锁-功能实现说明

门锁本地恢复出厂设置:
家庭锁-功能实现说明