Skip to content

Releases: frequenz-floss/frequenz-lib-notebooks

v0.14.0

18 Dec 22:01
Immutable release. Only release title and notes can be modified.
v0.14.0
8cd939f

Choose a tag to compare

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.20 line, frequenz-gridpool >= 0.1.1, and frequenz-repo-config 0.13.8 so packaging matches the newest releases.
  • Update the default solar metric to Metric.AC_POWER_ACTIVE alongside the v2 Metric import 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

Full Changelog: v0.13.2...v0.14.0

v0.13.2

08 Dec 10:30
Immutable release. Only release title and notes can be modified.
v0.13.2
939dad5

Choose a tag to compare

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

Full Changelog: v0.13.1...v0.13.2

v0.13.1

04 Dec 11:29
Immutable release. Only release title and notes can be modified.
v0.13.1
018bd1d

Choose a tag to compare

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.3 and pytz>=2025.2, so reinstall the dependencies to pick up the tighter YAML and timezone support.
  • Column names in exported energy reports have shifted: grid_consumption is now computed via the grid helper column before renaming, and battery data should be referenced as battery_power_flow rather than battery_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.yaml are always respected.

Bug Fixes

  • Notification deserialization now relies on isinstance() to guard against optional dataclass arguments, eliminating the brittle type() 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

Full Changelog: v0.13.0...v0.13.1

v0.13.0

25 Nov 13:34
Immutable release. Only release title and notes can be modified.
v0.13.0
c05838b

Choose a tag to compare

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 assets and replace by its contents pv, wind, battery.
    • Make meta and ctype public fields.
    • Require meta.microgrid_id to be set.
  • The minimum supported version of matplotlib is now v3.9.2.
  • Add src/frequenz/lib/notebooks/reporting/schema_mapping.yaml to your deployment so notebooks can load the canonical column definitions via ColumnMapper.

New Features

  • Introduced frequenz.lib.notebooks.reporting.metrics.reporting_metrics with 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 an implementation tag.
  • 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 ColumnMapper utility 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() and build_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_functions toolkit 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.ipynb example 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

New Contributors

Full Changelog: v0.12.2...v0.13.0

v0.12.2

29 Sep 19:46
Immutable release. Only release title and notes can be modified.
v0.12.2
39f569d

Choose a tag to compare

Tooling Library for Notebooks Release Notes

Summary

Upgrading

New Features

  • Add fields to WindConfig for microgrid configuration.
  • Add microgrid and enterprise ID to microgrid metadata config.

Bug Fixes

What's Changed

  • Add microgrid and enterprise ID to microgrid config by @cwasicki in #163

Full Changelog: v0.12.1...v0.12.2

v0.12.1

19 Sep 15:09
Immutable release. Only release title and notes can be modified.
v0.12.1
21cd208

Choose a tag to compare

Tooling Library for Notebooks Release Notes

Summary

Upgrading

New Features

  • Add fields to WindConfig for microgrid configuration.

Bug Fixes

What's Changed

  • Add more WindConfig fields in microgrid config by @cwasicki in #162

Full Changelog: v0.12.0...v0.12.1

v0.12.0

12 Sep 11:39
Immutable release. Only release title and notes can be modified.
v0.12.0
383a18e

Choose a tag to compare

Tooling Library for Notebooks Release Notes

Summary

Upgrading

  • Revert back to v0.2.3 of the weather-client until the weather service is able to support v0.13 of 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

Full Changelog: v0.11.2...v0.12.0

v0.11.2

21 Aug 21:34
v0.11.2
4afcc4e

Choose a tag to compare

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

23 Jul 20:39
v0.11.1
f4dce74

Choose a tag to compare

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

Full Changelog: v0.11.0...v0.11.1

v0.11.0

23 Jul 15:22
v0.11.0
364ca41

Choose a tag to compare

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.
  • MicrogridData class needs to be initialized with a MicrogridConfig object instead of a path to config file(s).
  • Added a transactional stateful data fetcher.
  • Added a new state_analysis module for detecting and analysing component state transitions and alerts from reporting data.
    • Provides structured StateRecord objects with human-readable enum names.
    • Supports filtering for alert states and warnings.
    • Includes full test coverage for transition detection and alert filtering logic.

Bug Fixes

  • Fixed a bug in the notification Scheduler where 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 EmailNotification did not properly initialise its scheduler. Also fixed an example in the docstring.

What's Changed

New Contributors

Full Changelog: v0.10.1...v0.11.0