Skip to content

事件类型

本文档定义门锁上报的所有事件类型及其详情格式。

事件结构

protobuf
message Event {
  uint64 event_id = 1;          // 事件ID
  EventType type = 2;           // 事件类型
  uint64 timestamp = 3;         // 发生时间(UNIX毫秒时间戳)
  uint32 user_id = 4;           // 关联用户ID(0=系统事件)
  uint32 credential_id = 5;     // 关联凭证ID(0=无关联凭证)
  CredentialType credential_type = 6; // 凭证类型
  string detail = 7;            // 事件详情(JSON格式)
}
字段类型说明
event_iduint64事件唯一ID
typeEventType事件类型枚举
timestampuint64发生时间(UNIX毫秒时间戳)
user_iduint32关联用户ID,系统事件为 0
credential_iduint32关联凭证ID,无关联凭证为 0
credential_typeCredentialType凭证类型
detailstring事件详情,JSON 格式字符串

事件类型总览

protobuf
enum EventType {
  // 锁状态事件 (0x00-0x0F)
  UNLOCK = 0;                   // 开锁(配合 credential_type 区分开锁方式)
  LOCK = 1;                     // 上锁
  DEADLOCK = 2;                 // 反锁
  DOOR_OPEN = 3;                // 门已打开(门磁感应)
  DOOR_CLOSED = 4;              // 门已关闭(门磁感应)
  PASSAGE_MODE_ON = 5;          // 常开模式开启
  PASSAGE_MODE_OFF = 6;         // 常开模式关闭
  // 预留 9 个 (0x07-0x0F)

  // 用户管理事件 (0x10-0x1F)
  USER_ADDED = 16;              // 添加用户
  USER_DELETED = 17;            // 删除用户
  USER_UPDATED = 18;            // 更新用户
  USERS_CLEARED = 19;           // 清空所有用户
  // 预留 12 个 (0x14-0x1F)

  // 凭证管理事件 (0x20-0x2F)
  CREDENTIAL_ADDED = 32;        // 添加凭证
  CREDENTIAL_DELETED = 33;      // 删除凭证
  CREDENTIAL_UPDATED = 34;      // 更新凭证
  CREDENTIALS_CLEARED = 35;     // 清空某类凭证(配合 credential_type)
  // 预留 12 个 (0x24-0x2F)

  // 报警事件 (0x40-0x5F)
  DURESS = 64;                  // 胁迫报警(使用胁迫凭证触发)
  TAMPER = 65;                  // 防撬报警
  INTRUSION = 66;               // 入侵报警(多次错误尝试)
  LOITER = 67;                  // 逗留/徘徊报警
  OBSTRUCTION = 68;             // 遮挡报警(摄像头/传感器被遮挡)
  DOOR_AJAR = 69;               // 门未关好报警(门磁开启超时)
  // 预留 26 个 (0x46-0x5F)

  // 系统事件 (0x60-0x7F)
  LOW_BATTERY = 96;             // 低电量警告
  POWER_OFF = 97;               // 电池耗尽关机
  TIME_SYNC = 98;               // 时间同步
  SETTINGS_CHANGED = 99;        // 设置变更
  FACTORY_RESET = 100;          // 恢复出厂设置
  FIRMWARE_UPDATED = 101;       // 固件升级完成
  // 预留 26 个 (0x66-0x7F)

  // 其他事件 (0x80-0x8F)
  DOORBELL = 128;               // 门铃
  REMOTE_UNLOCK = 129;          // 远程开锁(云端下发)
  INSIDE_UNLOCK = 130;          // 室内开锁(按键/把手)
  // 预留 13 个 (0x83-0x8F)
}

锁状态事件 (0x00-0x0F)

记录门锁的开关状态变化。

标识说明detail
0UNLOCK开锁
1LOCK上锁
2DEADLOCK反锁(室内反锁)
3DOOR_OPEN门已打开(门磁感应)
4DOOR_CLOSED门已关闭(门磁感应)
5PASSAGE_MODE_ON常开模式开启
6PASSAGE_MODE_OFF常开模式关闭

开锁

枚举值:UNLOCK

通过凭证开锁,开锁方式通过 credential_type 字段区分:

credential_type开锁方式
KEYAPP/小程序开锁
PASSWORD密码开锁
OFFLINE_PASSWORD离线密码开锁
CARD卡片开锁
FINGERPRINT指纹开锁
FACE人脸开锁
PALM_VEIN掌静脉开锁
REMOTE遥控器开锁

常开模式开启

枚举值:PASSAGE_MODE_ON

json
{
  "expire_at": 1735689600000
}
字段类型说明
expire_atuint64常开模式结束时间(UNIX毫秒,0=手动关闭)

用户管理事件 (0x10-0x1F)

记录用户的增删改操作。

标识说明detail
16USER_ADDED添加用户
17USER_DELETED删除用户
18USER_UPDATED更新用户信息
19USERS_CLEARED清空所有用户

添加/删除/更新用户

枚举值:USER_ADDED / USER_DELETED / USER_UPDATED

