Why
Most DIY access control projects I've seen let the device decide. A fingerprint module does the matching itself and talks to the ESP over a plain, unauthenticated UART, or a reader checks a card and sends the command that opens the lock. It's relatively easy to get to that wiring and make the device say "match is OK". A few modules do encrypt that link, but the key sits in the ESP's flash, and the same ESP still opens the door, so owning the ESP still means owning the door.
This project turns that around: the reader in front of the door is deliberately dumb.
The idea
- The reader is an ESP32-S3 with an NFC front end, later also a bare fingerprint sensor and a keypad for a PIN. It relays what is presented to it and shows the result on an LED ring. It holds no keys and no templates, has no "access granted" logic, and cannot open the lock.
- The server verifies the credential, whatever its kind (phone, card, fingerprint, PIN), and makes the decision. Then it sends the lock a short-lived grant.
- Home Assistant, or any other actuator that accepts the grant, operates the lock. It does not decide who may enter.
strange.rand