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
- Bump the api-common dependency to v0.5.4 by @llucax in #205
- Clear release notes by @llucax in #206
- Bump the required group with 5 updates by @dependabot[bot] in #247
- Bump brettcannon/check-for-changed-files from 1.2.0 to 1.2.1 by @dependabot[bot] in #248
- Bump the required group with 6 updates by @dependabot[bot] in #249
- Merge v0.17.1 into v0.x.x by @llucax in #256
- Bump the required group across 1 directory with 9 updates by @dependabot[bot] in #257
- Fix
grpcdependencies by @llucax in #259 - Bump
protobufandgrpciodependencies by @llucax in #261 - Bump the required group with 3 updates by @dependabot[bot] in #264
- Bump the required group with 5 updates by @dependabot[bot] in #267
- Bump setuptools-scm[toml] from 7.1.0 to 8.1.0 by @dependabot[bot] in #273
- Apply new repo-config 0.11 templates by @llucax in #275
- Bump the required group across 1 directory with 8 updates by @dependabot[bot] in #274
- Bump yoheimuta/action-protolint from 1.1.0 to 1.3.0 by @dependabot[bot] in #211
- Bump setuptools from 68.1.0 to 75.6.0 by @dependabot[bot] in #272
- Bump the required group with 6 updates by @dependabot[bot] in #277
- Bump black from 24.10.0 to 25.1.0 by @dependabot[bot] in #280
- Bump the required group with 7 updates by @dependabot[bot] in #279
- Bump isort from 5.13.2 to 6.0.0 by @dependabot[bot] in #281
- Bump nox from 2024.10.9 to 2025.2.9 by @dependabot[bot] in #285
- Update to repo-config v0.13.2 by @llucax in #290
- Add Test with protoc to the Test PR workflows by @llucax in #295
- Bump actions/checkout from 3 to 4 by @dependabot[bot] in #291
- Bump pydoclint from 0.6.0 to 0.6.5 by @dependabot[bot] in #294
- Bump the patch group with 5 updates by @dependabot[bot] in #292
- Bump setuptools from 75.8.0 to 78.1.0 by @dependabot[bot] in #297
- Bump the minor group with 4 updates by @dependabot[bot] in #298
- Bump the protobuf-related dependencies by @llucax in #308
- Bump Ubuntu version in CI to 24.04 for Test with protoc by @llucax in #311
- Bump protobuf-related dependencies by @llucax in #312
- Merge v0.15.5 into v0.x.x by @llucax in #310
- Bump minimum version of
frequenz-api-commonto 0.6.5 by @llucax in #314 - Bump the minor group across 1 directory with 4 updates by @dependabot[bot] in #313
- Bump the patch group across 1 directory with 5 updates by @dependabot[bot] in #307
- Bump pydoclint from 0.6.5 to 0.6.6 by @dependabot[bot] in #301
- Bump grpc-stubs from 1.53.0.5 to 1.53.0.6 by @dependabot[bot] in #302
- Bump setuptools from 78.1.0 to 80.1.0 by @dependabot[bot] in #303
- Make
AddComponentBoundsmore consistent with other RPCs by @llucax in #270 - Bump the patch group with 5 updates by @dependabot[bot] in #320
- dependabot: Group grpc/protobuf updates together by @llucax in #323
- Bump flake8 from 7.2.0 to 7.3.0 in the minor group across 1 directory by @dependabot[bot] in #326
- Update
frequenz-api-commonto v0.7.0 by @tiyash-basu-frequenz in #319 - dependabot: Update all package ecosystems to monthly schedule by @llucax in #327
- Bump mkdocs-material from 9.6.14 to 9.6.15 in the patch group by @dependabot[bot] in #328
- Rename
GetMicrogridMetadataRPC toGetMicrogridby @tiyash-basu-frequenz in #330 - Stream responses for
SetElectricalComponentPowerActive/ReactiveRPCs by @tiyash-basu-frequenz in #332 - Remove redundant
optionalkeyword by @tiyash-basu-frequenz in #333 - Rename
AddElectricalComponentBoundstoAugmentElectricalComponentBoundsby @tiyash-basu-frequenz in #334 - Rename fields in
ListElectricalComponentConnectionsRequestby @tiyash-basu-frequenz in #335 - Unify power setting RPCs into new RPC
SetElectricalComponentPowerby @tiyash-basu-frequenz in #336 - Revert validity_duration of
AddComponentBoundsRequestto 5 seconds by @tiyash-basu-frequenz in #338 - Update frequenz-api-common submodule to v0.8.0 by @tiyash-basu-frequenz in #339
- Rename
valid_untilfields tovalid_until_timeby @tiyash-basu-frequenz in #341 - Merge v0.17.2 into v0.x.x by @llucax in #345
- Clean up and refactor the microgrid API release notes by @tiyash-basu-frequenz in #342
- Move changes to
v1alpha18and revertv1by @tiyash-basu-frequenz in #346
Full Changelog: v0.17.2...v0.18.0