Skip to content

[FR] Add Generic Tag Allowlist #248

@rbouteiller

Description

@rbouteiller

Is your feature request related to a problem? Please describe.
Currently, the system only supports HomeKey authentication for NFC-based lock control. Users who want to use generic NFC tags (non-HomeKey tags) to trigger lock/unlock actions have no way to do so. This limits the flexibility of the system and prevents users from using simple NFC tags, cards, or fobs that they may already have. (If the lock is directly controlled by a GPIO)

Describe the solution you'd like
I propose adding an NFC Tag Allowlist feature that allows users to:

  1. Configure allowed NFC tags through a web UI where they can:

    • Add tags by manually entering a name and UID (hex format)
    • Use a "Tap" button to automatically capture the UID when scanning a tag via WebSocket
    • View and manage the list of allowed tags
    • Remove tags from the allowlist
  2. Automatic lock control when a generic NFC tag is scanned:

    • When a generic (non-HomeKey) NFC tag is detected, the system checks if its UID is in the allowlist
    • If the UID matches an entry in the allowlist, the system triggers the same lock/unlock action as a successful HomeKey authentication
    • If the UID is not in the allowlist, the tag is logged but no action is taken
  3. Persistent storage of the allowlist configuration in NVS (Non-Volatile Storage) so it survives reboots

** Security Considerations **

  • The allowlist provides basic access control but does not offer the same cryptographic security as HomeKey
  • Users should be aware that any tag with a matching UID will trigger lock actions
  • The feature is suitable for low-to-medium security applications where convenience is prioritized

** Others **
Already implemented in my fork, issue to know if there is interest, needed a change in partition map for the webui (So no OTA from previous map).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions