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>
Add page on adding/removing locks and recovering from deleted lock entities
Documents the gap reported in lock_code_manager#1348: how to remove a
lock from an existing config entry, that PINs are not cleared from a
removed lock, the repair flow for a lock entity deleted outside LCM,
and the manual core.config_entries edit as a last resort.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>