I didn’t like the keypad options available to me so I made my own using an esphome and a weigand compatible keypad.
The features I wanted were:
- personal codes
- ability to know who opened the garage door
- control of the alarm system: when a neighbor brings in a package for us when we’re out of town I want it to be easy to drop it off in the garage.
- a heavier duty keypad
The project was pretty easy, it’s entirely vibe coded and vibe engineered. It’s a wiegand keypad, an esp32, and the supporting hardware and automations.
The hardest part was fishing the wire through the wall. I put the hardware on din rails and fully enclosed it.
You can get the BOM and more details here: GitHub - CitizenRacer/GarageDoorWiegandKeypad · GitHub
The only thing I did that I’d describe as non standard or overkill is I don’t store the codes for the garage as plain text codes. Instead I have the esp32 HMAC them and store the hmac values. I did this to prevent ever leaking the codes should my config file get pushed to GitHub. It’s overkill and there are many other ways to skin this cat but I wanted to use the burnable fuses.

