Releases: frequenz-floss/frequenz-api-microgrid
v0.15.6
Frequenz Microgrid API Release Notes
Summary
This release relaxes the dependency constraint for frequenz-api-common to allow for newer versions.
What's Changed
- Relax frequenz-api-common dependency constraint to allow newer versions by @Copilot in #352
New Contributors
- @Copilot made their first contribution in #352
Full Changelog: v0.15.5...v0.15.6
v0.18.0
Frequenz Microgrid API Release Notes
Summary
This release introduces a new preview API version, v1alpha18, alongside the stable v1 API, and updates the underlying frequenz-api-common dependency to v0.8.0.
The v1 API remains unchanged to ensure backward compatibility. All new features, including a more unified power-setting RPC and alignment with frequenz-api-common v0.8.0, are available exclusively in the new v1alpha18 package.
Stable v1 API
The v1 API is stable and has not been changed in this release. Users currently on v1 do not need to make any changes, beyond potentially updating python dependencies as described below.
The upgrade to frequenz-api-common v0.8.0 does not affect the v1 API, and it remains fully compatible with existing implementations.
New v1alpha18 Preview API
A new package, frequenz.api.microgrid.v1alpha18, has been introduced to provide access to the latest features. The v1alpha18 API introduces a more streamlined and robust interface compared to the stable v1 API.
Upgrading to the v0.18.0 release
1. Dependency Updates
Despite the v1 API remaining unchanged, your project's dependencies may need to be updated, due to the following python dependency updates:
- The minimum supported version of
protobufis now6.31.1. - The minimum supported version of
grpciois now1.72.1.
Upgrading to the v1alpha18 API
Alongside upgrading to the v0.18.0 release, you can also upgrade to the new v1alpha18 API, which includes several significant changes and improvements.
1. Dependency Updates
frequenz-api-common v0.8.0: The frequenz-api-common dependency has been updated from v0.6.1 to v0.8.0. The v1alpha18 API uses the frequenz.api.common.v1alpha8 API from the frequenz-api-common v0.8.0 dependency, which includes several improvements and changes compared to the previous version. Please consult the release notes in frequenz-api-common's for details:
2. Removals
- Sensor categories: These have been removed entirely, aligning with the underlying
frequenz-api-common v0.8.0dependency. - RPCs:
SetComponentPowerActiveandSetComponentPowerReactivehave been removed. Use the newSetElectricalComponentPowerRPC instead (see below).
3. Major Breaking Change: New Power-Setting RPC
The RPCs SetComponentPowerActive and SetComponentPowerReactive have been replaced by a single, more robust RPC: SetElectricalComponentPower.
- Unified Interface: The new request message,
SetElectricalComponentPowerRequest, includes apower_typefield to specify whether you are settingACTIVEorREACTIVEpower. - Streaming Response: This RPC returns a stream of
SetElectricalComponentPowerResponsemessages, providing ongoing status updates about the power-setting operation.
4. Symbol Renaming
Numerous symbols were renamed. The changes are primarily for clarity and consistency with the new frequenz-api-common API. The changes are listed below:
| Type | Old Name | New Name |
|---|---|---|
| RPC | GetMicrogridMetadata |
GetMicrogrid |
| Message | GetMicrogridMetadataResponse |
GetMicrogridResponse |
| RPC | ListComponents |
ListElectricalComponents |
| Message | ListComponentsRequest |
ListElectricalComponentsRequest |
| Field | ListComponentsRequest.component_ids |
ListElectricalComponentsRequest.electrical_component_ids |
| Field | ListComponentsRequest.categories |
ListElectricalComponentsRequest.electrical_component_categories |
| Message | ListComponentsResponse |
ListElectricalComponentsResponse |
| Field | ListComponentsResponse.components |
ListElectricalComponentsResponse.electrical_components |
| RPC | ListConnections |
ListElectricalComponentConnections |
| Message | ListConnectionsRequest |
ListElectricalComponentConnectionsRequest |
| Field | ListConnectionsRequest.starts |
ListElectricalComponentConnectionsRequest.source_electrical_component_ids |
| Field | ListConnectionsRequest.ends |
ListElectricalComponentConnectionsRequest.destination_electrical_component_ids |
| Message | ListConnectionsResponse |
ListElectricalComponentConnectionsResponse |
| Field | ListConnectionsResponse.connections |
ListElectricalComponentConnectionsResponse.electrical_component_connections |
| RPC | ReceiveComponentDataStream |
ReceiveElectricalComponentTelemetryStream |
| Message | ReceiveComponentDataStreamRequest |
ReceiveElectricalComponentTelemetryStreamRequest |
| Field | ReceiveComponentDataStreamRequest.component_id |
ReceiveElectricalComponentTelemetryStreamRequest.electrical_component_ids |
| Message | ReceiveComponentDataStreamRequest.ComponentDataStreamFilter |
ReceiveElectricalComponentTelemetryStreamRequest.ComponentTelemetryStreamFilter |
| Message | ReceiveComponentDataStreamResponse |
ReceiveElectricalComponentTelemetryStreamResponse |
| Field | ReceiveComponentDataStreamResponse.data |
ReceiveElectricalComponentTelemetryStreamResponse.telemetry |
| RPC | ReceiveSensorDataStream |
ReceiveSensorTelemetryStream |
| Message | ReceiveSensorDataStreamRequest |
ReceiveSensorTelemetryStreamRequest |
| Message | ReceiveSensorDataStreamResponse |
ReceiveSensorTelemetryStreamResponse |
| Field | ReceiveSensorDataStreamResponse.data |
ReceiveSensorTelemetryStreamResponse.telemetry |
| RPC | AddComponentBounds |
AugmentElectricalComponentBounds |
| Message | AddComponentBoundsRequest |
AugmentElectricalComponentBoundsRequest |
| Field | AddComponentBoundsRequest.validity_duration |
AugmentElectricalComponentBoundsRequest.request_lifetime |
| Message | AddComponentBoundsResponse |
AugmentElectricalComponentBoundsResponse |
| Field | AddComponentBoundsResponse.ts |
AugmentElectricalComponentBoundsResponse.valid_until_time |
| RPC | StartComponent |
StartElectricalComponent |
| Message | StartComponentRequest |
StartElectricalComponentRequest |
| Field | StartComponentRequest.component_id |
StartElectricalComponentRequest.electrical_component_id |
| RPC | PutComponentInStandby |
PutElectricalComponentInStandby |
| Message | PutComponentInStandbyRequest |
PutElectricalComponentInStandbyRequest |
| Field | PutComponentInStandbyRequest.component_id |
PutElectricalComponentInStandbyRequest.electrical_component_id |
| RPC | StopComponent |
StopElectricalComponent |
| Message | StopComponentRequest |
StopElectricalComponentRequest |
| Field | StopComponentRequest.component_id |
StopElectricalComponentRequest.electrical_component_id |
| RPC | AckComponentError |
AckElectricalComponentError |
| Message | AckComponentErrorRequest |
AckElectricalComponentErrorRequest |
| Field | AckComponentErrorRequest.component_id |
AckElectricalComponentErrorRequest.electrical_component_id |
What's Changed
v0.17.2
Frequenz Microgrid API Release Notes
Bug Fixes
- Fix a dependency issue by pinning the
grpcioversion and related libraries.
What's Changed
Full Changelog: v0.17.1...v0.17.2
v0.15.5
Frequenz Microgrid API Release Notes
Bug Fixes
- Bump the
protobufminimum supported version to 5.26.1, and the maximum version to 7.0.0 - Bump the
grpcioandgrpcio-toolsminimum supported versions to 1.63.0 - Bump the
googleapis-common-protosminimum supported version to 1.63.1
What's Changed
Full Changelog: v0.15.4...v0.15.5
v0.15.4
v0.17.1
Frequenz Microgrid API Release Notes
Bug Fixes
- Fix a dependency issue by pinning the
grpcioversion 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-commonto versionv0.6.1. Please refer to the release notes for v0.6.0 and v0.6.1 offrequenz-api-commonfor more information. -
A new RPC named
AddComponentBoundshas been introduced, which accepts only inclusive bounds. The old RPCsAddComponentInclusionBoundsandAddComponentExclusionBoundshave been removed. -
The enum
ComponentBoundsTargetMetrichas been removed in favour of theMetricenum 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
AddComponentBoundsRequestmessage has a fieldvalidity_durationwhich 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
SetComponentPowerActiveRequestandSetComponentPowerReactiveRequesthave a new field namedrequest_lifetimewhich 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
protocwith the--fatal-warningsflag.
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
protocwith 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
CanStreamDataRPC 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
CanStreamDataRPC has been removed. Users are recommended to check it
by calling theStreamComponentDataRPC. -
The message
microgrid.Locationhas been removed, and
frequenz.api.common.location.Locationis being used instead. TheLocation
message from the common API also has acountry_codemember. -
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>.v1is 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.v1package.
As a result, all files besidesmicrogrid.protobecame 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
SetComponentPowerActivenow 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
SetComponentPowerReactivenow 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
CanStreamDataRPC 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...