Skip to content

v0.5.0 - Integration Modernization, Spending Analytics and Slot Refresh

Choose a tag to compare

@dvejsada dvejsada released this 27 Jun 14:33
· 43 commits to master since this release
6783bc2

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)