docs(developer): rewrite Architecture, Provider-State-Management, Adding-a-Provider for 4.0.0 seam
These three docs predated the User/Credential domain model (#1222),
the BaseLock User->Credential seam (#1225), and the user-tag identity
model (#1239/#1240/#1242). The old contract described
async_set_usercode/async_clear_usercode at the provider boundary and
dict[int, str | None] coordinator data, neither of which match
current code. Rewrites pin the 4.0.0 contract:
Architecture.md:
- Adds the domain model section (User, Credential, CredentialRef,
SlotCredential, LockCapabilities).
- Updates coordinator data shape to dict[int, SlotCredential].
- Documents the user-tag identity model and persistent-user-anchor
lifecycle for native-user providers.
- Replaces the provider-boundary description with the two-tier split
(slot-only vs native-user) and the @final seam methods + the
_set_credential/_delete_credential/_build_tagged_user_name
orchestration helpers.
- Updates exception hierarchy to include LockOperationFailed,
LockCodeManagerProviderError, and the seam's routing per
subclass.
Provider-State-Management.md:
- New section on slot-only vs native-user providers and how the
seam routes each.
- Method surface updated to async_get_users/async_set_credential/
async_delete_credential/async_set_user/async_delete_user/
async_get_capabilities.
- Push updates use coordinator.push_update({slot: SlotCredential}).
- Documents the LCM-slot-from-tag pattern for push handlers under
the user-tag identity model.
- Exception routing table per subclass.
- Adds the async_release_managed_slot slot-teardown hook.
Adding-a-Provider.md:
- Reorganized around the slot-only vs native-user split.
- All code examples rewritten against the current contract,
including the find-or-create-by-tag pattern with legacy adoption
for native-user providers.
- Updated complete minimal example.
- Manual + automated test guidance updated for the new fixtures.
cdaf37f
docs(integrations): update for 4.0.0 user-tag identity model
Akuvox + Schlage: tag format converged from [LCM:<slot>] <name> to
lcm:<slot>:<name>. Note the on-read tolerance for legacy format and
the lazy migration on next write so users know untouched codes still
work.
Matter: bump HA minimum to 2026.6.0 (per #1221). Add a new section
documenting the lcm:<slot>: tag, persistent-user-anchor lifecycle
(users survive PIN clear cycles, removed only when the slot is
removed from LCM config), and Matter credential index being
auto-allocated rather than pinned to LCM slot.
Z-Wave: add a User Credential CC vs User Code CC section. Document
the tag identity for U3C (lcm:<slot>:<name> in user-name), the
fact that user_id is now auto-allocated (no longer pinned to slot),
and the upgrade-time legacy adoption path. Note that UC is
unchanged. Mention the unified access_control API used for both.
924bd69
Document the deobfuscate_log service
Add a section to Services and Actions for the new lock_code_manager.deobfuscate_log
service shipped in #1217. Covers what it replaces, the privacy warning
on the response, the input/output schema, the salt-mismatch cases
(other HA instance or rotated PIN), and the CRC32 caveat so users
don't mistake the masking for cryptographic protection.
Update the intro count from six to seven services and split the
"helpers" wording to cover both generate_pin and deobfuscate_log.
5058c64
docs: mark show_code_sensors as no-op in slot-card layout
The slot card no longer renders a per-lock PIN column in the Lock
Status section (see lock_code_manager PR #1203). The hero PIN at
the top of the slot card already shows the synced code with its
own show/hide toggle.
show_code_sensors stays accepted on slot-card configs for
backward compatibility but is a no-op there. The flag still
drives code-sensor rendering in the legacy use_slot_cards: false
entities-card layout, which is unchanged.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
aa98e34
docs(keymaster): swap step order so keymaster entry is removed before LCM takes the lock
Previous order had LCM configured while keymaster's entry was still
active for the same lock -- both integrations run drift detection and
periodic sync, so they would fight each other for that window.
Frame the migration as per-lock: delete the keymaster entry first, then
add an LCM entry for that lock. Users with several keymaster-managed
locks can migrate one at a time and leave keymaster installed for the
rest. Promote the "remove keymaster entry" step before "install LCM"
and "add LCM entry"; reframe the up-front warning around the conflict
window rather than just the leftover-PIN gotcha.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
18a9fd8
docs: add migrating-from-keymaster page
Walks through the practical steps to move from keymaster to LCM: the PIN
cleanup situation (keymaster does not call clear_usercode on slot or entry
removal), feature mapping (notifications/access-count/date-range/day-of-week
limits map to LCM blueprints and condition entities), a 10-step migration
procedure, conversion recipes for each keymaster restriction type, provider
parity, and what doesn't translate (the auto-generated Lovelace dashboard,
autolock entity model, entity naming).
Wired into the Getting Started section in both the sidebar and the home
page.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
0d28cfb
docs: clarify scheduler-component is usable via slot enabled toggles
Reframe the section so the limitation is scoped to using scheduler entities as
LCM condition entities (the entity states track timer runtime, not access
windows). Add a workaround section explaining that scheduler-component can drive
the slot Enabled switch directly via its action list, with all gating logic
living inside scheduler-component's own weekdays/conditions config.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3ec3ee2
Document dashboard strategy auto-registration in HA 2026.5+
Quick-start now leads with the Add Dashboard picker flow; YAML path
demoted to fallback for older HA / option customization.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
951b5f5
docs: spell out strategy scope (integration vs config entry vs slot/lock)
The four strategies differ primarily in *what slice of LCM data* they
render, but neither the hub nor the strategies page made that explicit.
Easy to miss that the dashboard strategy auto-discovers every config
entry while the view strategy only renders one.
- UI-Strategies: replace the bullet list with a scope-first table and
a one-paragraph "in practical terms" guide.
- Add-a-UI hub: add a Scope column to the decision table.
a21ea35
docs: split UI page into hub + UI-Strategies + Custom-Cards; update options
The single Add-a-UI-for-lock-code-management page was conflating four
distinct surfaces (dashboard creation, four strategies, two cards, code
display modes, legacy mode) into 264 lines that were hard to scan and
out of date in several places.
Split into three pages along the natural strategy/card seam:
- Add-a-UI-for-lock-code-management — slimmed to a hub with a "which
approach should I pick?" decision table and the dashboard quick-start.
URL preserved so external links continue to resolve.
- UI-Strategies — dashboard strategy, view strategy, slot section
strategy, lock section strategy, legacy mode, and the deprecated
option mappings. Common audience: "let LCM generate UI from my config".
- Custom-Cards — slot card, lock codes card, code display modes, and
the visual-editor note. Common audience: "I'll compose my own dash".
While restructuring, document options that were missing from the old
page or had drifted from source:
- condition_helpers (all four strategies + slot card) — extra helper
entities surfaced inside the slot card. Schema differs across
strategies (per-config-entry vs per-slot vs flat array).
- show_lock_count (slot card + slot section strategy) — header badge.
- collapsed_sections accepts both `condition` and `conditions`.
- Slot card status badges include `pending sync` and `suspended`.
- Lock codes card sync indicators distinguish in-sync, out-of-sync,
syncing, and suspended.
- Inline-edit on unmanaged slots in the lock-codes card calls
set_usercode/clear_usercode (cross-link to Services-and-Actions).
Sidebar gains a new UI section listing all three pages; Home.md mirrors
the change. Configuration-Structure stays under Getting Started.
17f8da5
docs: add Services and Actions page; list ZHA + Z2M; remove Number of Uses
- New Services-and-Actions page documenting all six registered actions
(set_usercode, clear_usercode, set_slot_condition, clear_slot_condition,
hard_refresh_usercodes, generate_pin) with parameters, errors, and
example automations. Linked from sidebar and Home under Features.
- Add ZHA and Zigbee2MQTT to the Supported Integrations list on Home.md
(already present in the sidebar; Home was out of date).
- Delete Using-"Number-of-Uses".md — the feature was removed in 2.0; the
Slot Usage Limiter blueprint is the replacement. Update the dangling
reference in Blueprints.md to plain text.
2f6e5e7
docs: add ZHA wiki page, fix Z2M code slot events info
823a6b7
docs: use checkmark/X emoji in supported operations tables, update Z2M code events
c240bc0
docs: add Zigbee2MQTT integration wiki page
aad7eed
Update notifier and auto-relock wiki docs to match implementation
8edcf77
Add auto-relock, lock on door close, and slot usage notifier blueprints
997665d
Revert "Add link to issue #1022"
This reverts commit 1d70e4891d1c348047b66ec20892f760437e6a1c.
c83c257
Add FAQ: PIN codes visible in activity log
52ec4a9
Document condition helpers, date range blueprint, and condition linker
5092aff
Revert "Document date range condition, condition linker blueprints, and condition_helpers config"
This reverts commit 5422c3a6e1b7d06f612ecced404e218e4f193c2f.
dea5a7d
Document date range condition, condition linker blueprints, and condition_helpers config
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
5422c3a
Update Matter page: LockUserChange push updates and event subscriptions
a28a5ef
Update Matter integration page for LockOperation event support
83d6c8a
Add Z-Wave wiki page, reorganize sidebar, add HA docs links, add Blueprints to nav
29b1a1e
Add Matter, Schlage, Akuvox wiki pages; update blueprints and deprecation notices
ba30f02
Add Architecture page from repo
19fb57e
Add manual release test plan
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
0d0e029
Update dev docs from repo (adding-a-provider, provider-state-management, development-guide)
0fe09ef
Document PIN obfuscation in debug logs
40c6b11