Releases: enoch85/EffektGuard
EffektGuard v0.4.26
Key Changes
Bug Fixes
• Anti-Windup Bypass: Volatile blocker no longer blocks anti-windup reductions — keeps harmful high offset from staying active while DM plunges
• Fixed Pylance type errors in entity descriptions
• Fixed missing entity description attributes for HA compatibility
• Fixed abstract method implementations in base models
Enhancements
• Import Organization: Cleaner import structure across all modules
• Type Safety: Added proper type annotations and typed models
• DevContainer: Added development container configuration
PR: #16
Full Changelog: v0.4.25...v0.4.26
EffektGuard v0.4.25
Key Changes
Enhancements
• DHW PEAK Avoidance: Never heat DHW at PEAK prices (except critical safety < 20°C)
• Predictive Pre-Heating: Pre-heat during cheap hours to avoid forced PEAK heating from thermal debt
• Weather-Aware Predictions: DHW forecast integration for thermal debt trajectory
Bug Fixes
• Fixed DHW heating during PEAK prices when scheduled deadline approaching
Full Changelog: v0.4.24...v0.4.25
EffektGuard v0.4.24
Key Changes
Bug Fixes
• Anti-windup protection: Fixed DM spiral by preventing offset raises during heat transit (90-minute causation window)
• Airflow optimizer: Updated compressor thresholds based on real-world F750 observations
Enhancements
• Increased anti-windup layer weight from 0.5 to 0.7 for stronger DM protection
• Added cooldown timer display to anti-windup diagnostics
Full Changelog: v0.4.23...v0.4.24
EffektGuard v0.4.23
Key Changes
Bug Fixes
• DHW sensor spam: Fixed recommended_start_time updating every 5 minutes when heating. Now set to None when heating (no future time needed), only shows timestamp when scheduled
• Misleading status attributes: Fixed blocking_reason showing when actively heating. Now shows heating_reason when heating, blocking_reason only when blocked
• DM threshold mismatch: Fixed start-then-abort cycles by using thermal-mass-adjusted thresholds consistently via new get_adjusted_dm_thresholds() method
Enhancements
• RULE 7 price lookahead: When DHW temp is low at normal price, checks if cheaper window coming (≥15% savings) before heating immediately
• Cleaner schedule status: Simplified coordinator logic with explicit states (heating_now, scheduled, unknown) based on dataclass guarantees
Renamed
• Test functions from *_has_current_time to *_heats_immediately to reflect new behavior
Full Changelog: v0.4.22...v0.4.23
EffektGuard v0.4.22
Key Changes
Bug Fixes
• Fixed DHW heating at expensive prices when cheaper windows available
• Fixed sensor constantly updating creating confusion about multiple starts
Enhancements
• DHW Optimal Window Detection: Wait for cheaper price windows when time allows
• Smart Threshold: Only wait if savings ≥15% and enough time before scheduled target
• Sensor Clarity: Renamed to "DHW Scheduled Start" with status attributes
Full Changelog: v0.4.21...v0.4.22
EffektGuard v0.4.21
Key Changes
Bug Fixes
• Startup volatility tracking: Fixed false "reversal" detection on first active optimization cycle by initializing volatility tracker with actual NIBE offset when startup completes
• Grace period handling: Skip volatility tracking during startup grace period since decisions are not being applied yet
Enhancements
• Weather forecast sensitivity: Lowered temperature drop threshold from -5.0°C to -4.0°C for more responsive pre-heating
• Weather debug logging: Added comprehensive debug logging for weather pre-heat decisions (outdoor temp, forecast min, thresholds, triggers)
Full Changelog: v0.4.20...v0.4.21
EffektGuard v0.4.20
Key Changes
Bug Fixes
• Fixed DHW transition volatility - Weather layer cooldown now triggers when DHW stops (unified is_hot_water + temp_lux tracking)
• Fixed DHW day boundary scheduling across midnight
Enhancements
• Generic Offset Volatility Tracker: Blocks large offset reversals (>2°C) within 45 min window at coordinator level - prevents rapid back-and-forth that heat pump can't follow
• DHW Heating Rate Learning: Added heating_rate_celsius_per_hour and heating_rate_confidence to DHW optimizer for better timing predictions
Renamed
• COMPRESSOR_MIN_CYCLE_MINUTES → VOLATILE_MIN_DURATION_MINUTES (clearer purpose)
Removed
• PRICE_FORECAST_MIN_DURATION - Replaced with VOLATILE_MIN_DURATION_QUARTERS (derived from single source)
Constants Consolidation (DRY)
• VOLATILE_MIN_DURATION_MINUTES = 45 - Single source of truth for volatility timing
• VOLATILE_MIN_DURATION_QUARTERS = 3 - Derived for price layer (45min / 15min)
• MINUTES_PER_QUARTER = 15 - Replaces hardcoded * 15 everywhere
Full Changelog: v0.4.19...v0.4.20
EffektGuard v0.4.19
Key Changes
Enhancements
• DHW Scheduling: Fixed logic to select closest upcoming demand period instead of first available period within 24h window
• Sensor Attributes: Renamed DHW-related sensor attributes for better clarity (e.g., amount_current_minutes → water_amount_current, amount_status → water_amount_status)
• DHW Status: Added dhw_current_temp and dhw_target_temp attributes for improved monitoring
• Scheduling Display: Enhanced reasoning text for normal optimization phase to include calculated start time
Removed
• Removed unused DHW configuration imports from sensor.py (CONF_DHW_MIN_AMOUNT, DHW_MIN_AMOUNT_DEFAULT, DEFAULT_DHW_MORNING_HOUR, DEFAULT_DHW_EVENING_HOUR)
• Removed user configuration display from sensor attributes (no longer needed in DHW status sensor)
Full Changelog: v0.4.18...v0.4.19
EffektGuard v0.4.18
Key Changes
Enhancements
• DHW Configuration Defaults: Added and constants for consistent configuration defaults
• DHW Safety Improvements: Replaced hardcoded temperature limits with constant for safer operation
• DHW Sensor Visibility: Added user configuration display in DHW sensor attributes (target temp, min amount, schedule times)
• Code Consistency: Standardized DHW configuration handling across coordinator and options flow
Bug Fixes
• Fixed hardcoded DHW temperature limits in optimization logic
• Fixed inconsistent default hour handling in DHW scheduler configuration
Full Changelog: v0.4.17...v0.4.18
EffektGuard v0.4.17
Key Changes
Bug Fixes
• Fixed erratic offset oscillation (yoyo +4°C to -4°C) at CHEAP→NORMAL price transitions by reverting volatile detection to v0.4.9 logic
• Removed complex next_classification checks that caused heating boost flip-flops every 5 minutes
Full Changelog: v0.4.16...v0.4.17