{
16949: ["Xiaomi", "Xiaomi Smart Door Lock 2 (Face Unlock)", "loock.lock.t3pmax"],
"spec": [
# action sensors 传感器
BaseConv("action", "sensor"),
# ---------------------------
# SIID 4 & 10: Battery Service
# ---------------------------
# battery 电池
BaseConv("main_battery", "sensor", mi="4.p.1003"),
BaseConv("camera_battery", "sensor", mi="10.p.1"), # 摄像头电池
# BaseConv("main_battery", "sensor", mi="4.p.1003", entity={"category": "diagnostic", "enabled": True, "lazy": False, "units": "%"}),
# BaseConv("camera_battery", "sensor", mi="10.p.1", entity={"category": "diagnostic", "enabled": True, "lazy": False, "units": "%"}),
# MapConv("battery_low", "binary_sensor", mi="3.p.1", map={1: False, 2: True}), # diagnostic
MapConv( # 摄像头低电量(当 abnormal_condition=21 时触发)
"camera_battery_low",
"binary_sensor",
mi="2.p.6",
map={21: True},
),
# The door lock status 门开/关状态
MapConv("lock", "binary_sensor", mi="3.p.1021", map={
16: False,
20: False,
24: False,
28: False,
32: True,
36: True,
40: True,
44: True,
48: True,
52: True,
56: True,
60: True,
64: True,
68: True,
72: True,
76: True}),
# # Door status 门状态
MapConv("door_state", "sensor", mi="3.e.1021", map={
16: "Locked",
20: "Locked",
24: "Locked",
28: "Locked",
32: "Unlocked",
36: "Unlocked",
40: "Unlocked",
44: "Unlocked",
48: "Leaving The Door Open Timed Out",
52: "Leaving The Door Open Timed Out",
56: "Leaving The Door Open Timed Out",
60: "Leaving The Door Open Timed Out",
64: "Door Was Ajar",
68: "Door Was Ajar",
72: "Door Was Ajar",
76: "Door Was Ajar"}),
# Operation Method 开锁方式
MapConv("Operation_Method", "sensor", mi="2.e.1020.p.2", map = {
1: "智能设备",
2: "指纹",
3: "密码",
4: "NFC",
5: "人脸识别",
6: "指静脉",
7: "掌纹",
8: "钥匙",
9: "一次性密码",
10: "周期密码",
11: "HomeKit",
12: "胁迫开锁",
13: "两步验证",
14: "Turntable",
15: "手动开锁",
16: "Auto"},),
# Operation ID 开锁ID
BaseConv("Operation_ID", "sensor", mi="2.e.1020.p.2"),
# Abnormal Condition 异常状态
ConstConv("action", "sensor", mi="2.e.1007", value="error"),
BaseConv("error_id", "sensor", mi="2.e.1007.p.6"),
MapConv("abnormal_condition", "sensor", mi="2.e.1007.p.6", map={
1: "多种方法频繁解锁失败",
2: "密码频繁解锁失败",
3: "指纹频繁解锁失败",
4: "NFC频繁解锁失败",
5: "人脸频繁解锁失败",
6: "掌纹频繁解锁失败",
7: "指静脉频繁解锁失败",
8: "钥匙频繁解锁失败",
9: "门锁损坏",
10: "上锁失败",
11: "离开家后从内部解锁",
12: "门锁被重置",
13: "钥匙孔中检测到异物",
14: "钥匙未拔出",
15: "门锁指纹传感器异常",
16: "门锁机械故障",
17: "门锁主要部件故障",
18: "锂电池温度过高",
19: "门锁电池电量低",
20: "门锁电池即将耗尽",
21: "门锁摄像头电池电量低",
22: "门锁摄像头电池即将耗尽",
23: "门锁超时未关",
24: "门半开着",
25: "门被强行打开",
26: "Pir触发器三十"}),
BaseConv("timestamp", "sensor", mi="2.e.1007.p.5"),
# lock action 门锁执行动作
MapConv("Lock Action", "sensor", mi="2.e.1020.p.3", map={
1: "锁定",
2: "解锁",
3: "外部手动上锁",
4: "从内部锁定",
5: "从内部开锁",
6: "开启童锁",
7: "关闭童锁",
8: "触发离家模式",
9: "解除离家模式"}),
# Operation Position 哪里开门
MapConv("position", "sensor", mi="2.e.1020.p.1", map={1: "Indoor", 2: "OutDoor", 3: "Not Tell The Inside Or Outside Of The Door"}),
# doorbell action 门铃
ConstConv("action", mi="5.e.1006", value="doorbell"),
BaseConv("timestamp", mi="5.e.1006.p.1"),
# ---------------------------
# SIID 8: Motion Detection
# ---------------------------
MapConv( # 移动侦测灵敏度
"motion_sensitivity",
"select",
mi="8.p.3",
map={0: "high", 1: "medium", 2: "low"}
),
]
},