Releases: frequenz-floss/frequenz-lib-notebooks
v0.14.0
Tooling Library for Notebooks Release Notes
Summary
- Align tooling with the latest reporting client, gridpool, and repository config releases while tightening typing and plotting helpers across the solar reporting suites.
Upgrading
- Point dependencies at the new
frequenz-client-reporting >= 0.20line,frequenz-gridpool >= 0.1.1, andfrequenz-repo-config 0.13.8so packaging matches the newest releases. - Update the default solar metric to
Metric.AC_POWER_ACTIVEalongside the v2Metricimport path.
New Features
- N/A
Bug Fixes
- Fix nox formatting/type warnings by casting timezone conversions, enforcing literal aggregation functions, and keeping area/line plotting parameters typed in the solar maintenance views.
- Calculate consumption in scenarios where consumption is missing from the data.
What's Changed
- Switch to MicrogridConfig from fz-gridpool by @cwasicki in #216
- chore(deps): bump the minor group with 2 updates by @dependabot[bot] in #218
- chore(deps): update plotly requirement from <6.4.0,>=6.0.0 to >=6.0.0,<6.6.0 by @dependabot[bot] in #220
- chore(deps-dev): bump mkdocstrings[python] from 0.30.1 to 1.0.0 by @dependabot[bot] in #221
- chore(deps-dev): bump pytest-asyncio from 1.2.0 to 1.3.0 by @dependabot[bot] in #222
- chore(deps-dev): bump pytest from 8.4.2 to 9.0.2 by @dependabot[bot] in #219
- fix: update client reporting dependency by @Mohammad-Tayyab-Frequenz in #224
- Add missing consumption by @Mohammad-Tayyab-Frequenz in #226
Full Changelog: v0.13.2...v0.14.0
v0.13.2
Tooling Library for Notebooks Release Notes
Summary
Upgrading
New Features
Bug Fixes
- Fixed wind components in the energy_report_df and aggregating metrics.
What's Changed
- Update wind component by @Mohammad-Tayyab-Frequenz in #214
Full Changelog: v0.13.1...v0.13.2
v0.13.1
Tooling Library for Notebooks Release Notes
Summary
This release syncs the reporting helpers with the latest schema and dependency requirements so that asset columns, component analyses, and timestamp handling all stay consistent with the data sources we consume.
Upgrading
- The pyproject lock now requires
pyyaml>=6.0.3andpytz>=2025.2, so reinstall the dependencies to pick up the tighter YAML and timezone support. - Column names in exported energy reports have shifted:
grid_consumptionis now computed via thegridhelper column before renaming, and battery data should be referenced asbattery_power_flowrather thanbattery_throughput.
New Features
- Wind asset production is now fleshed out in the schema mapping (including localized display names) and is available to the overview builder and component analysis flows, alongside the existing PV and CHP columns.
- Component analyses now apply the mapper renaming step after totals are summed, preventing columns from being renamed prematurely and ensuring the display names defined in
schema_mapping.yamlare always respected.
Bug Fixes
- Notification deserialization now relies on
isinstance()to guard against optional dataclass arguments, eliminating the brittletype()checks that occasionally crashed the signal service. - Peak-date computation now pulls the timestamp directly from the aggregated dataframe, coerces it to UTC, and formats it safely, so peak dates no longer break when indexes are strings or timezone-naive.
- The grid column is only populated when it is missing to avoid re-creating
grid_consumption, preventing duplicate columns during the energy-flow aggregation. - Schema mappings for CHP and wind outputs have been aligned with the latest raw column tags, and all production display names now use the new hyphenated nomenclature (
PV-Production,CHP-Production,Wind-Production).
What's Changed
- docs: reset release notes by @Mohammad-Tayyab-Frequenz in #194
- fix: add dependency module by @Mohammad-Tayyab-Frequenz in #195
- docs: update schema mapping with latest changes by @Mohammad-Tayyab-Frequenz in #196
- Update colnames by @Mohammad-Tayyab-Frequenz in #199
- fix: update schema mapping for chp and wind by @Mohammad-Tayyab-Frequenz in #210
- Update overview df by @Mohammad-Tayyab-Frequenz in #211
- chore(deps): bump frequenz-floss/gh-action-nox from 1.0.1 to 1.1.0 in the compatible group by @dependabot[bot] in #200
- chore(deps): bump actions/checkout from 5 to 6 by @dependabot[bot] in #201
- chore(deps-dev): bump the patch group with 3 updates by @dependabot[bot] in #202
- chore(deps): bump the minor group with 8 updates by @dependabot[bot] in #203
- chore(deps): update kaleido requirement from <1.2.0,>=0.2.1 to >=0.2.1,<1.3.0 by @dependabot[bot] in #206
- chore(deps-dev): bump pydoclint from 0.7.6 to 0.8.3 by @dependabot[bot] in #207
- Chore/update pylint by @cyiallou in #212
- chore(deps-dev): bump isort from 6.0.1 to 7.0.0 by @dependabot[bot] in #187
- docs: update release notes for new release by @Mohammad-Tayyab-Frequenz in #213
Full Changelog: v0.13.0...v0.13.1
v0.13.0
Tooling Library for Notebooks Release Notes
Summary
This release standardizes energy reporting with a new suite of metric definitions, visualization helpers, and a schema-based ColumnMapper for consistent data handling. It also introduces breaking changes to MicrogridConfig to support schema-based loading and adds official support for Python 3.13.
Upgrading
MicrogridConfig: Switch to schema-based loading of microgrid config files and updates to the config class:- Remove unused nested field
assetsand replace by its contentspv,wind,battery. - Make
metaandctypepublic fields. - Require
meta.microgrid_idto be set.
- Remove unused nested field
- The minimum supported version of
matplotlibis nowv3.9.2. - Add
src/frequenz/lib/notebooks/reporting/schema_mapping.yamlto your deployment so notebooks can load the canonical column definitions viaColumnMapper.
New Features
- Introduced
frequenz.lib.notebooks.reporting.metrics.reporting_metricswith first-class definitions for production excess, battery charging share, grid feed-in, self-consumption, self-consumption share, and inferred consumption; the schema now documents each metric via animplementationtag. - Added
frequenz.lib.notebooks.reporting.utils.helpers.add_energy_flows()(plus supporting helpers) that aggregates raw production/consumption columns and appends the derived flows the reporting notebook needs. - Published a locale-aware
ColumnMapperutility that reads the YAML schema so notebooks can seamlessly move between raw API headers, canonical identifiers, and localized display labels. - plot_time_series() can auto-pivot long-format inputs, add a desired legend/trace order, and optionally fill selected traces while keeping Plotly colors consistent through a shared palette builder; also defaults to numeric columns only to avoid spurious traces.
- Added reusable
long_to_wide()andbuild_color_map()helpers so notebooks can pivot categorical telemetry and reuse the canonical color scheme without duplicating logic. - Added
create_energy_report_df()to convert raw microgrid exports into timezone-aware, canonical energy-report tables with derived grid/battery KPIs and labeled component columns, letting dashboards bind to a consistent schema without bespoke glue. - Introduced the
reporting_nb_functionstoolkit so notebooks can build overview tables, melt component selections, compute energy-mix summaries, and aggregate KPIs (production totals, self-consumption share, grid import peaks) for stakeholder-ready reporting pages. - Expanded the reporting helper utilities with YAML config loading, German number formatting, timezone conversion, component labeling, energy-report column selection, and robust energy-flow derivations so multiple notebooks can reuse the same preprocessing primitives.
- Published
Reporting NB.ipynbexample that wires the mapper, helper utilities, and KPI builders together in a ready-to-run reporting notebook.
Bug Fixes
plot_energy_pie_chart()now accepts the same color_dict overrides as the time-series view, ensuring doughnut slices reuse the canonical colors instead of Plotly’s defaults and keeping legends consistent across charts.
What's Changed
- Reset release notes by @cwasicki in #165
- chore(deps): bump actions/labeler from 5.0.0 to 6.0.1 by @dependabot[bot] in #166
- chore(deps): bump the patch group with 3 updates by @dependabot[bot] in #167
- chore(deps): bump the minor group with 7 updates by @dependabot[bot] in #168
- chore(deps): bump pydoclint from 0.6.11 to 0.7.3 by @dependabot[bot] in #169
- chore(deps): bump pytest-asyncio from 1.1.0 to 1.2.0 by @dependabot[bot] in #172
- chore(deps): update kaleido requirement from <1.1.0,>=0.2.1 to >=0.2.1,<1.2.0 by @dependabot[bot] in #170
- Add support for Python 3.13 by @shsms in #174
- Add prod metrics by @Mohammad-Tayyab-Frequenz in #175
- Switch to schema-based microgrid config loading by @cwasicki in #176
- Update solar notebook to work with updated microgrid config by @cyiallou in #178
- chore(deps-dev): bump pydoclint from 0.7.3 to 0.7.6 by @dependabot[bot] in #185
- chore(deps): bump actions/download-artifact from 5 to 6 by @dependabot[bot] in #179
- chore(deps): bump actions/upload-artifact from 4 to 5 by @dependabot[bot] in #180
- chore(deps-dev): bump nox from 2025.5.1 to 2025.10.16 in the minor group by @dependabot[bot] in #182
- chore(deps): update python-dotenv requirement from <1.2.0,>=0.21.0 to >=0.21.0,<1.3.0 by @dependabot[bot] in #186
- chore(deps): update pyarrow requirement from <22.0.0,>=20.0.0 to >=20.0.0,<23.0.0 by @dependabot[bot] in #184
- chore(deps-dev): bump the patch group with 5 updates by @dependabot[bot] in #181
- fix: missing production and consumption column by @Mohammad-Tayyab-Frequenz in #177
- Update plots reporting by @Mohammad-Tayyab-Frequenz in #189
- feat: add default mapping loader function by @Mohammad-Tayyab-Frequenz in #188
- Add grid import function by @Mohammad-Tayyab-Frequenz in #190
- Add reporting data processing modules by @Mohammad-Tayyab-Frequenz in #191
- fix: update reporting NB by @Mohammad-Tayyab-Frequenz in #192
- docs: update-release-notes by @Mohammad-Tayyab-Frequenz in #193
New Contributors
Full Changelog: v0.12.2...v0.13.0
v0.12.2
Tooling Library for Notebooks Release Notes
Summary
Upgrading
New Features
- Add fields to
WindConfigfor microgrid configuration. - Add microgrid and enterprise ID to microgrid metadata config.
Bug Fixes
What's Changed
Full Changelog: v0.12.1...v0.12.2
v0.12.1
Tooling Library for Notebooks Release Notes
Summary
Upgrading
New Features
- Add fields to
WindConfigfor microgrid configuration.
Bug Fixes
What's Changed
Full Changelog: v0.12.0...v0.12.1
v0.12.0
Tooling Library for Notebooks Release Notes
Summary
Upgrading
- Revert back to
v0.2.3of the weather-client until the weather service is able to supportv0.13of the weather API.
New Features
Bug Fixes
- Replaces multiple duplicated plot functions with a single reusable one.
- Handle empty weather/reporting dataframes gracefully to avoid transformation errors. The "Solar Maintenance" notebook is updated accordingly.
What's Changed
- Bump types-markdown from 3.8.0.20250708 to 3.8.0.20250809 by @dependabot[bot] in #154
- Bump actions/checkout from 4 to 5 by @dependabot[bot] in #151
- Bump actions/download-artifact from 4 to 5 in the artifacts group by @dependabot[bot] in #148
- Bump setuptools-scm[toml] from 8.3.1 to 9.2.0 by @dependabot[bot] in #153
- Bump mkdocstrings-python from 1.16.12 to 1.18.2 in the mkdocstrings group by @dependabot[bot] in #152
- Bump ipython from 9.4.0 to 9.5.0 in the minor group by @dependabot[bot] in #155
- Update plotly requirement from <6.3.0,>=6.0.0 to >=6.0.0,<6.4.0 by @dependabot[bot] in #156
- Bump pydoclint from 0.6.6 to 0.6.11 by @dependabot[bot] in #149
- Use df.loc instead of df.at for mypy compatibility by @cyiallou in #157
- fix: change to a singular line chart plot module by @Mohammad-Tayyab-Frequenz in #147
- fix: skip transformations when input data is empty by @cyiallou in #158
- fix: handle empty DataFrame in solar notebook by @cyiallou in #159
- Revert "Widen weather API client dependency range (#145)" by @cyiallou in #160
- fix: render component IDs as plain ints in alert email summaries by @cyiallou in #161
New Contributors
- @Mohammad-Tayyab-Frequenz made their first contribution in #147
Full Changelog: v0.11.2...v0.12.0
v0.11.2
Tooling Library for Notebooks Release Notes
Summary
Upgrading
- Widen weather API dependency range to reduce conflicts with other packages.
New Features
- Add flag to indicate whether PV is curtailable.
- Add asset optimization reporting package with data fetcher and visualization module.
Bug Fixes
What's Changed
- Reset release notes after v0.11.1 release by @cyiallou in #134
- Add curtailable flag to PVConfig by @cwasicki in #135
- Update pyarrow requirement from <21.0.0,>=20.0.0 to >=20.0.0,<22.0.0 by @dependabot[bot] in #144
- Bump the minor group with 3 updates by @dependabot[bot] in #138
- Update frequenz-client-reporting requirement from <0.19.0,>=0.18.0 to >=0.18.0,<0.20.0 by @dependabot[bot] in #142
- Bump async-solipsism from 0.7 to 0.8 by @dependabot[bot] in #143
- Bump the compatible group with 2 updates by @dependabot[bot] in #136
- Bump mkdocs-material from 9.6.15 to 9.6.16 in the patch group by @dependabot[bot] in #137
- Bump types-markdown from 3.8.0.20250415 to 3.8.0.20250708 by @dependabot[bot] in #141
- Bump pytest-asyncio from 1.0.0 to 1.1.0 by @dependabot[bot] in #140
- Bump mkdocstrings[python] from 0.29.1 to 0.30.0 in the mkdocstrings group by @dependabot[bot] in #139
- Add asset optimization reporting module by @cwasicki in #88
- Widen weather API client dependency range by @cwasicki in #145
Full Changelog: v0.11.1...v0.11.2
v0.11.1
Tooling Library for Notebooks Release Notes
Summary
Upgrading
- Minor updates to "Alerts Notebook" and "Solar Maintenance" notebooks to utilise new functionality, simplify parts of the notebooks' code, and update the documentation.
New Features
Bug Fixes
What's Changed
- Update Alert Notebook by @cyiallou in #129
- Update Solar Notebook by @cyiallou in #132
- Prepare for release by @cyiallou in #133
Full Changelog: v0.11.0...v0.11.1
v0.11.0
Tooling Library for Notebooks Release Notes
Summary
Upgrading
New Features
- Added consistent logger setup across all modules for structured logging and improved observability. Example notebooks updated to demonstrate logger usage.
- The signature for passing config files MicrogridConfig.load_config() has been changed to accept a path a list of paths and a directory containing the config files.
MicrogridDataclass needs to be initialized with aMicrogridConfigobject instead of a path to config file(s).- Added a transactional stateful data fetcher.
- Added a new
state_analysismodule for detecting and analysing component state transitions and alerts from reporting data.- Provides structured
StateRecordobjects with human-readable enum names. - Supports filtering for alert states and warnings.
- Includes full test coverage for transition detection and alert filtering logic.
- Provides structured
Bug Fixes
- Fixed a bug in the notification
Schedulerwhere tasks could overrun the configured duration due to imprecise sleep and stop logic. The scheduler now correctly tracks elapsed time, respects task execution duration, and stops reliably after the intended interval. - Fixed an issue where
EmailNotificationdid not properly initialise its scheduler. Also fixed an example in the docstring.
What's Changed
- Fix Scheduler and its instantiation inside EmailNotification by @cyiallou in #127
- Minor doc fix and clarification by @cyiallou in #128
- Add consistent logger setup across all modules by @cyiallou in #125
- Refactor config file arguments of MicrogridData and MicrogridConfig classes by @matthias-wende-frequenz in #104
- Add transactional stateful data fetcher by @matthias-wende-frequenz in #130
- Add state analysis module for extracting component state transitions and alerts by @cyiallou in #131
New Contributors
- @matthias-wende-frequenz made their first contribution in #104
Full Changelog: v0.10.1...v0.11.0