Skip to content

Fix DM spiral by preventing offset raises during anti-windup #543

Fix DM spiral by preventing offset raises during anti-windup

Fix DM spiral by preventing offset raises during anti-windup #543

Triggered via pull request January 22, 2026 15:39
Status Success
Total duration 1m 49s
Artifacts

validate.yml

on: pull_request
Validate EffektGuard
1m 46s
Validate EffektGuard
Fit to window
Zoom out
Zoom in

Annotations

10 warnings
Validate EffektGuard: custom_components/effektguard/__init__.py#L638
coroutine 'AsyncMockMixin._execute_mock_call' was never awaited
Validate EffektGuard: custom_components/effektguard/__init__.py#L629
coroutine 'AsyncMockMixin._execute_mock_call' was never awaited
Validate EffektGuard: custom_components/effektguard/__init__.py#L620
coroutine 'AsyncMockMixin._execute_mock_call' was never awaited
Validate EffektGuard: custom_components/effektguard/__init__.py#L656
coroutine 'AsyncMockMixin._execute_mock_call' was never awaited
Validate EffektGuard: custom_components/effektguard/__init__.py#L647
coroutine 'AsyncMockMixin._execute_mock_call' was never awaited
Validate EffektGuard: custom_components/effektguard/__init__.py#L638
coroutine 'AsyncMockMixin._execute_mock_call' was never awaited
Validate EffektGuard: custom_components/effektguard/__init__.py#L629
coroutine 'AsyncMockMixin._execute_mock_call' was never awaited
Validate EffektGuard: custom_components/effektguard/__init__.py#L620
coroutine 'AsyncMockMixin._execute_mock_call' was never awaited
Validate EffektGuard: tests/test_regression_imports.py#L974
Found 1 potential magic numbers: models/nibe/f750.py:186: Hardcoded DM threshold -400 (should be constant) (Showing first 15 of potentially more)
Validate EffektGuard: tests/test_regression_imports.py#L767
Found 39 unused constants out of 420 total: - ATTR_CURRENT_OFFSET = 'current_offset' - ATTR_DECISION_REASONING = 'decision_reasoning' - ATTR_LAYER_VOTES = 'layer_votes' - ATTR_OPTIONAL_FEATURES = 'optional_features_status' - ATTR_PEAK_THIS_MONTH = 'peak_this_month' - ATTR_PEAK_TODAY = 'peak_today' - ATTR_QUARTER_OF_DAY = 'quarter_of_day' - ATTR_THERMAL_DEBT = 'thermal_debt' - COMFORT_CORRECTION_CRITICAL = 1.5 - COMFORT_CORRECTION_STRONG = 1.2 - COMFORT_DEAD_ZONE = 0.2 - COMFORT_DM_COOLING_THRESHOLD = -200 - COMFORT_OVERSHOOT_CRITICAL = 1.0 - COMFORT_OVERSHOOT_SEVERE = 0.5 - COMPRESSOR_COOL_DOWN_MINUTES = 15 - COMPRESSOR_RAMP_UP_MINUTES = 30 - CONF_DHW_DEMAND_PERIODS = 'dhw_demand_periods' - CONF_DHW_TARGET_TEMP = 'dhw_target_temp' - CONF_DHW_TEMP_ENTITY = 'dhw_temp_entity' - CONF_ENABLE_DHW_OPTIMIZATION = 'enable_dhw_optimization' - CONF_ENABLE_WEATHER_COMPENSATION = 'enable_weather_compensation' - CONF_TARGET_TEMPERATURE = 'target_temperature' - CONF_WEATHER_COMPENSATION_WEIGHT = 'weather_compensation_weight' - DHW_HEATING_TIME_HOURS = 1.5 - DHW_SCHEDULING_WINDOW_MIN = 0.25 - DHW_URGENT_RUNTIME_MINUTES = 90 - EFFECT_MARGIN_WARNING = 1.5 - EFFECT_MARGIN_WATCH = 2.5 - INDOOR_TEMP_RECOVERY_MAX_HOURS = 6.0 - LAYER_WEIGHT_COMFORT_SEVERE = 0.9 - OVERSHOOT_PROTECTION_COLD_SNAP_THRESHOLD = 3.0 - OVERSHOOT_PROTECTION_FORECAST_HORIZON = 12 - OVERSHOOT_PROTECTION_WEIGHT_MAX = 1.0 - OVERSHOOT_PROTECTION_WEIGHT_MIN = 0.5 - PEAK_AWARE_EFFECT_THRESHOLD = -1.0 - PEAK_AWARE_EFFECT_WEIGHT_MIN = 0.5 - SERVICE_FORCE_UPDATE = 'force_update' - SERVICE_RESET_PEAKS = 'reset_peaks' - SERVICE_SET_OPTIMIZATION_MODE = 'set_optimization_mode' These constants are defined but never used in the codebase. Consider removing them or verify they should be used.