From 45b73a84323bb2e84464d7b4795fbcb71496deb5 Mon Sep 17 00:00:00 2001 From: Mohammad Tayyab Date: Mon, 4 May 2026 14:32:30 +0200 Subject: [PATCH 1/2] fix: remove None formulas for non-available component types Signed-off-by: Mohammad Tayyab --- src/frequenz/gridpool/_microgrid_config.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/frequenz/gridpool/_microgrid_config.py b/src/frequenz/gridpool/_microgrid_config.py index 836d380..d21deb6 100644 --- a/src/frequenz/gridpool/_microgrid_config.py +++ b/src/frequenz/gridpool/_microgrid_config.py @@ -441,10 +441,13 @@ async def load_configs_with_formulas( assets_url, auth_key=assets_auth_key, sign_secret=assets_sign_secret ) as assets_client: for microgrid_id, config in microgrid_configs.items(): + relevant_ctypes = set(config.ctype.keys()) + await populate_missing_formulas( microgrid_id=int(microgrid_id), config=config, assets_client=assets_client, + component_types=relevant_ctypes, ) return microgrid_configs @@ -454,6 +457,7 @@ async def populate_missing_formulas( microgrid_id: int, config: "MicrogridConfig", assets_client: AssetsApiClient, + component_types: set[str] | None = None, ) -> None: """Populate missing component formulas from the assets API graph. @@ -471,6 +475,8 @@ async def populate_missing_formulas( Microgrid configuration object to update in place. assets_client: Assets API client used to fetch the component graph. + component_types: + Optional set of component types to consider when populating formulas. Returns: None. The configuration is modified in place. @@ -502,12 +508,15 @@ async def populate_missing_formulas( "AC_ENERGY_ACTIVE_DELIVERED", ) + # Default: only populate component types already present in the config. + allowed_ctypes = component_types or set(config.ctype.keys()) + for ctype, formula in auto_formulas.items(): + if ctype not in allowed_ctypes: + continue + cfg = config.ctype.get(ctype) if cfg is None: - config.ctype[ctype] = ComponentTypeConfig( - formula={metric: formula for metric in metrics} - ) continue if cfg.formula is None: From b9a5a91e23f808de1250f33622a70cc4abd69a67 Mon Sep 17 00:00:00 2001 From: Mohammad Tayyab Date: Mon, 4 May 2026 14:35:30 +0200 Subject: [PATCH 2/2] docs: update release notes Signed-off-by: Mohammad Tayyab --- RELEASE_NOTES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 9eb1e7a..4d1b5ab 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -14,4 +14,4 @@ ## Bug Fixes - +- Fixed auto-formula population to only fill formulas for component types already present in a microgrid configuration. This prevents creating placeholder entries with `None` formulas for component types that are not configured.