diff --git a/home_assistant/blueprints/scripts/set_guest_door_code_zigbee.yaml b/home_assistant/blueprints/scripts/set_guest_door_code_zigbee.yaml new file mode 100644 index 0000000..29f76e5 --- /dev/null +++ b/home_assistant/blueprints/scripts/set_guest_door_code_zigbee.yaml @@ -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