EMHASS: The Multi-Battery Update
We are thrilled to announce the next version of EMHASS! The headliner for this release is a massive step forward for advanced energy management: Multi-Battery Support.
This highly requested feature allows EMHASS to model and optimize multiple independent batteries simultaneously. This is a game-changer for homes with an Electric Vehicle (EV) alongside stationary home storage, allowing you to manage and optimize their charge/discharge cycles independently.
Alongside multi-battery support, this release brings adaptive conformal inference for PV forecasting, new documentation recipes, and a healthy dose of bug fixes and stability improvements.
A huge thank you to all the contributors who made this release possible!
Improvement
- feat: per-battery identification at number_of_batteries > 1 (@LesIT1)
- feat: self-tune PV forecast bias via adaptive conformal inference (#841) (@Whatsonyourmind)
- feat: support N stationary batteries via the deferrable-loads array pattern (#610 phase 1) (@LesIT1)
Documentation
- docs: re-green Code Quality by formatting the heat topology example (@LesIT1)
- docs: fix ruff formatting (@JoshC1994)
- docs: add the missing heat topology guide (@mohammadrezwankhan)
- docs(cookbook): demand / capacity charge recipe (#623) (@Whatsonyourmind)
Fix
- fix: keep the optim path load history index tz-aware (#1036) (@LesIT1)
- fix: exempt battery identification sensors from the set_zero_min clip (@LesIT1)
- fix: infer publish-data index frequency from the saved CSV (#976) (@LesIT1)
- fix: re-normalise per-load deferrable arrays after runtime overrides (#1040) (@LesIT1)
- fix: warn when a runtime scalar masks a configured per-battery list (#1032 follow-up) (@LesIT1)
- fix: Fix datetime TypeError in _get_closest_index (@davidusb-geek)
- fix: bound set_nodischarge_to_grid export by PV surplus, not raw PV (#795 regression) (@petrister)
- fix: exclude curtailed timesteps from the adjusted PV forecast training data (@scruysberghs)
- fix: continuous time-of-day encoding for the adjusted PV forecast (removes hour-boundary sawtooth) (@scruysberghs)
- fix: weather-forecast-cache never refreshes a stale Solcast cache (#1016) (@SpengeSec)
What's Changed
- fix: exclude curtailed timesteps from the adjusted PV forecast training data by @scruysberghs in #1027
- fix: Fix datetime TypeError in _get_closest_index by @davidusb-geek in #1029
- fix: bound set_nodischarge_to_grid export by PV surplus, not raw PV (#795 regression) by @petrister in #1028
- docs(cookbook): demand / capacity charge recipe (#623) by @Whatsonyourmind in #1031
- fix: continuous time-of-day encoding for the adjusted PV forecast (removes hour-boundary sawtooth) by @scruysberghs in #1025
- feat: support N stationary batteries via the deferrable-loads array pattern (#610 phase 1) by @LesIT1 in #1032
- fix: warn when a runtime scalar masks a configured per-battery list (#1032 follow-up) by @LesIT1 in #1037
- style: strip whitespace from two blank lines that landed with #1025 by @LesIT1 in #1038
- docs: add the missing heat topology guide by @mohammadrezwankhan in #1039
- feat: self-tune PV forecast bias via adaptive conformal inference (#841) by @Whatsonyourmind in #1043
- docs: fix ruff formatting by @JoshC1994 in #1044
- feat: per-battery identification at number_of_batteries > 1 by @LesIT1 in #1046
- docs: re-green Code Quality by formatting the heat topology example by @LesIT1 in #1050
- fix: re-normalise per-load deferrable arrays after runtime overrides (#1040) by @LesIT1 in #1054
- fix: infer publish-data index frequency from the saved CSV (#976) by @LesIT1 in #1055
- fix: exempt battery identification sensors from the set_zero_min clip by @LesIT1 in #1056
- fix: keep the optim path load history index tz-aware (#1036) by @LesIT1 in #1057
- fix: weather-forecast-cache never refreshes a stale Solcast cache (#1016) by @SpengeSec in #1017
- Preparing new release v0.18.0 by @davidusb-geek in #1058
New Contributors
- @petrister made their first contribution in #1028
- @Whatsonyourmind made their first contribution in #1031
- @mohammadrezwankhan made their first contribution in #1039
- @JoshC1994 made their first contribution in #1044
- @SpengeSec made their first contribution in #1017
Full Changelog: v0.17.9...v0.18.0