Hey everyone,
Sharing a small project I’ve been building: a cheap ESP32-CAM mounted in my fridge that snapshots the contents whenever the door opens, runs the photo through an AI vision model, and shows a live, editable inventory on my dashboard — no more forgetting what’s hiding in the back.
It’s two repos:
fridge-core — the hardware + automation
- ESPHome config for an AI-Thinker ESP32-CAM: video stream, a GPIO4 flashlight/LED, and a GPIO13 reed-switch door sensor (no external resistors needed).
- A Home Assistant automation blueprint: on door-open, it snaps a photo, calls
ai_task.generate_data(works with Google Generative AI, OpenAI Conversation, etc.), and turns the result into one To-Do item per recognized food item — name, a short description of quantity/condition, and now (new) an estimated bounding box for each item. - It also feeds the AI the names of items already on the list from the last scan, and asks it to reuse the exact same name if it’s plausibly the same physical item (e.g. so a manual rename survives the next scan). Worth saying clearly: this is not real training — each request is stateless, it’s just per-prompt context — so it’s a nudge, not a guarantee.
- Optional Slovak/English output toggle for the item names.
fridge-card — the Lovelace card
Custom card (installable via HACS as a custom repository) that:
- Shows the latest photo, with a configurable rotation (for a crooked camera mount) and height.
- Lists the AI-recognized items as a plain, editable list — name, description, expiration date — no checkboxes, since this isn’t really a to-do list.
- New in v1.1.0: an optional “Detection frames” toggle that overlays each item’s AI-estimated bounding box on the photo.
- Quick controls: light toggle, door status, a button to open the live camera view, and a button to re-trigger the analysis.
- Fully configurable from the Lovelace UI editor, no YAML needed.
Screenshots
Status
Both repos are public and this integration is genuinely still evolving (the card is at v1.1.0 — box-detection accuracy depends entirely on the AI model). Feedback, issues and PRs welcome!


