Repository navigation
v0.5.0 - Integration Modernization, Spending Analytics and Slot Refresh
This release is a major modernization of the integration, rebuilt on current Home Assistant patterns, plus new spending analytics, faster delivery-slot polling, and several bug fixes.
✨ New features
- Spending analytics — new Yearly Spent and All Time Spent sensors, backed by a persistent local order history. The All Time Spent sensor also exposes a per-year breakdown (totals + order counts) via its by_year attribute. Configurable via integration options. (#64, #52)
- Order history backfill — new fetch_order_history action to pull your complete order history from Rohlík.cz once, and enrich_orders to populate item-level detail and category spending.
- Lightweight express-slot polling — new refresh_slots action that cheaply refreshes only the delivery-slot data with a single request, so you can poll every few seconds to catch express availability without a full data update. Ships with an example automation that notifies you the moment express delivery becomes available. (#75)
- Reauthentication flow — the integration now prompts you to re-enter credentials when the session expires, instead of silently failing.
- Diagnostics — downloadable diagnostics for easier troubleshooting (with credentials redacted).
🏗️ Under the hood
- Rebuilt around Home Assistant's DataUpdateCoordinator with typed runtime_data, replacing the previous hand-rolled polling/pub-sub mechanism.
- API client rewritten on aiohttp (was requests in an executor), with proper error mapping and session handling.
- Order history now stored via Home Assistant's Store helper (with automatic import of any pre-existing legacy file). (#72)
- Slot and spending sensors consolidated using EntityDescription for less duplication. (#73)
🐛 Bug fixes
- Fixed a login crash when the API returned an empty messages array (IndexError); the failure status code is now surfaced and logged. (#63)
- Delivery Time now reflects the soonest upcoming order instead of holding a stale value when multiple orders are in flight. (#61)
- Corrected the APIRequestFailedError message and assorted internal cleanups. (#74)