No description
Avoids a second VRAM model (no swap thrash) by reusing the model Boxxo already keeps loaded; think:false keeps the JSON clean. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .gitignore | ||
| LICENSE | ||
| README.md | ||
| sync.py | ||
alexa-grocy-sync
Two-way sync between an Alexa list and Grocy, plus a voice-driven "used" list that consumes items from your Grocy stock — all local, with a small LLM doing fuzzy product matching and unit/aisle guessing.
What it does
- Shopping list (bidirectional): add/remove on the Alexa shopping list ⇄ Grocy shopping list. New free-text items are matched to an existing Grocy product (cache → exact → LLM) or a clean, unit-aware product is created in the AI-chosen aisle. Removals propagate both ways, decided by a three-way merge against the last-synced baseline (so a removal is never mistaken for an add).
- "Used" list → consume: say/add items to a second Alexa list and the quantity is consumed from Grocy stock. The consume path matches existing stocked products only — it never creates one — parses the quantity ("3 eggs" → 3), and removes the list item only on a successful consume (failures stay visible).
Talks to Home Assistant (Alexa lists via the todo integration), Grocy's REST API, and a local
Ollama model. Runs on an interval; DRY_RUN=1 logs without writing.
Built with
Built with the help of Claude (Claude Opus 4.8).
License
GPL-3.0. See LICENSE.