json
{
  "target_user_id": 5,
  "target_role": 0
}
字段类型说明
target_user_iduint32被操作的用户ID
target_roleuint32用户角色(0=普通用户,1=管理员,2=拥有者)

凭证管理事件 (0x20-0x2F)

记录凭证的增删改操作。

标识说明detail
32CREDENTIAL_ADDED添加凭证
33CREDENTIAL_DELETED删除凭证
34CREDENTIAL_UPDATED更新凭证
35CREDENTIALS_CLEARED清空某类凭证

添加/删除/更新凭证

枚举值:CREDENTIAL_ADDED / CREDENTIAL_DELETED / CREDENTIAL_UPDATED

json
{
  "target_credential_id": 10,
  "target_credential_type": 4,
  "target_user_id": 5
}
字段类型说明
target_credential_iduint32被操作的凭证ID
target_credential_typeuint32凭证类型
target_user_iduint32凭证归属用户ID

清空某类凭证

枚举值:CREDENTIALS_CLEARED

json
{
  "target_credential_type": 4,
  "count": 3
}
字段类型说明
target_credential_typeuint32被清空的凭证类型
countuint32清空数量

报警事件 (0x40-0x5F)

记录各类报警,需要及时通知用户。

标识说明detail
64DURESS胁迫报警
65TAMPER防撬报警
66INTRUSION入侵报警(多次错误尝试)
67LOITER逗留/徘徊报警
68OBSTRUCTION遮挡报警
69DOOR_AJAR门未关好报警

胁迫报警

枚举值:DURESS

使用胁迫凭证开锁时触发。门正常打开,同时静默上报此事件。

胁迫信息通过 Event 的 credential_typecredential_id 字段获取。

防撬报警

枚举值:TAMPER

门锁被撬动或拆卸时触发。

入侵报警

枚举值:INTRUSION

多次错误尝试后触发,门锁进入锁定状态。

json
{
  "attempt_count": 5,
  "lockout_minutes": 3,
  "credential_type": 1
}
字段类型说明
attempt_countuint32错误尝试次数
lockout_minutesuint32锁定时长(分钟)
credential_typeuint32尝试的凭证类型(密码/指纹等)

逗留报警

枚举值:LOITER

有人在门前逗留/徘徊时触发(需门锁支持人体感应或摄像头)。

json
{
  "duration": 60
}
字段类型说明
durationuint32逗留时长(秒)

遮挡报警

枚举值:OBSTRUCTION

传感器被遮挡时触发。

json
{
  "sensor": "camera"
}
字段类型说明
sensorstring被遮挡的传感器

sensor 可选值:

  • camera - 摄像头
  • fingerprint - 指纹传感器
  • face - 人脸传感器

门未关好报警

枚举值:DOOR_AJAR

门磁感应开启超过设定阈值后触发。

json
{
  "duration": 30
}
字段类型说明
durationuint32门未关持续时长(秒)

触发逻辑

门磁感应到 DOOR_OPEN 后,若超过用户设置的时间阈值(如 30 秒)门仍未关闭,则触发 DOOR_AJAR 报警。

系统事件 (0x60-0x7F)

记录系统级别的状态变化。

标识说明detail
96LOW_BATTERY低电量警告
97POWER_OFF电池耗尽关机
98TIME_SYNC时间同步
99SETTINGS_CHANGED设置变更
100FACTORY_RESET恢复出厂设置
101FIRMWARE_UPDATED固件升级完成

低电量警告

枚举值:LOW_BATTERY

json
{
  "level": 10
}
字段类型说明
leveluint32当前电量百分比

设置变更

枚举值:SETTINGS_CHANGED

json
{
  "key": "auto_lock_delay",
  "old": "30",
  "new": "60"
}
字段类型说明
keystring设置项标识
oldstring原值
newstring新值

固件升级完成

枚举值:FIRMWARE_UPDATED

json
{
  "old_version": "1.0.0",
  "new_version": "1.1.0"
}
字段类型说明
old_versionstring原固件版本
new_versionstring新固件版本

其他事件 (0x80-0x8F)

标识说明detail
128DOORBELL门铃
129REMOTE_UNLOCK远程开锁(云端下发)
130INSIDE_UNLOCK室内开锁(按键/把手)

远程开锁

枚举值:REMOTE_UNLOCK

通过云端下发指令开锁,与 UNLOCK 的区别是不经过蓝牙通道。

室内开锁

枚举值:INSIDE_UNLOCK

通过门内按键或把手开锁,无需凭证验证。

无额外参数的事件

以下事件 detail 为空字符串 ""

事件说明
LOCK上锁
DEADLOCK反锁
DOOR_OPEN门已打开
DOOR_CLOSED门已关闭
PASSAGE_MODE_OFF常开模式关闭
USERS_CLEARED清空所有用户
DURESS胁迫报警(信息在 credential_id)
TAMPER防撬报警
POWER_OFF电池耗尽关机
TIME_SYNC时间同步
FACTORY_RESET恢复出厂设置
DOORBELL门铃
REMOTE_UNLOCK远程开锁
INSIDE_UNLOCK室内开锁

物联网设备通信协议文档