diff --git a/dao/prog/da_base.py b/dao/prog/da_base.py index 5b8ee363..70ac02cd 100644 --- a/dao/prog/da_base.py +++ b/dao/prog/da_base.py @@ -649,7 +649,7 @@ def calc_solar_predictions( solar_prog["tijd"] = pd.to_datetime(solar_prog["date_time"]) if interval == "15min": solar_prog = interpolate(solar_prog, "prediction", quantity=True) - while solar_prog["tijd"].iloc[0].tz_localize(None) < vanaf: + while len(solar_prog)>0 and solar_prog["tijd"].iloc[0].tz_localize(None) < vanaf: solar_prog = solar_prog.iloc[1:] else: solar_prog = pd.DataFrame(columns=["tijd", "prediction"]) diff --git a/dao/prog/da_report.py b/dao/prog/da_report.py index b760a014..f7af995b 100644 --- a/dao/prog/da_report.py +++ b/dao/prog/da_report.py @@ -1326,7 +1326,7 @@ def get_datasoort(ds): if not isinstance(row.tijd, datetime.datetime): print(row) if interval == "uur": - tijd_str = str(row.tijd)[10:14] + "00" + tijd_str = str(row.tijd)[0:14] + "00" elif interval == "dag": tijd_str = str(row.tijd)[0:10] else: diff --git a/dao/prog/day_ahead.py b/dao/prog/day_ahead.py index 6c849118..4c840e57 100644 --- a/dao/prog/day_ahead.py +++ b/dao/prog/day_ahead.py @@ -577,7 +577,7 @@ def calc_optimum( solar_series = prog_data[solar_name] for u in range(U): # pv_prod productie van batterij b van solar s in uur u, in kWh - prod_dc = solar_series[u] * interval_fraction[u] + prod_dc = max(0.0, solar_series[u]) * interval_fraction[u] eff = 1 for ds in range(DS[b]): if discharge_stages[b][ds]["power"] / 1000 > prod_dc: @@ -1057,9 +1057,10 @@ def calc_optimum( ) # 0.5 K/uur afkoeling per uur, omrekenen naar afkoeling per interval logging.info(f"Boiler hysterese {boiler_hysterese} K") - boiler_cooling = ( - self.boiler_options["cooling rate"] * self.interval_s / 3600 + cooling_rate = self.get_setting_state( + "cooling rate", self.boiler_options, "number", 0.5 ) + boiler_cooling = cooling_rate * self.interval_s / 3600 # 45 oC grens daaronder kan worden verwarmd # boiler_bovengrens = self.boiler_options["heating allowed below"] boiler_bovengrens = float( diff --git a/release-testing/CHANGELOG.md b/release-testing/CHANGELOG.md index 0256b69d..ff8317af 100644 --- a/release-testing/CHANGELOG.md +++ b/release-testing/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog 刀 DAO # Day Ahead Optimizer +# 2026.02.2.rc3 +- Fixed error in reports and api with interval "vandaag en morgen" +- Made boiler cooling_rate flex setting (feature request by @tomvandepoel3) +- Fixed negative predictions pv_dc (reported by @Dogooder) + # 2026.02.2.rc2 No changes diff --git a/release-testing/config.yaml b/release-testing/config.yaml index 305b2580..b9279ebb 100644 --- a/release-testing/config.yaml +++ b/release-testing/config.yaml @@ -1,6 +1,6 @@ --- name: 刀 Day Ahead Optimizer (TESTING) -version: 2026.02.2.rc2 +version: 2026.02.2.rc3 stage: experimental slug: day_ahead_opt-testing description: Beta version of DAO. Use only for testing!