Skip to content

v4.0.0

Choose a tag to compare

@github-actions github-actions released this 10 Jan 14:35
· 224 commits to refs/heads/main since this release

What’s changed

🚀 Enhancements

🧰 Maintenance

  • Add support for pre-release options in release drafter workflow @liudger (#1308)

📚 Documentation

⬆️ Dependency updates

More details

🚀 Performance Comparison: Lazy Loading

Before (Eager Loading)

  • Initialize(): ~24 seconds
  • All sections validated upfront (heating, sensor, staticValues, device, hot_water)
  • Hot water section alone: ~7.9 seconds (67% of total init time)

After (Lazy Loading)

  • Initialize(): ~0.02 seconds (~1200x faster)
  • Only fetches firmware version on init
  • Sections validated on-demand when first accessed

Granular Hot Water Loading

Hot water parameters split into 3 groups for more efficient loading:

Group Params Method Use Case
Essential 5 hot_water_state() Frequent polling
Config 16 hot_water_config() Advanced settings
Schedule 8 hot_water_schedule() Time programs

Race Condition Prevention

Added asyncio locks (double-checked locking pattern) to prevent duplicate network requests when concurrent calls access the same section before validation completes.

Home Assistant Impact

  • ⚡ Integration loads almost instantly
  • 📉 Reduced startup blocking time from ~24s to ~0.02s
  • 🔄 Data fetched on-demand, spreading network load over time