Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion dao/prog/da_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -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"])
Expand Down
2 changes: 1 addition & 1 deletion dao/prog/da_report.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
7 changes: 4 additions & 3 deletions dao/prog/day_ahead.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -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(
Expand Down
5 changes: 5 additions & 0 deletions release-testing/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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

Expand Down
2 changes: 1 addition & 1 deletion release-testing/config.yaml
Original file line number Diff line number Diff line change
@@ -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!
Expand Down