Skip to content

v0.3.0rc1

Pre-release
Pre-release

Choose a tag to compare

@BrendanAnnable BrendanAnnable released this 30 Jan 11:11
339b84b

v0.3.0rc1 Release Notes

Highlights

  • Control when optimization runs — New auto-optimize switch lets you pause automatic optimization and trigger it manually via the haeo.optimize service
  • 🎨 Beautiful new entity selector — Configurable entities now use a sleek choose selector for a much cleaner configuration experience
  • 🔋 Simplified battery modeling — Battery partitions replaced with streamlined SOC-based pricing for cleaner entity structure
  • 🕐 Better forecast alignment — Optimization tiers now align with clock boundaries (e.g. every 5 minutes) for more intuitive scheduling
  • 🔧 Enhanced debugging tools — New diagnostics service with time-travel capability for troubleshooting optimization behavior
  • 💾 Smaller database footprint — Forecast history is no longer recorded by default, significantly reducing recorder database size

⚠️ Breaking Changes

Battery Entity Structure Changed (#265)

Battery "balance" section devices have been removed. If you have automations or dashboards referencing battery balance partition entities, you'll need to update them.

Migration: Remove any references to battery balance partition entities. The battery now uses a single, simplified entity structure with SOC-based pricing.

Update Interval Configuration Removed (#252)

The update interval configuration option has been removed as it was no longer used. HAEO now uses event-driven optimization triggered by input changes.

Migration: No action required — this setting was not functional in recent versions.

Optimization Tiers Now Align with Clock Boundaries (#236)

Optimization tiers now align with clock boundaries (e.g. 5-minute marks) rather than using fixed-size intervals from an arbitrary start time. This provides more intuitive scheduling but changes when tier boundaries occur.

Migration: No action required for most users. If you had automations that relied on exact tier timing, they may need adjustment.

User-Facing Changes

New Features

  • Auto-optimize switch (#254) — Toggle automatic optimization on/off from the UI. When disabled, use the new haeo.optimize service to trigger optimization manually or via automations
  • Diagnostics service (#247) — New service for debugging optimization behavior with detailed diagnostic output
  • Time-travel diagnostics (#250) — Run diagnostics at a specific point in time to debug historical optimization decisions
  • Record forecast option (#274) — Configure whether to record forecast data to the recorder database
  • Interpolation mode (#275) — New interpolation mode option for the HAEO extractor for compatiblity with Amber Express

Improvements

  • Clock-aligned timesteps (#236) — Optimization periods now align with clock boundaries for more predictable scheduling
  • More impatient setup (#276) — Reduced setup timeout from 30s to 5s for quicker startup

Developer-Facing Changes

Developer Highlights

  • Composable connection architecture (#227) — Connections are now built from composable components (efficiency, pricing, power limits), enabling flexible combinations without exponential complexity
  • Declarative input entities (#239) — Input entities are now defined by configuration, making the system more maintainable and extensible

Architecture

  • Deferred network updates (#277) — Element updates are now batched and applied at optimization time rather than immediately, reducing unnecessary processing
  • Simplified data pipeline (#240, #242) — Removed legacy load function and build_config_data pipeline
  • NumPy array storage (#243) — Element config series now stored as numpy arrays for better performance
  • Improved type safety (#230) — Model layer calls are now fully typed

Testing & Documentation

  • Timezone-aware scenarios (#251) — Scenario tests now run in specified timezone for consistent results
  • Updated battery documentation — Docs updated to reflect new SOC-based pricing model

Contributors

Full Changelog

Full Changelog: v0.2.1...v0.3.0rc1