Release v0.5.0
What's Changed
SQLite storage
Inventory data is now stored in SQLite (aiosqlite) instead of JSON files. Existing data is automatically migrated from the legacy JSON store on first load — no action required. The new dependency aiosqlite==0.22.1 is declared in manifest.json.
WebSocket API
A full WebSocket API enables real-time communication with frontend dashboards. Supported commands include listing/getting items, history queries, import/export, barcode operations, and consumption rates.
Consumption tracking & analytics
- Every quantity change is recorded in a
consumption_historytable - New service
get_item_consumption_ratesreturns daily/weekly usage rates, days until depletion, average restock interval, and spend rates - New HA events:
simple_inventory_item_depleted,simple_inventory_item_restocked,simple_inventory_item_quantity_changed,simple_inventory_item_added,simple_inventory_item_removed
Barcode scanning
- New
scan_barcodeservice and WebSocket command — scan a barcode to automatically increment, decrement, or look up the matched item across all inventories - New
lookup_by_barcodeandlookup_barcode_productservices - Items now have an optional
pricefield recorded on history events and rolled up into inventory statistics (total_value)
Multiple barcode lookup providers
Product lookups now query multiple databases in parallel: Open Food Facts, Open Beauty Facts, and Open Pet Food Facts. Provider preference is configurable.
Bug fixes
- Fixed item deletion failing in some cases
- Fixed regression in quantity handling
- Fixed decrement via barcode not resolving the correct item
Full changelog: v0.4.0...v0.5.0