Add steam boiler pool#1399
Conversation
996d77f to
3c11c7f
Compare
Signed-off-by: Simon Völcker <simon.voelcker@frequenz.com>
3c11c7f to
8d9d1fe
Compare
Signed-off-by: Simon Völcker <simon.voelcker@frequenz.com>
There was a problem hiding this comment.
Pull request overview
This PR introduces a new SteamBoilerPool timeseries package intended to provide a pool abstraction (similar to existing component pools) for observing and controlling steam boiler components, and updates dependencies/release notes accordingly.
Changes:
- Added a new
timeseries.steam_boiler_poolpackage withSteamBoilerPool, reference store, and report protocol types. - Updated
pyproject.tomldependency minimums forfrequenz-client-microgridandfrequenz-microgrid-component-graph. - Added a release note entry announcing
SteamBoilerPool.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
src/frequenz/sdk/timeseries/steam_boiler_pool/_steam_boiler_pool.py |
Adds the SteamBoilerPool wrapper and exposes a total-power Formula. |
src/frequenz/sdk/timeseries/steam_boiler_pool/_steam_boiler_pool_reference_store.py |
Adds the reference store for shared formula/bounds tracking state (currently incomplete). |
src/frequenz/sdk/timeseries/steam_boiler_pool/_result_types.py |
Adds the SteamBoilerPoolReport protocol for power status reporting. |
src/frequenz/sdk/timeseries/steam_boiler_pool/__init__.py |
Exposes public symbols for the new steam boiler pool package. |
RELEASE_NOTES.md |
Announces the new SteamBoilerPool feature. |
pyproject.toml |
Bumps dependency constraints needed for the new pool/formula support. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
|
||
| @override | ||
| def create_bounds_tracker(self) -> None: | ||
| """Create the bounds tracker for the pool.""" |
There was a problem hiding this comment.
@llucax @shsms do we need a bounds tracker for steam boilers? Asking because I don't know what bounds trackers are used for at the moment, and also because the existing ones use dataclasses from this module that openly states it should be removed in the near future. Can either of you shine some light on this?
| return self._pool_ref_store.formula_pool.from_power_formula( | ||
| "steam_boiler_power", | ||
| connection_manager.get().component_graph.steam_boiler_formula( | ||
| self._pool_ref_store.component_ids | ||
| ), | ||
| ) |
| ## New Features | ||
|
|
||
| <!-- Here goes the main new features and examples or instructions on how to use them --> | ||
| Added SteamBoilerPool, which allows to control a pool of steam boiler components. |
| ## New Features | ||
|
|
||
| <!-- Here goes the main new features and examples or instructions on how to use them --> | ||
| Added SteamBoilerPool, which allows to control a pool of steam boiler components. |
| # License: MIT | ||
| # Copyright © 2026 Frequenz Energy-as-a-Service GmbH | ||
|
|
||
| """Interactions with steam boilers.""" |
No description provided.