Sharing a project I've been working on: a barcode scanning system that adds items directly to a Mealie shopping list. The scanner hardware runs ESPHome; the brains run in a standalone Docker container.
Hardware: ESP32 + GM67 barcode scanner module + SSD1306 OLED + push button, all on a perf board. I designed a 3D-printed under-cabinet case for it (MakerWorld / Printables).
How it works: The ESPHome firmware reads barcodes via UART from the GM67 and POSTs them to a FastAPI middleware. The middleware looks up the barcode (OpenFoodFacts / UPCDatabase), fuzzy-matches it against your Mealie food catalog, and adds it to your shopping list. The OLED shows real-time feedback (product name, status). There's also a web dashboard for managing barcodes and mappings.
You can also scan from your phone (BinaryEye on Android, iOS Shortcuts) — no ESP32 required for that path.
HA integration: The middleware itself runs standalone (no HA dependency), but it can push notifications to your phone via HA webhook — so you get a mobile alert whenever something is added to your shopping list, regardless of which scan source triggered it. The ESPHome device also exposes standard HA entities (sensor for last barcode, status, etc.).
Big thanks to @MattFryer whose HA-Mealie-Barcode-Scanner project was the direct inspiration. His original approach used HA pyscript to handle the lookup logic. I wanted something that runs independently of HA, so I built it as a standalone middleware — but the hardware concept (ESP32 + GM67 over UART) and the idea itself came from his work.
Links:
- GitHub: GitHub - thisisastoryof/mealie-barcode-middleware: Middleware that connects barcode scanners to Mealie for grocery management — auto-lookup, fuzzy matching, and a full web dashboard · GitHub
- Full docs (build guide, firmware, wiring, scanner config): in the repo under
docs/ - ESPHome YAML:
esphome/barcode-scanner.yamlin the repo
Feedback and ideas welcome!