docs: finish the 5.0 pass — integration and developer pages
The "bring the wiki up to 5.0" commit covered the user-facing pages but
left the per-integration pages, the developer pages, and a handful of
smaller ones on the 4.x slot model. Every claim below was verified
against the 5.0.0-tagged code rather than carried over.
Integration pages:
- Z-Wave — users-first framing; Set/Clear PIN go through the driver's
unified access_control API, not the set/clear_lock_usercode services;
PIN length bounds are enforced in the PIN field before a write.
- Matter, Schlage, Akuvox — tag examples reframed onto users ("an LCM
user named Alice whose internal slot number is 3"), version-history
heading framing dropped. ZHA and Zigbee2MQTT needed nothing: their
slot references are device-level facts and their cited symbols
(async_set_usercode, UNREADABLE_CODE) still exist.
Developer pages (Architecture, Provider-State-Management,
Adding-a-Provider, Development-Guide), audited method-by-method:
- async_set_credential returns WriteResult (CONFIRMED / NO_CHANGE /
OPTIMISTIC), not bool; the OPTIMISTIC path drives the
unverified-slot / PENDING_CONFIRMATION lifecycle.
- Coordinator data is keyed by CredentialAddress, not bare slot ints.
- Push providers override setup/teardown_push_subscription; the
subscribe/unsubscribe wrappers are @final.
- async_is_integration_connected is async with a base default;
async_get_users takes a slots scope; slot teardown clears the
credential by default (the #1453 fix), it is not a no-op.
- credential_index_follows_slot documented (pinned everywhere except
Matter, which lets the lock allocate).
- Z-Wave is one native-user provider for both User Code CC and User
Credential CC; exception routing rewritten around the slot circuit
breaker and repair issues; number_of_uses entity row removed.
Smaller pages: Using-Condition-Entities rewritten onto name-keyed users
and the `condition` key (examples still showed slot-keyed YAML with
`entity_id` and the removed number_of_uses check, and a card example
still used the deprecated lcm-slot type); Advanced-Usage no longer tells
you to pick slot ranges; Adding-and-Removing-Locks, the activity-log
page, scheduler-component notes, Home, and debug-logs reframed onto
users. Dashboard/view-level condition_helpers examples deliberately keep
slot-number keys — that is still the real strategy config shape.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
docs: bring the wiki up to 5.0
The code moved from slots to users; the documentation had not. Two new
pages and a pass over what the change made wrong.
New:
- Upgrading to 5.0 — the one-way migration, what happens on the first
restart, entity IDs changing and what that costs automations, the
one-time unmanaged-code repair, and the restore-then-upgrade-again
path that strands recorder history.
- Managing guests and rentals — the three shapes this takes, and which
to pick. A recurring cleaner is a permanent user with a schedule
condition and needs no automation at all; a rental guest is a standing
user whose name and PIN rotate, which works because renaming is free;
add-and-remove is for when the count itself varies.
Updated:
- Services and Actions — add_user and delete_user were missing entirely.
- Custom Cards — lcm-user replaces lcm-slot (deprecated, still works),
addressing by user_entity_id or name, the remove action, and the new
add-user card.
- UI Strategies — the strategies generate user cards now, and an
add-user section. The strategy type and option names are unchanged.
- Blueprints, Tracking lock state change events — both take entity IDs
that all moved, and nothing rewrites an ID stored inside an
automation. Blueprints also gains "Finding a slot number", which the
repo's own BLUEPRINTS.md had and the wiki did not: three blueprints
ask for a number the interface deliberately never shows.
- Migrating from keymaster — reframed onto users. You name a person;
the slot number is chosen by reading the lock.
- Advanced Usage — its rental paragraph now points at the new page
instead of describing the slot-era approach.
Created Advanced Usage (markdown)