Releases: frequenz-floss/frequenz-api-microgrid
v0.15.4
v0.17.1
Frequenz Microgrid API Release Notes
Bug Fixes
- Fix a dependency issue by pinning the
grpcio
version and related libraries.
What's Changed
Full Changelog: v0.17.0...v0.17.1
v0.17.0
Frequenz Microgrid API Release Notes
Summary
In this release, the Microgrid API has been updated to use the latest version of frequenz-api-common
, in addition to a few improvements and a bug fix.
Upgrading
-
This release upgrades
frequenz-api-common
to versionv0.6.1
. Please refer to the release notes for v0.6.0 and v0.6.1 offrequenz-api-common
for more information. -
A new RPC named
AddComponentBounds
has been introduced, which accepts only inclusive bounds. The old RPCsAddComponentInclusionBounds
andAddComponentExclusionBounds
have been removed. -
The enum
ComponentBoundsTargetMetric
has been removed in favour of theMetric
enum fromfrequenz-api-common
. -
The polarity of reactive power has been changed to follow the IEEE 1459-2010 standard definitions. In this standard, positive reactive power is inductive (current is lagging the voltage), and negative reactive power is capacitive (current is leading the voltage).
New Features
-
The
AddComponentBoundsRequest
message has a fieldvalidity_duration
which allows the user to specify the duration for which the bounds are valid. The bounds will be automatically removed after the specified duration. The client can select between 5 seconds, 1 minute, 5 minutes, and 15 minutes. If set toUNSPECIFIED
, the bounds will be valid for a default duration of 5 seconds. -
The request messages
SetComponentPowerActiveRequest
andSetComponentPowerReactiveRequest
have a new field namedrequest_lifetime
which allows the user to specify the duration for which the power setpoints are valid. If this field is not specified in a request, the power setpoint will be valid for 60 seconds.
Bug Fixes
- The CI was unable to catch unused imports in the proto file before. This has been fixed by adding a new step to the CI to build using
protoc
with the--fatal-warnings
flag.
What's Changed
- Prepare for release v0.16.1 by @tiyash-basu-frequenz in #226
- Upgrade frequenz-api-common to v0.6.0 by @tiyash-basu-frequenz in #227
- Add a new RPC for adding component bounds by @tiyash-basu-frequenz in #229
- ci: Use a hash for the labeler version instead of a tag by @llucax in #230
- Allow clients to specify validity durations for bounds by @tiyash-basu-frequenz in #231
- Change the polarity of reactive power by @tiyash-basu-frequenz in #233
- Fix python dependencies for frequenz-api-common v0.6.0 by @tiyash-basu-frequenz in #235
- Support user-provided lifetimes for set active/reactive power RPCs by @tiyash-basu-frequenz in #236
- Add CI step to build using
protoc
with fatal warnings by @tiyash-basu-frequenz in #237 - Bump the required group with 2 updates by @dependabot in #240
- Bump the required group with 2 updates by @dependabot in #241
- Bump the required group with 4 updates by @dependabot in #242
- Make Dependabot check for updates monthly on Monday by @llucax in #243
- Bump mkdocs-material from 9.5.19 to 9.5.20 in the required group by @dependabot in #244
- Upgrade frequenz-api-common from v0.6.0 to v0.6.1 by @tiyash-basu-frequenz in #245
- Clean up release notes to prepare for release v0.17.0 by @tiyash-basu-frequenz in #246
Full Changelog: v0.16.1...v0.17.0
v0.16.1
Frequenz Microgrid API Release Notes
Summary
This release cleans up of unused imports and fixes field names in HTTP annotations.
Bug Fixes
-
Removed unused imports
-
Fixed field names in HTTP annotations
What's Changed
- Clear release notes by @llucax in #90
- Bump black from 23.3.0 to 23.7.0 by @dependabot in #96
- Bump mypy from 1.2.0 to 1.4.1 by @dependabot in #93
- Bump mkdocs-material from 9.1.16 to 9.1.21 by @dependabot in #94
- Bump pylint from 2.17.3 to 2.17.5 by @dependabot in #91
- Bump pytest from 7.3.1 to 7.4.0 by @dependabot in #92
- Remove the
CanStreamData
RPC by @tiyash-basu-frequenz in #87 - Clean old files after migration to repo-config by @llucax in #97
- Update frequenz-api-common to v0.3.1 by @tiyash-basu-frequenz in #98
- Update common API version in pyproject.toml by @tiyash-basu-frequenz in #100
- Use Location from the common API specs by @tiyash-basu-frequenz in #99
- Rename RPC StreamComponentData to SubscribeComponentData by @tiyash-basu-frequenz in #102
- Rename RPCs that act on Components by @tiyash-basu-frequenz in #103
- Bump mypy from 1.4.1 to 1.5.0 by @dependabot in #105
- Add relays and precharge components by @tiyash-basu-frequenz in #104
- Upgrade to repo-config v0.5.2 by @llucax in #108
- Bump mypy from 1.5.0 to 1.5.1 by @dependabot in #107
- Bump mkdocs-material from 9.1.21 to 9.2.3 by @dependabot in #113
- Bump mkdocs-material from 9.2.3 to 9.2.7 by @dependabot in #116
- Bump pytest from 7.4.0 to 7.4.1 by @dependabot in #120
- Bump mkdocstrings[python] from 0.22.0 to 0.23.0 by @dependabot in #117
- Bump pytest from 7.4.1 to 7.4.2 by @dependabot in #126
- Bump mkdocs-material from 9.2.7 to 9.3.1 by @dependabot in #130
- Bump black from 23.7.0 to 23.9.1 by @dependabot in #128
- Bump actions/checkout from 3 to 4 by @dependabot in #121
- Bump mkdocs-section-index from 0.3.5 to 0.3.6 by @dependabot in #123
- Bump mkdocs-literate-nav from 0.6.0 to 0.6.1 by @dependabot in #129
- Bump mkdocs-section-index from 0.3.6 to 0.3.7 by @dependabot in #132
- Bump mkdocs-material from 9.3.1 to 9.3.2 by @dependabot in #135
- Bump mkdocs-section-index from 0.3.7 to 0.3.8 by @dependabot in #137
- Bump mkdocs-material from 9.3.2 to 9.4.2 by @dependabot in #138
- Update frequenz-api-common to v0.4.0 by @tiyash-basu-frequenz in #140
- Rename precharge_module to precharger by @tiyash-basu-frequenz in #141
- Bump pylint from 2.17.5 to 2.17.6 by @dependabot in #139
- Bump pylint from 2.17.6 to 2.17.7 by @dependabot in #146
- Bump mkdocs-material from 9.4.2 to 9.4.3 by @dependabot in #148
- Change inverter DC metrics to repeated fields by @tiyash-basu-frequenz in #143
- Add fuse component by @tiyash-basu-frequenz in #144
- Remove sensors from component category and represent the separately by @tiyash-basu-frequenz in #145
- Rename RPC parameters to be more consistent with the RPC names by @tiyash-basu-frequenz in #150
- Add major version to package names by @tiyash-basu-frequenz in #151
- Change RPCs by @tiyash-basu-frequenz in #153
- Add overview and description of the Frequenz Microgrid API by @tiyash-basu-frequenz in #142
- Bump mkdocs-material from 9.4.3 to 9.4.4 by @dependabot in #154
- Bump pytest from 7.4.2 to 7.4.3 by @dependabot in #168
- Bump repo-config to v0.6.2 by @TalweSingh in #158
- Bump grpc-stubs from 1.53.0.2 to 1.53.0.3 by @dependabot in #170
- Bump the optional group with 4 updates by @dependabot in #169
- Bump yoheimuta/action-protolint from 1.0.0 to 1.1.0 by @dependabot in #171
- Bump the optional group with 1 update by @dependabot in #172
- Bump the optional group with 3 updates by @dependabot in #175
- Bump pylint from 2.17.7 to 3.0.2 by @dependabot in #166
- Update frequenz-api-common to v0.5.0 by @tiyash-basu-frequenz in #173
- Bump the optional group with 4 updates by @dependabot in #177
- Add support for filtering metrics in data streams by @tiyash-basu-frequenz in #179
- Return valid-until timestamps from set-power RPCs by @tiyash-basu-frequenz in #183
- Cleanup release notes for v0.16.0 release by @tiyash-basu-frequenz in #185
- Replace api-team with api-microgrid-team as codeowners by @tiyash-basu-frequenz in #186
- Bump the optional group with 5 updates by @dependabot in #196
- Bump actions/setup-python from 4 to 5 by @dependabot in #191
- Bump the optional group with 3 updates by @dependabot in #197
- Bump actions/upload-artifact from 3 to 4 by @dependabot in #194
- Bump actions/download-artifact from 3 to 4 by @dependabot in #195
- Bump grpc-stubs from 1.53.0.3 to 1.53.0.5 by @dependabot in #199
- Bump the optional group with 3 updates by @dependabot in #198
- Bump the optional group with 2 updates by @dependabot in #200
- Bump flake8 from 6.1.0 to 7.0.0 by @dependabot in #201
- Bump black from 23.12.1 to 24.1.1 by @dependabot in #204
- Bump the optional group with 1 update by @dependabot in #202
- Bump the optional group with 1 update by @dependabot in #207
- Bump the optional group with 2 updates by @dependabot in #208
- Bump the optional group with 3 updates by @dependabot in #209
- Bump the optional group with 5 updates by @dependabot in #215
- Support repo-config v0.9 properly by @tiyash-basu-frequenz in #218
- Bump the optional group with 2 updates by @dependabot in #219
- Bump nox from 2023.4.22 to 2024.3.2 by @dependabot in #220
- Bump the optional group with 1 update by @dependabot in ht...
v0.15.3
Frequenz Microgrid API Release Notes
Summary
This release bumps the frequenz-api-common
dependency to v0.5.3, allowing downstream projects to use a newer frequenz-api-common
version too.
Please note that the googleapis-common-protos dependency is also bumped to v1.56.4, which is the version that api-common v0.5.4 depends on.
Strictly speaking, this is a breaking change, as you might need to bump your googleapis-common-protos dependency to v1.56.4 too if it is specified explicitly, but this is highly unlikely to happen and very easy to fix.
What's Changed
Full Changelog: v0.15.2...v0.15.3
v0.16.0
Frequenz Microgrid API Release Notes
Summary
This version of the API introduces a number of breaking changes, and is not
backwards compatible with the previous version. The changes primarily include:
- RPC renames
- Upgrade to frequenz.api.common v0.5.0
Upgrading
-
The
CanStreamData
RPC has been removed. Users are recommended to check it
by calling theStreamComponentData
RPC. -
The message
microgrid.Location
has been removed, and
frequenz.api.common.location.Location
is being used instead. TheLocation
message from the common API also has acountry_code
member. -
The following gRPC methods have been renamed:
StreamComponentData
->ReceiveComponentDataStream
AddExclusionBounds
->AddComponentExclusionBounds
AddInclusionBounds
->AddComponentInclusionBounds
SetPowerActive
->SetComponentPowerActive
SetPowerReactive
->SetComponentPowerReactive
Start
->StartComponent
HotStandby
->HotStandbyComponent
ColdStandby
->PutComponentInStandby
Stop
->StopComponent
ErrorAck
->AckComponentError
-
The following gRPC method have been removed:
HotStandby
-
Introduced a dedicated RPC method for listing sensors in the microgrid,
separating them from the "component" category. -
The RPC parameters have been renamed to be more consistent with the RPC names,
and with each other. -
The package names have been changed from
frequenz.api.microgrid.<package>
to
frequenz.api.microgrid.v1.<package>
.v1
is the API's major version, and
will be incremented for breaking changes. -
The common protobuf dependency has been upgraded to
v0.5.0
. The protobuf
messages returned by the RPCs are now in thefrequenz.api.common.v1
package.
As a result, all files besidesmicrogrid.proto
became obsolete, and
therefore, have been removed. -
The request messages for receiving data streams have now been extended to
consist of a list of metrics to be streamed. This allows the user to request
only the metrics they are interested in, instead of receiving all of them.
If this list is empty, then no data will be streamed, and the service will
return an error. -
The RPC
SetComponentPowerActive
now returns a timestamp until which the
command will stay in effect. The component's active power will be set to 0
after this timestamp, if the API receives no further requests to change it
before then. By default, this timestamp will be the current time plus 60
seconds. -
The RPC
SetComponentPowerReactive
now returns a timestamp until which the
command will stay in effect. The component's reactive power will be set to 0
after this timestamp, if the API receives no further requests to change it
before then. By default, this timestamp will be the current time plus 60
seconds.
What's Changed
- Clear release notes by @llucax in #90
- Bump black from 23.3.0 to 23.7.0 by @dependabot in #96
- Bump mypy from 1.2.0 to 1.4.1 by @dependabot in #93
- Bump mkdocs-material from 9.1.16 to 9.1.21 by @dependabot in #94
- Bump pylint from 2.17.3 to 2.17.5 by @dependabot in #91
- Bump pytest from 7.3.1 to 7.4.0 by @dependabot in #92
- Remove the
CanStreamData
RPC by @tiyash-basu-frequenz in #87 - Clean old files after migration to repo-config by @llucax in #97
- Update frequenz-api-common to v0.3.1 by @tiyash-basu-frequenz in #98
- Update common API version in pyproject.toml by @tiyash-basu-frequenz in #100
- Use Location from the common API specs by @tiyash-basu-frequenz in #99
- Rename RPC StreamComponentData to SubscribeComponentData by @tiyash-basu-frequenz in #102
- Rename RPCs that act on Components by @tiyash-basu-frequenz in #103
- Bump mypy from 1.4.1 to 1.5.0 by @dependabot in #105
- Add relays and precharge components by @tiyash-basu-frequenz in #104
- Upgrade to repo-config v0.5.2 by @llucax in #108
- Bump mypy from 1.5.0 to 1.5.1 by @dependabot in #107
- Bump mkdocs-material from 9.1.21 to 9.2.3 by @dependabot in #113
- Bump mkdocs-material from 9.2.3 to 9.2.7 by @dependabot in #116
- Bump pytest from 7.4.0 to 7.4.1 by @dependabot in #120
- Bump mkdocstrings[python] from 0.22.0 to 0.23.0 by @dependabot in #117
- Bump pytest from 7.4.1 to 7.4.2 by @dependabot in #126
- Bump mkdocs-material from 9.2.7 to 9.3.1 by @dependabot in #130
- Bump black from 23.7.0 to 23.9.1 by @dependabot in #128
- Bump actions/checkout from 3 to 4 by @dependabot in #121
- Bump mkdocs-section-index from 0.3.5 to 0.3.6 by @dependabot in #123
- Bump mkdocs-literate-nav from 0.6.0 to 0.6.1 by @dependabot in #129
- Bump mkdocs-section-index from 0.3.6 to 0.3.7 by @dependabot in #132
- Bump mkdocs-material from 9.3.1 to 9.3.2 by @dependabot in #135
- Bump mkdocs-section-index from 0.3.7 to 0.3.8 by @dependabot in #137
- Bump mkdocs-material from 9.3.2 to 9.4.2 by @dependabot in #138
- Update frequenz-api-common to v0.4.0 by @tiyash-basu-frequenz in #140
- Rename precharge_module to precharger by @tiyash-basu-frequenz in #141
- Bump pylint from 2.17.5 to 2.17.6 by @dependabot in #139
- Bump pylint from 2.17.6 to 2.17.7 by @dependabot in #146
- Bump mkdocs-material from 9.4.2 to 9.4.3 by @dependabot in #148
- Change inverter DC metrics to repeated fields by @tiyash-basu-frequenz in #143
- Add fuse component by @tiyash-basu-frequenz in #144
- Remove sensors from component category and represent the separately by @tiyash-basu-frequenz in #145
- Rename RPC parameters to be more consistent with the RPC names by @tiyash-basu-frequenz in #150
- Add major version to package names by @tiyash-basu-frequenz in #151
- Change RPCs by @tiyash-basu-frequenz in #153
- Add overview and description of the Frequenz Microgrid API by @tiyash-basu-frequenz in #142
- Bump mkdocs-material from 9.4.3 to 9.4.4 by @dependabot in #154
- Bump pytest from 7.4.2 to 7.4.3 by @dependabot in #168
- Bump repo-config to v0.6.2 by @TalweSingh in #158
- Bump grpc-stubs from 1.53.0.2 to 1.53.0.3 by @dependabot in #170
- Bump the optional group with 4 updates by @dependabot in #169
- Bump yoheimuta/action-protolint from 1.0.0 to 1.1.0 by @dependabot in #171
- Bump the optional group with 1 update by @dependabot in #172
- Bump the optional group with 3 updates by @dependabot in #175
- Bump pylint from 2.17.7 to 3.0.2 by @dependabot in #166
- Update frequenz-api-common to v0.5.0 by @tiyash-basu-frequenz in #173
- Bump the optional group with 4 updates by @dependabot in #177
- Add support for filtering metrics in data streams by @tiyash-basu-frequenz in #179
- Return valid-until timestamps from set-power RPCs by @tiyash-basu-frequen...
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-common
Python dependencyThe
frequenz-api-common
submodule 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-common
to v0.3.0The submodule
frequenz-api-common
has been upgraded to v0.3.0.
This version renames the enum representing EV charger types toEvChargerType
and defined theMetricAggregation
message, which was previously defined in
frequenz-api-microgrid
.Since the message
MetricAggregation
is now being imported from the common
specs, it has been removed from the filecommon.proto
. -
Renamed message
EVCharger
toEvCharger
This is done to use same naming convention as
frequenz-api-common
.
Note that a similar renaming was done infrequenz-api-common
v0.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-common
to 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-common
for common proto definitionsThe following proto definitions have been removed, and are being used from the
frequenz-api-common
repository instead:ComponentCategory
->frequenz.api.common.components.ComponentCategory
battery.Type
->frequenz.api.common.components.BatteryType
common.Bounds
->frequenz.api.common.metrics.Bounds
common.Metric
->frequenz.api.common.metrics.Metric
common.Ac
->frequenz.api.common.metrics.electrical.Ac
common.Dc
->frequenz.api.common.metrics.electrical.Dc
ev_charger.Type
->frequenz.api.common.components.EVChargerType
inverter.Type
->frequenz.api.common.components.InverterType
sensor.Type
->frequenz.api.common.components.SensorType
The pypi package
frequenz-api-common
is 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-common
will 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-common
definitions forces the minimum
required python version of thefrequenz-api-microgrid
package to be 3.11,
as a transitive dependency inherited from thefrequenz-api-common
package.
New Features
-
Added new battery component states
Three new battery component states have been added:
SwitchingOn
SwitchingOff
Unknown
-
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
SetPowerReactive
has 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