locks: document per-door code toggles
This commit is contained in:
@@ -46,7 +46,7 @@ user-invocable: true
|
|||||||
|
|
||||||
<references>
|
<references>
|
||||||
<reference file="reference/locks.md"
|
<reference file="reference/locks.md"
|
||||||
summary="Door locks: two zwave_js keypad locks, 8 code slots via helpers, lock_sync_slot single-source script + all-codes wrapper + per-slot and self-healing automations, usercode-cache fix, nightly git backup"
|
summary="Door locks: two zwave_js keypads, 8 shared codes with per-door enable toggles, lock_sync_slot + full/self-healing sync, usercode-cache fix, nightly git backup"
|
||||||
categories=["home-automation"]
|
categories=["home-automation"]
|
||||||
keywords=["lock", "locks", "door code", "door codes", "usercode", "code slot", "keypad", "lock_sync_all_codes", "set_lock_usercode", "zwave", "front door", "bunkhouse"] />
|
keywords=["lock", "locks", "door code", "door codes", "usercode", "code slot", "keypad", "lock_sync_all_codes", "set_lock_usercode", "zwave", "front door", "bunkhouse"] />
|
||||||
</references>
|
</references>
|
||||||
|
|||||||
+15
-11
@@ -5,29 +5,33 @@ Two Z-Wave (zwave_js) keypad locks: `lock.lodge_front_door_lock` (node 3) and
|
|||||||
`lock.bunkhouse_frontdoor_lock`. 8 shared code slots, managed from the
|
`lock.bunkhouse_frontdoor_lock`. 8 shared code slots, managed from the
|
||||||
"Lock Management" Lovelace view via helpers:
|
"Lock Management" Lovelace view via helpers:
|
||||||
`input_text.lock_slotN_user`, `input_text.lock_slotN_code`,
|
`input_text.lock_slotN_user`, `input_text.lock_slotN_code`,
|
||||||
`input_boolean.lock_slotN_enabled` (N = 1–8).
|
`input_boolean.lock_slotN_lodge_enabled`, and
|
||||||
|
`input_boolean.lock_slotN_bunkhouse_enabled` (N = 1–8).
|
||||||
Slot 1 = Fritz family, 2 = cleaner, 4 = carpenter, 5 = backup.
|
Slot 1 = Fritz family, 2 = cleaner, 4 = carpenter, 5 = backup.
|
||||||
|
Legacy `input_boolean.lock_slotN_enabled` helpers remain but are unwired and
|
||||||
|
hidden from the dashboard.
|
||||||
</overview>
|
</overview>
|
||||||
|
|
||||||
<sync>
|
<sync>
|
||||||
All code writes go through `script.lock_sync_slot` (fields: `slot` 1–8), the
|
All code writes go through `script.lock_sync_slot` (fields: `slot` 1–8), the
|
||||||
single source of truth. Per slot it: resolves the code (slot's own code if
|
single source of truth. Per slot and door it resolves the code (slot's own code
|
||||||
`_enabled` on, else the slot-1 family code), REFUSES non-4-10-digit codes
|
if that door's toggle is on, else the slot-1 family code), refuses an invalid
|
||||||
(persistent notification "slot N SKIPPED", nothing written), then per lock does
|
effective code for only that door with a door-specific notification, then does
|
||||||
a UserCode CC `get` (repopulates the Z-Wave value cache so a missing cached
|
a UserCode CC `get` followed by `zwave_js.set_lock_usercode`. Every Z-Wave call
|
||||||
slot can't error) followed by `zwave_js.set_lock_usercode` — every zwave call
|
uses `continue_on_error`, so one door never blocks the other.
|
||||||
`continue_on_error` so one lock/slot never blocks the rest.
|
|
||||||
|
|
||||||
- `script.lock_sync_all_codes` — warns (persistent + `notify.mobile_app_donavan_s_iphone_16_pro`)
|
- `script.lock_sync_all_codes` — warns (persistent + `notify.mobile_app_donavan_s_iphone_16_pro`)
|
||||||
if a lock's `*_node_status` sensor isn't alive/asleep, then runs
|
if a lock's `*_node_status` sensor isn't alive/asleep, then runs
|
||||||
`lock_sync_slot` for slots 1–8.
|
`lock_sync_slot` for slots 1–8.
|
||||||
- `automation.lock_slot_N_sync_both_locks` (×8) — trigger on the slot's
|
- `automation.lock_slot_N_sync_both_locks` (×8, alias "Sync Door Codes") —
|
||||||
`_enabled` OR `_code` helper change → `lock_sync_slot` for that slot.
|
trigger on either door's enabled toggle OR the slot's `_code` helper →
|
||||||
|
`lock_sync_slot` for that slot.
|
||||||
- `automation.lock_codes_full_sync_self_heal` — full sync daily 04:00 and
|
- `automation.lock_codes_full_sync_self_heal` — full sync daily 04:00 and
|
||||||
10 min after HA start, so transient failures heal within a day.
|
10 min after HA start, so transient failures heal within a day.
|
||||||
|
|
||||||
Disabled slots are overwritten with the family code (design choice), so the
|
Each disabled door slot is overwritten with the family code, so the family code
|
||||||
family code exists in multiple lock slots.
|
exists in multiple slots. Slot 1's toggles are no-ops because its fallback is
|
||||||
|
its own family code.
|
||||||
</sync>
|
</sync>
|
||||||
|
|
||||||
<troubleshooting>
|
<troubleshooting>
|
||||||
|
|||||||
Reference in New Issue
Block a user