Skip to content

v0.5.0 - Efficiency Audit

Choose a tag to compare

@troykelly troykelly released this 10 Jan 07:42
3072547

What's New

Version 0.5.0 includes the comprehensive Efficiency Audit (Epic #286) addressing server performance issues reported in #284.

Performance Improvements

Feature Impact
πŸ—„οΈ Discovery data caching (30-min TTL) Reduces redundant API calls for Next Up, Continue Watching, etc.
πŸ”Œ WebSocket-aware library polling Extends polling from 1h to 6h when WebSocket is active (~83% reduction)
πŸ”„ Request coalescing Deduplicates simultaneous API calls (10-30% reduction)
πŸ“¦ Batch user count operations Consolidates 4 user count calls into 1 parallel operation
βš™οΈ Configurable polling intervals Users can now adjust polling via options flow
πŸ“Š API metrics collection Diagnostics now track API call counts
🚫 always_update=False on coordinators Prevents unnecessary entity state writes
πŸ”€ PARALLEL_UPDATES on entity platforms Controls concurrent entity updates

Before vs After

Before (v0.4.1):

  • Discovery coordinator: 8 sequential API calls per user every 15 minutes
  • Library coordinator: 1 API call every hour (even with active WebSocket)
  • Concurrent identical requests: Each made separately
  • Entity updates triggered on every coordinator refresh

After (v0.5.0):

  • Discovery coordinator: 5 parallel API calls per user, cached for 30 minutes
  • Library coordinator: 1 API call every 6 hours when WebSocket is active
  • Concurrent identical requests: Coalesced into single call
  • Entity updates only when data actually changes

Configuration

You can now adjust polling intervals via:

  1. Go to Settings β†’ Devices & Services β†’ Emby
  2. Click Configure on your integration
  3. Adjust Library Scan Interval (1-24 hours) and Server Scan Interval (5-60 minutes)

Issues Resolved

  • #284 - Integration makes my Emby server sluggish
  • Epic #286 - Efficiency Audit - 2026 Best Practices

Full Changelog

  • #288 - Discovery data caching with 30-minute TTL
  • #289 - WebSocket-aware library polling
  • #290 - Request coalescing for concurrent requests
  • #291 - Batch user count API calls
  • #292 - Configurable polling intervals via options flow
  • #293 - API metrics collection
  • #294 - Efficiency documentation
  • #295 - always_update=False on all coordinators
  • #296 - PARALLEL_UPDATES on all entity platforms
  • #297 - Data-driven entity platform definitions

Full Changelog: v0.4.1...v0.5.0