v0.21.1
Release Notes
Note
Please note that even when there is a v0.21.0 tag in the project's repository, there is no public release for v0.21.0 in GitHub or pypi.
This is due to a bug in the automation to create releases for new tags in v0.21.0. This release is exactly the same as v0.21.0 but with that bug fixed, so the full changes introduced by v0.21.0 are included here.
Summary
This release mainly introduces the new PeriodicFeatureExtractor, the control interface to the BatteryPool, and a new naming scheme for retrieving LogicalMeter and BatteryPool metrics. It also drops support for Python versions older than 3.11.
Upgrading
-
Now Python 3.11 is the minimum supported version. All users must upgrade to Python 3.11 (including virtual environments used for development).
-
BatteryPoolmetric streaming interfaces have changed forsoc,capacityandpower_bounds:soc_rx = battery_pool.soc() # old soc_rx = battery_pool.soc.new_receiver() # new
-
Formulas now follow the new naming scheme.
BatteryPool.{power, production_power, consumption_power}EVChargerPool.{power, production_power, consumption_power}LogicalMeter:consumer_powergrid_powergrid_production_powergrid_consumption_powerchp_powerchp_production_powerchp_consumption_power
-
A power request can now be forced by setting the
include_broken_batteriesattribute. This is especially helpful as a safety measure when components appear to be failing, such as when battery metrics are unavailable. Note that applications previously relying on automatic fallback to all batteries when none of them was working will now require theinclude_broken_batteriesattribute to be explicitly set in the request. -
Now
floatis used everywhere for representing power (before power metrics werefloatbut setting power was done usingint).frequenz.sdk.actor.power_distributing: thepowerattribute of theRequestclass has been updated fromintto afloat.frequenz.sdk.microgrid: theset_power()method of both theMicrogridApiClientandMicrogridGrpcClientclasses now expect afloatvalue for thepower_wparameter instead ofint.
-
The
LogicalMeterno longer takes acomponent_graphparameter. -
Now
frequenz.sdk.timeseries.Sampleuses a more sensible comparison. Before this releaseSamples were compared only based on thetimestamp. This was due to a limitation in Python versions earlier than 3.10. Now that the minimum supported version is 3.11 this hack is not needed anymore andSamples are compared using bothtimestampandvalueas most people probably expects. -
The dependency to
sympywas unused and thus removed from the SDK. If you used it indirectly without declaring the dependency in your project you should do it now.
New Features
-
The
MovingWindowhas new public methods that return the oldest and newest timestamp of all stored samples. -
The
PeriodicFeatureExtractorhas been added.This is a tool to create certain profiles out of periodic reoccurring windows inside a
MovingWindow.As an example one can create a daily profile of specific weekdays which will be returned as numpy arrays.
-
The
BatteryPoolcan now be used to control the batteries in it via the new methodscharge(),discharge(), andset_power().
Bug Fixes
- Fixed many examples in the documentation.
What's Changed
- ci: Fix building of tags by @leandro-lucarella-frequenz in #426
Full Changelog: v0.21.0...v0.21.1