Releases: frequenz-floss/frequenz-api-microgrid
v0.15.2
Frequenz Microgrid API Release Notes
Summary
This release doesn't introduce any visible changes, it's done mainly to be able to build the new documentation website.
What's Changed
- Bump actions/labeler from 4.1.0 to 4.2.0 by @dependabot in #72
- Bump actions/labeler from 4.2.0 to 4.3.0 by @dependabot in #73
- Update protobuf file headers by @tiyash-basu-frequenz in #81
- Revert "Update protobuf file headers" by @llucax in #82
- Allow patch updates to for frequenz-api-common by @llucax in #85
- Clear release notes by @tiyash-basu-frequenz in #86
- Migrate to repo-config by @llucax in #88
- Update release notes for the v0.15.2 release by @llucax in #89
New Contributors
Full Changelog: v0.15.1...v0.15.2
v0.15.1
Frequenz Migrogrid API Release Notes
Summary
Bug fixes.
Upgrading
None
New Features
None
Bug Fixes
-
Added missing leading
/toGetMicrogridMetadata()'s HTTP endpointThis bug prevented building the gRPC gateway for the microgrid API.
This fix should allow the gRPC gateway builds again. -
Bumped
frequenz-api-commonPython dependencyThe
frequenz-api-commonsubmodule was bumped in the previous release but the Python package was forgotten.
What's Changed
- Add missing leading
/toGetMicrogridMetadata()'s HTTP endpoint by @tiyash-basu-frequenz in #69 - Bump the frequenz-api-common package by @leandro-lucarella-frequenz in #67
- Update release notes by @tiyash-basu-frequenz in #70
Full Changelog: v0.15.0...v0.15.1
v0.15.0
Frequenz Migrogrid API Release Notes
Summary
This release upgrades the submodule frequenz-api-common to v0.3.0, and
renames the message EVCharger to EvCharger.
Upgrading
-
Upgraded
frequenz-api-commonto v0.3.0The submodule
frequenz-api-commonhas been upgraded to v0.3.0.
This version renames the enum representing EV charger types toEvChargerType
and defined theMetricAggregationmessage, which was previously defined in
frequenz-api-microgrid.Since the message
MetricAggregationis now being imported from the common
specs, it has been removed from the filecommon.proto. -
Renamed message
EVChargertoEvChargerThis is done to use same naming convention as
frequenz-api-common.
Note that a similar renaming was done infrequenz-api-commonv0.3.0 to
improve the code quality of the derived rust code using prost.
New Features
None
Bug Fixes
None
What's Changed
- Clear release notes and update contribution docs by @tiyash-basu-frequenz in #62
- Add dependabot config (and rename submodules) by @leandro-lucarella-frequenz in #63
- Bump actions/labeler from 4.0.1 to 4.1.0 by @dependabot in #64
- Upgrade
frequenz-api-commonto v0.3.0 by @tiyash-basu-frequenz in #65
New Contributors
- @dependabot made their first contribution in #64
Full Changelog: v0.14.0...v0.15.0
v0.14.0
Frequenz Migrogrid API Release Notes
Summary
In this release, the protobuf definitions here are being updated to use shared
definitions from frequenz-api-common.
The frequenz-api-common repository contains shared protobuf definitions that
are common to all frequenz APIs.
The frequenz-api-microgrid python library has also been updated to
use the frequenz-api-common
library as a dependency.
This release upgrades the minimum required python version for the library
frequenz-api-microgrid to 3.11.
This release also extends the API by adding new component states, and a new RPC
to set reactive power level of applicable components.
Upgrading
-
Using
frequenz-api-commonfor common proto definitionsThe following proto definitions have been removed, and are being used from the
frequenz-api-commonrepository instead:ComponentCategory->frequenz.api.common.components.ComponentCategorybattery.Type->frequenz.api.common.components.BatteryTypecommon.Bounds->frequenz.api.common.metrics.Boundscommon.Metric->frequenz.api.common.metrics.Metriccommon.Ac->frequenz.api.common.metrics.electrical.Accommon.Dc->frequenz.api.common.metrics.electrical.Dcev_charger.Type->frequenz.api.common.components.EVChargerTypeinverter.Type->frequenz.api.common.components.InverterTypesensor.Type->frequenz.api.common.components.SensorType
The pypi package
frequenz-api-commonis being added as a dependency to the
python package definition, instead of generating the proto definitions using
protoc. This is required, otherwise each proto library depending on
frequenz-api-commonwill generate its own python modules for
frequenz-api-common, resulting in multiple definition of the common data
structures. -
Upgraded minimum required python version for the python library to 3.11
The change to use the
frequenz-api-commondefinitions forces the minimum
required python version of thefrequenz-api-microgridpackage to be 3.11,
as a transitive dependency inherited from thefrequenz-api-commonpackage.
New Features
-
Added new battery component states
Three new battery component states have been added:
SwitchingOnSwitchingOffUnknown
-
Added a new EV charger component state
A new EV charger component states have been added:
Unknown -
Added a new inverter component state
A new inverter component states have been added:
Unknown -
Added RPC to set reactive power
A new RPC, named
SetPowerReactivehas been added to set reactive power for
inverters, and other components that support it. Also, the parameters to the
RPC can be sent using the messageSetPowerReactiveParam.
Bug Fixes
None
What's Changed
- Clear release notes by @tiyash-basu-frequenz in #56
- Use proto definitions from the common API by @tiyash-basu-frequenz in #57
- Extend component states for battery, EV charger, and inverter components by @tiyash-basu-frequenz in #59
- Add RPC to set reactive power by @tiyash-basu-frequenz in #60
- Update release notes by @tiyash-basu-frequenz in #58
Full Changelog: v0.13.0...v0.14.0
v0.13.0
Frequenz Migrogrid API Release Notes
Summary
This release adds a breaking change to improve the DC data reporting
capabilities for inverters.
This release also adds non-breaking changes to extend the API to support more
sensor types, and to add support for adding bounds on AC reactive power.
Upgrading
-
Updated inverters' DC links to support hybrid and solar inverters
The
Invertermessage has been updated to support hybrid and solar inverters.
Thedcfield has been renamed todc_battery, and a new fielddc_solar
has been added.
Thedc_batteryfield is used to report the DC electricity flowing to/from
the linked battery, and is applicable to battery and hybrid inverters.
Thedc_solarfield is used to report the DC electricity flowing to/from the
linked solar panels, and is applicable to solar and hybrid inverters.
New Features
-
Some sensors can be a collection of several individual sensor modules. E.g.,
a sensor can have pyranometer and anemometer sensor modules, and report both
irradiance and wind velocity and direction. This new sensor type
TYPE_GENERALsupports such cases. -
Added dew point to sensor metrics
Dew point is the temperature to which air must be cooled to become saturated
with water vapor. When further cooled, the airborne water vapor will condense
to form liquid water (dew).
This metric has now been added to theSensorMetricenum as
SENSOR_METRIC_DEW_POINT. -
Added enum variant for setting bounds on AC reactive power
This will allow clients to set bounds on a component's AC reactive power.
Bug Fixes
None
What's Changed
- Clear release notes by @tiyash-basu-frequenz in #48
- Extend the API for sensors by @tiyash-basu-frequenz in #49
- Support solar and battery DC links for inverters by @tiyash-basu-frequenz in #50
- Update CODEOWNERS by @tiyash-basu-frequenz in #52
- Add enum variant for setting bounds on AC reactive power by @tiyash-basu-frequenz in #51
- Update release notes by @tiyash-basu-frequenz in #54
Full Changelog: v0.12.0...v0.13.0
v0.12.0
Frequenz Migrogrid API Release Notes
Summary
This release introduces a few breaking changes to the API. The changes consist
of renaming RPCs, removing deprecated code, and introducing new features.
Please refer to the following sections for details.
Upgrading
-
The following RPC has been renamed to make their objectives clearer:
GetMetadata->GetMicrogridMetadataGetComponentData->StreamComponentData
-
The following deprecated code has been removed:
- The
COMPONENT_CATEGORY_LOADvariant from theComponentCategoryenum. - The
COMPONENT_CATEGORY_JUNCTIONvariant from theComponentCategoryenum. - The RPCs
ChargeandDischarge, in favour of RPCSetPowerActive. - The RPC
SetBounds, in favour of RPCsAddExclusiveBoundsand
AddInclusiveBounds.
This removal also includes code that has been deprecated after the last major
release. The reason to remove these deprecations now is to have a leaner API
earlier, since we are already on the way for a major release now. - The
New Features
-
Added new RPC to return the microgrid metadata
The microgrid metadata consists of information about the overall microgrid,
as opposed to its components, e.g., the microgrid ID, location, etc.
This change adds a new RPCGetMicrogridMetadata()that allows users to fetch
microgrid metadata. The returned value is an instance of the message
MicrogridMetadata.Further changes were introduced to this addition in PR #43.
-
Added enum variants for setting bounds on currents
This will allow clients to set bounds on a components
- DC electrical current,
- total AC electrical current,
- per-phase AC electrical currents.
-
Add RPC to set active power using a signed integer
While reading power values, the passive sign convention is followed
(-ve for production, and +ve for consumption). This new method allows setting
active power values in the same convention, making the API more consistent. -
Introduced component category-specific metadata
This metadata is returned in response to
ListComponentscalls,
in a new message variableComponent.metadata.
This is a more general way of representing category-specific metadata,
like category-type, and removesComponent.type. -
This change introduces a
grid.Metadatamessage, which contains the item
rated_fuse_current. This is the rating of the fuse at the grid connection
point.
This rating specifies the maximum amount of current, measured in amperes,
that can flow in or out of each of the 3 phases individually.
The current i A at the grid connection point must comply with the
following constraint: :-rated_fuse_current <= i <= rated_fuse_current -
In the messages
common.Metricandcommon.MetricAggregation,
system_boundshas now been replaced bysystem_exclusion_boundsand
system_inclusion_bounds. A metric'svaluenow has to comply with the
following constraints:-
value <= system_exclusion_bounds.lowerOR
system_exclusion_bounds.upper <= value -
system_inclusion_bounds.lower <= value <= system_inclusion_bounds.upper
system_inclusion_boundsbehave in the same manner as the earlier
system_bounds.The following diagram illustrates the relationship between the exclusion and
inclusion bounds.inclusion.lower inclusion.upper <-------|============|------------------|============|---------> exclusion.lower exclusion.upper----values here are disallowed and wil be rejected, and
====values here are allowed and will be accepted.Two new simple RPCs for setting exclusion and inclusion bounds have been
added:AddExclusionBounds: adds a pair of exclusion bounds for a given component
and metric, and returns the UTC timestamp until when it will stay in effect.AddInclusionBounds: adds a pair of inclusion bounds for a given component
and metric, and returns the UTC timestamp until when it will stay in effect.
Exclusion bounds are a useful tool for enhancing the performance of a system.
They can be used to restrict the acceptance of commands that fall below a
certain threshold, which can help ensure the smooth functioning of the system.
E.g., exclusion bounds can be set to limit the minimum charging power to a
sufficiently high level, preventing a peak-shaver client from sending charge
powers that are too low when a DC heater client is executing a charge pulse.
This can significantly improve the overall performance of the DC heating
mechanism.The RPC
SetBoundshas been deprecated. -
Bug Fixes
None
What's Changed
- Remove unnecessary setuptools.find configuration by @leandro-lucarella-frequenz in #17
- Clear RELEASE_NOTES.md by @leandro-lucarella-frequenz in #13
- Improve and generate documentation by @leandro-lucarella-frequenz in #21
- Add new RPC to return the microgrid metadata by @tiyash-basu-frequenz in #30
- ci: Test also Python 3.11 by @leandro-lucarella-frequenz in #20
- Specify non-guarantee of 1W resolution in methods by @tiyash-basu-frequenz in #34
- Add enum variants for setting bounds on currents by @tiyash-basu-frequenz in #33
- Add RPC to set active power using a signed integer by @tiyash-basu-frequenz in #36
- Fix a few formatting issues by @tiyash-basu-frequenz in #37
- Support returning max allowed current at grid connection point by @tiyash-basu-frequenz in #38
- Introduce minimum bounds by @tiyash-basu-frequenz in #39
- Removing all deprecated code by @tiyash-basu-frequenz in #44
- Rename a few RPCs to improve clarity by @tiyash-basu-frequenz in #43
- Publish to PyPi using trusted publishing by @leandro-lucarella-frequenz in #45
- Update RELEASE_NOTES and README by @tiyash-basu-frequenz in #46
New Contributors
- @tiyash-basu-frequenz made their first contribution in #30
Full Changelog: v0.11.0...v0.12.0
v0.11.0
Frequenz Migrogrid API Release Notes
Summary
This is the first public open source release based on the internal version v0.10.0. There are no breaking changes in this release, only changes to the
project structure, metadata, and automation. Packages are also now uploaded to PyPI as frequenz-api-microgrid, so this project now can be installed normally via pip:
python -m pip install frequenz-api-microgridThe GitHub issues were also improved, adding templates for reporting issues and requesting features. Users are also pointed to the Discussion forums when trying to open an issue if they have questions instead. Also many labels are assigned automatically on issue and pull request creation.
What's Changed
- Add CODEOWNERS file by @leandro-lucarella-frequenz in #2
- ci: Add automatic pull request labeler by @leandro-lucarella-frequenz in #3
- Add GitHub issue form templates by @leandro-lucarella-frequenz in #4
- Add KeywordLabeler app configuration by @leandro-lucarella-frequenz in #5
- Upload packages to PyPI by @leandro-lucarella-frequenz in #8
- ci: Create GitHub Release automatically by @leandro-lucarella-frequenz in #9
- Add write permissions to the release job by @leandro-lucarella-frequenz in #11
New Contributors
- @leandro-lucarella-frequenz made their first contribution in #2
Full Changelog: https://github.com/frequenz-floss/frequenz-api-microgrid/commits/v0.11.0