Add ambient temperature gate to heating period detection
Adds heating_min_ambient_c (default 15°C) to season config. When outdoor temperature is at or above this threshold, SG-Ready is suppressed even if the calendar month is within the heating season. Prevents unnecessary heat pump boost activation on warm spring/autumn days. Logic: heating active = in_heating_month AND ambient < threshold Zero value (unset) disables the temperature gate (calendar-only, old behaviour). New test: TestHeatingPeriodAmbientSuppression covers warm-day suppression, cold-day pass-through, and summer month independence. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -120,10 +120,11 @@ type StrategicConfig struct {
|
||||
ScheduleOff string `yaml:"schedule_off"`
|
||||
}
|
||||
|
||||
// SeasonConfig defines the heating season by month range.
|
||||
// SeasonConfig defines the heating season by month range and ambient temperature.
|
||||
type SeasonConfig struct {
|
||||
HeatingStartMonth int `yaml:"heating_start_month"`
|
||||
HeatingEndMonth int `yaml:"heating_end_month"`
|
||||
HeatingStartMonth int `yaml:"heating_start_month"`
|
||||
HeatingEndMonth int `yaml:"heating_end_month"`
|
||||
HeatingMinAmbientC float64 `yaml:"heating_min_ambient_c"` // above this: non-heating regardless of month (0 = disabled)
|
||||
}
|
||||
|
||||
// ForecastConfig holds forecast.solar API parameters.
|
||||
|
||||
Reference in New Issue
Block a user