Enchanted Liquor Cabinet
This started as a project to replace the terrible lighting in a built‑in cabinet. I wanted even illumination across the whole cabinet, which meant placing lights throughout — and then things escalated quickly from there.
Repo: https://github.com/abnormalend/enchanted_liquor_cabinet
Videos
First working song
Other routines
Goals
- Even, bright lighting across shelves and compartments.
- Automatic on/off behavior tied to door state.
- Fun: programmable animations and optional sound effects.
- Integrate cleanly with Home Assistant via ESPHome.
Hardware
See the full BOM in hardware/README.md in the repo. Core components I used:
- Two 16‑pixel WS2812B rings (accent lighting)
- One 5m WS2812B LED strip, 60 LED/m (shelf lighting)
- Four magnetic reed switches (door sensors)
- DFPlayer mini + 3W 40mm speakers + PAM8403 amplifier (sound effects)
- ESP32 dev board (WROOM‑32)
- 5V power supply sized for your total LED load
- Printed fittings and mounts (STLs in the repo)
Hardware README: https://raw.githubusercontent.com/abnormalend/enchanted_liquor_cabinet/HEAD/hardware/README.md
Wiring Notes
- Power the WS2812B LEDs with a stable 5V supply. Inject power at both ends for long runs.
- Common ground between the ESP32, LEDs, DFPlayer, and amplifier.
- Level shifting for data can improve signal integrity on long runs; short runs often work direct from the ESP32.
- Place reed switches so they reliably change state with door movement; debounce in software if needed.
ESPHome Overview
The project runs on ESPHome for easy configuration, OTA updates, and Home Assistant integration. Typical features to configure:
- Binary sensors for each reed switch (cabinet doors)
- Light outputs for the LED rings and the strip with preset effects
- Automations to react to door open/close events (turn on lights, start animation, play sound)
- Optional UART/serial control of the DFPlayer mini for audio cues
If you’re starting from scratch, the ESPHome docs have excellent examples for light:, binary_sensor:, and DFPlayer integrations.
Behavior
- Doors open → lights fade in to a preset brightness and animation.
- Doors closed → lights fade out after a short delay.
- Optional: trigger a chime or ambient sound effect on first open.
- Expose controls in Home Assistant to select scenes/animations.
Lessons Learned
- Budget ample power and plan for power injection on longer LED runs.
- Keep wiring tidy and serviceable; printed mounts help a lot.
- Reed switch placement matters — test alignment before committing.
- ESPHome makes iteration fast; split config logically to keep it readable.
What’s Next
- Add more scene presets (holiday themes, ambient modes).
- Smooth ambient audio loop with volume control.
- Presence‑based dimming at night.
- Optional override button inside the cabinet.
Links
- Repo: https://github.com/abnormalend/enchanted_liquor_cabinet
- Hardware README: https://raw.githubusercontent.com/abnormalend/enchanted_liquor_cabinet/HEAD/hardware/README.md
- ESPHome: https://esphome.io/
- Home Assistant: https://www.home-assistant.io/