New ZigBee guest door code blueprint

This commit is contained in:
Nate Harris 2023-03-18 17:21:43 -06:00 committed by GitHub
parent 27a5991f77
commit 618c520497
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -0,0 +1,81 @@
# This script uses ZHA Toolkit (https://github.com/mdeweerd/zha-toolkit) to manage smart door lock codes, and therefore ZHA Toolkit needs to be installed.
# There is no gaurantee that this script will work as expected with your particular ZigBee smart door lock.
# This has been tested against a Kwikset SmartCode 916 (https://www.kwikset.com/products/detail/916-smartcode-traditional-electronic-deadbolt-with-zigbee-technology)
blueprint:
name: Set Guest Door Code (ZigBee)
description: >-
A script that sets a temporary code for a ZigBee smart door lock (via ZHA Toolkit).
This script adds and removes a new code, rather than enabling/disabling an existing code.
domain: script
input:
lock:
description: (Required) Which door lock to program
name: Lock
selector:
target:
entity:
domain: lock
slot:
description: (Required) Which code slot to use
name: Slot
selector:
text:
on_start:
description: (Optional) Action to execute when code is enabled
The lock entity is available via the "lock" variable.
The set code is available via the "code" variable.
The set code slot is available via the "slot" variable.
The validity time is available via the "duration" variable.
name: When code enabled
default: []
selector:
action:
on_end:
description: (Optional) Action to execute when code is disabled
name: When code disabled
default: []
selector:
action:
fields:
code:
description: The code to set
example: "1234"
name: Code
required: true
selector:
text: null
duration:
description: How long the code is valid for
name: Valid for
required: true
selector:
duration:
enable_day: true
variables:
lock: !input lock
slot: !input slot
sequence:
- service: zha.set_lock_user_code
data:
code_slot: "{{ slot }}"
user_code: "{{ code }}"
target:
entity_id: "{{ lock.entity_id }}"
- choose:
- conditions: "{{ true }}"
sequence: !input on_start
- delay: "{{ duration }}"
- service: zha.clear_lock_user_code
data:
code_slot: "{{ slot }}"
target:
entity_id: "{{ lock.entity_id }}"
- choose:
- conditions: "{{ true }}"
sequence: !input on_end
mode: single