Skip to content

History

Revisions

  • docs: prepare the wiki for 6.0 Users live in config subentries: Configure edits only the locks, and Add user offers one user or a pasted block. The four slot-addressed actions and the lock_state_changed event are removed, with their replacements listed where people will look for the old names. The Condition Linker takes a name. A new Upgrading to 6.0 page covers the migration, the removals, the disabled-by-default PIN in-sync sensor, and the fixes since 5.5.5. Also corrects drift found on the way: removing a lock has cleared its PINs since 5.0.0, the usage limiter and notifier take entities rather than slot numbers, and the keymaster steps still described slot ranges. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

    @raman325 raman325 committed Sep 16, 2026
    34a0800
  • docs: add_user and delete_user take lists, with the single-user shorthand

    @raman325 raman325 committed Aug 28, 2026
    157f898
  • docs: the four name-addressed actions, and ESPHome is supported without a provider

    @raman325 raman325 committed Aug 27, 2026
    ce74274
  • docs: document set_credential and clear_credential, and deprecate the usercode pair

    @raman325 raman325 committed Aug 27, 2026
    d65618d
  • docs: the sidebar is bare links; show the UI hub by nesting, not prose

    @raman325 raman325 committed Aug 27, 2026
    91f8e99
  • docs: home page lists every page the sidebar does

    @raman325 raman325 committed Aug 27, 2026
    ba563fc
  • docs: paste-able guest recipes, and fix a fragment that referenced an undefined variable

    @raman325 raman325 committed Aug 27, 2026
    66ad48f
  • docs: reconcile every blueprint's inputs with what ships

    @raman325 raman325 committed Aug 27, 2026
    4f9c7f1
  • docs: a keypad-only setup needs no lock (5.3.0)

    @raman325 raman325 committed Aug 27, 2026
    20e5189
  • docs: Virtual locks are a credential store, not just a test double

    @raman325 raman325 committed Aug 26, 2026
    8b3ffdc
  • docs: add External Keypads and note the Virtual lock's second use

    @raman325 raman325 committed Aug 26, 2026
    4702a6b
  • docs: Manual gateways run api-only; gateway binding comes from discovery data

    @raman325 raman325 committed Aug 24, 2026
    4fd04b0
  • docs: name the page Z-Wave JS UI (MQTT)

    @raman325 raman325 committed Aug 24, 2026
    b8a9102
  • docs: add zwave-js-ui MQTT provider page Documents the new Z-Wave JS UI (MQTT) provider (bridged via zwave-js-ui's MQTT discovery gateway, distinct from the official websocket zwave_js provider), and links it from the nav and integrations list.

    @raman325 raman325 committed Aug 24, 2026
    3e2f2d0
  • docs: delete the Notifications stub One paragraph from years ago that cited a wrong event name (lock_code_manager_state_changed; the event is lock_code_manager_lock_state_changed) and predated the tools that now answer the question: the Slot Usage Notifier blueprint and the per-user event entities, both covered by Blueprints and Tracking-lock-state-change-events. Sidebar and Home links removed with it. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

    @raman325 raman325 committed Aug 24, 2026
    fa160ab
  • 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>

    @raman325 raman325 committed Aug 24, 2026
    cb26687
  • docs: tidy the wiki's navigation Removes the manual release test plan. It described the pre-5.0 slot flows step by step, so following it now would test something that no longer exists, and nothing linked to it. Links the rekeying tutorial from the FAQ. It is real contributed content about matching keys across Yale, Kwikset and Schlage cylinders, and it was reachable only by direct link. Leaves "Supporting new lock integrations" unlisted deliberately: it is a tombstone that redirects to the Development Guide and Adding a Provider, both already in the sidebar. Putting a "this page has moved" stub into the navigation would send people a hop out of their way.

    @raman325 raman325 committed Aug 21, 2026
    85c06b5
  • 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.

    @raman325 raman325 committed Aug 21, 2026
    9ff07b2
  • 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>

    @raman325 raman325 committed Jul 16, 2026
    480ab0d
  • 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.

    @raman325 raman325 committed Jun 10, 2026
    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.

    @raman325 raman325 committed Jun 10, 2026
    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.

    @raman325 raman325 committed Jun 5, 2026
    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>

    @raman325 raman325 committed May 31, 2026
    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>

    @raman325 raman325 committed May 11, 2026
    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>

    @raman325 raman325 committed May 11, 2026
    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>

    @raman325 raman325 committed May 11, 2026
    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>

    @raman325 raman325 committed May 4, 2026
    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.

    @raman325 raman325 committed May 2, 2026
    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.

    @raman325 raman325 committed May 2, 2026
    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.

    @raman325 raman325 committed May 2, 2026
    2f6e5e7