Rolling out anew version of EMHASS loaded with a bunch of fixes and improvements.
Update to this version to prepare for the upcoming DST change challenge.
Thanks to all contributors.
Improvement
- test: DST regression suite for the time grid and forecast transport (#1189) (@MMicieli)
- feat: cap a heat pump's delivered heat with max_thermal_power (#539) (@snauwaertc)
- feat: opt-in DP COP refinement for shared-tank heat pumps (part 2 of #1187) (@snauwaertc)
- feat: dynamic-programming solver for a heat-pump-charged store (part 1 of #1187) (@snauwaertc)
Documentation
- docs: clarify the DST-safe time-grid contract and Nordpool forecasts (#1189) (@MMicieli)
- docs: fix the Nordpool examples (timestamp mapping, no prepended value, hourly 24-entry days only) (#1189) (@MMicieli)
- docs: the DP COP refinement and the thermal math model (part 3 of #1187) (@snauwaertc)
- docs: cookbook recipes for DHW and heat pump (@snauwaertc)
Fix
- fix: rebuild the cached problem when a sequence load's running state changes (@Blizzeq)
- fix: keep a positive deferrable load start when the end timestep is 0 or negative (@Blizzeq)
- fix: reject a state of charge above 1 before it reaches the solver (@HFZR2005)
- fix: keep the captured forecast start across Forecasts built from one params dict; explicit tz origin (#1189 follow-up) (@MMicieli)
- fix: keep forecast values on their UTC instants across a DST change (#1189) (@MMicieli)
- fix: use one UTC-safe time grid per request (#1189) (@MMicieli)
- fix: use the configured load sensor as var_model when var_model is unset or the stock default (@Blizzeq)
- fix: scale the soc_final penalty by the self-consumption big-M (@Blizzeq)
- fix: warn when heat_topology replaces configured loads; keep shared_thermal_tanks from config.json (@snauwaertc)
- fix: forward current_period_peak through the dayahead capacity-tariff path (@snauwaertc)
- fix: price a temperature bound that free gains alone break, instead of an infeasible run (@snauwaertc)
- fix: read def_load_config from config.json into optim_conf (@Blizzeq)
- fix: sleep to the next continual_publish period boundary (@Blizzeq)
- fix: interpolate interior Forecast.Solar gaps at sub-hourly steps (@Blizzeq)
- fix: replace fillna(method=...) removed in pandas 3 in the weather safety fill (@Blizzeq)
- Fix: validate Open-Meteo covariate cache span (@Unplanted6505)
- fix(command_line): fallback to nearest index when ffill/bfill returns -1 (@Blizzeq)
What's Changed
- fix(command_line): fallback to nearest index when ffill/bfill returns -1 by @Blizzeq in #1188
- docs: cookbook recipes for DHW and heat pump by @snauwaertc in #1192
- Fix: validate Open-Meteo covariate cache span by @Unplanted6505 in #1194
- fix: replace fillna(method=...) removed in pandas 3 in the weather safety fill by @Blizzeq in #1196
- fix: interpolate interior Forecast.Solar gaps at sub-hourly steps by @Blizzeq in #1201
- fix: sleep to the next continual_publish period boundary by @Blizzeq in #1202
- fix: read def_load_config from config.json into optim_conf by @Blizzeq in #1203
- feat: dynamic-programming solver for a heat-pump-charged store (part 1 of #1187) by @snauwaertc in #1191
- feat: opt-in DP COP refinement for shared-tank heat pumps (part 2 of #1187) by @snauwaertc in #1204
- docs: the DP COP refinement and the thermal math model (part 3 of #1187) by @snauwaertc in #1205
- fix: price a temperature bound that free gains alone break, instead of an infeasible run by @snauwaertc in #1206
- feat: cap a heat pump's delivered heat with max_thermal_power (#539) by @snauwaertc in #1210
- fix: forward current_period_peak through the dayahead capacity-tariff path by @snauwaertc in #1211
- fix: warn when heat_topology replaces configured loads; keep shared_thermal_tanks from config.json by @snauwaertc in #1212
- fix: scale the soc_final penalty by the self-consumption big-M by @Blizzeq in #1213
- fix: use one UTC-safe time grid per request (#1189) by @MMicieli in #1215
- fix: keep forecast values on their UTC instants across a DST change (#1189) by @MMicieli in #1216
- test: DST regression suite for the time grid and forecast transport (#1189) by @MMicieli in #1217
- docs: fix the Nordpool examples (timestamp mapping, no prepended value, hourly 24-entry days only) (#1189) by @MMicieli in #1218
- fix: keep the captured forecast start across Forecasts built from one params dict; explicit tz origin (#1189 follow-up) by @MMicieli in #1219
- fix: use the configured load sensor as var_model when var_model is unset or the stock default by @Blizzeq in #1214
- docs: clarify the DST-safe time-grid contract and Nordpool forecasts (#1189) by @MMicieli in #1224
- fix: reject a state of charge above 1 before it reaches the solver by @HFZR2005 in #1222
- fix: keep a positive deferrable load start when the end timestep is 0 or negative by @Blizzeq in #1227
- fix: rebuild the cached problem when a sequence load's running state changes by @Blizzeq in #1228
New Contributors
- @Unplanted6505 made their first contribution in #1194
- @HFZR2005 made their first contribution in #1222
Full Changelog: v0.18.5...v0.18.6