-
Notifications
You must be signed in to change notification settings - Fork 345
Handle BLE Locks
Alex X edited this page Nov 19, 2021
·
1 revision
BLE locks have an action entity, just like buttons. You need to do something with the lock to get data from it.
The state changes to door
, lock
, fingerprint
, armed
when an event occurs. Details of the event are in the entity attributes.
action
: fingerprint
-
key_id
- Key ID in full hex format -
action_id
: 0,message
: Match successful -
action_id
: 1,message
: Match failed -
action_id
: 2,message
: Timeout -
action_id
: 3,message
: Low quality -
action_id
: 4,message
: Insufficient area -
action_id
: 5,message
: Skin is too dry -
action_id
: 5,message
: Skin is too wet
action
: door
-
action_id
: 0,message
: Door is open -
action_id
: 1,message
: Door is closed -
action_id
: 2,message
: Timeout is not closed -
action_id
: 3,message
: Knock on the door -
action_id
: 4,message
: Breaking the door -
action_id
: 5,message
: Door is stuck
action
: lock
-
key_id
- Key ID in short decimal format -
action_id
: 0,message
: Unlock outside the door -
action_id
: 1,message
: Lock -
action_id
: 2,message
: Turn on anti-lock -
action_id
: 3,message
: Turn off anti-lock -
action_id
: 4,message
: Unlock inside the door -
action_id
: 5,message
: Lock inside the door -
action_id
: 6,message
: Turn on child lock -
action_id
: 7,message
: Turn off child lock -
method_id
: 0,method
: bluetooth -
method_id
: 1,method
: password -
method_id
: 2,method
: biological -
method_id
: 3,method
: key -
method_id
: 4,method
: turntable -
method_id
: 5,method
: nfc -
method_id
: 6,method
: one-time password -
method_id
: 7,method
: two-step verification -
method_id
: 8,method
: coercion -
method_id
: 10,method
: manual -
method_id
: 11,method
: automatic -
key_id
: 0xc0de0000,error
: Frequent unlocking with incorrect password -
key_id
: 0xc0de0001,error
: Frequent unlocking with wrong fingerprints -
key_id
: 0xc0de0002,error
: Operation timeout (password input timeout) -
key_id
: 0xc0de0003,error
: Lock picking -
key_id
: 0xc0de0004,error
: Reset button is pressed -
key_id
: 0xc0de0005,error
: The wrong key is frequently unlocked -
key_id
: 0xc0de0006,error
: Foreign body in the keyhole -
key_id
: 0xc0de0007,error
: The key has not been taken out -
key_id
: 0xc0de0008,error
: Error NFC frequently unlocks -
key_id
: 0xc0de0009,error
: Timeout is not locked as required -
key_id
: 0xc0de000a,error
: Failure to unlock frequently in multiple ways -
key_id
: 0xc0de000b,error
: Unlocking the face frequently fails -
key_id
: 0xc0de000c,error
: Failure to unlock the vein frequently -
key_id
: 0xc0de000d,error
: Hijacking alarm -
key_id
: 0xc0de000e,error
: Unlock inside the door after arming -
key_id
: 0xc0de000f,error
: Palmprints frequently fail to unlock -
key_id
: 0xc0de0010,error
: The safe was moved -
key_id
: 0xc0de1000,error
: The battery level is less than 10% -
key_id
: 0xc0de1001,error
: The battery is less than 5% -
key_id
: 0xc0de1002,error
: The fingerprint sensor is abnormal -
key_id
: 0xc0de1003,error
: The accessory battery is low -
key_id
: 0xc0de1004,error
: Mechanical failure
Write me if the values are wrong somewhere. I translated from Chinese documentation.
Example of several automations:
automation:
- alias: Doorbell
trigger:
platform: state
entity_id: sensor.ble_1010274797_action
to: door
condition:
condition: template
value_template: "{{ trigger.to_state.attributes['action_id'] == 3 }}"
action:
service: persistent_notification.create
data_template:
title: Doorbell
message: The doorbell is ringing
- alias: Lock Error
trigger:
platform: state
entity_id: sensor.ble_1010274797_action
to: lock
condition:
condition: template
value_template: "{{ trigger.to_state.attributes['error'] }}"
action:
service: persistent_notification.create
data_template:
title: Lock ERROR
message: "{{ trigger.to_state.attributes['error'] }}"
- alias: Open lock
trigger:
platform: state
entity_id: sensor.ble_1010274797_action
to: lock
condition:
condition: template
value_template: "{{ trigger.to_state.attributes['action_id'] == 0 }}"
action:
service: persistent_notification.create
data_template:
title: Lock is open
message: |
Opening method: {{ trigger.to_state.attributes['method'] }}
User ID: {{ trigger.to_state.attributes['key_id'] }}