Skip to content

Releases: frequenz-floss/frequenz-api-microgrid

v0.15.6

18 Aug 10:21
v0.15.6
872a685

Choose a tag to compare

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

11 Jul 10:21
Immutable release. Only release title and notes can be modified.
v0.18.0
0e5529e

Choose a tag to compare

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 protobuf is now 6.31.1.
  • The minimum supported version of grpcio is now 1.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.0 dependency.
  • RPCs: SetComponentPowerActive and SetComponentPowerReactive have been removed. Use the new SetElectricalComponentPower RPC 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 a power_type field to specify whether you are setting ACTIVE or REACTIVE power.
  • Streaming Response: This RPC returns a stream of SetElectricalComponentPowerResponse messages, 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 ...
Read more

v0.17.2

11 Jun 08:23
v0.17.2
fba8152

Choose a tag to compare

Frequenz Microgrid API Release Notes

Bug Fixes

  • Fix a dependency issue by pinning the grpcio version and related libraries.

What's Changed

  • Bump protobuf-related dependencies by @llucax in #315

Full Changelog: v0.17.1...v0.17.2

v0.15.5

10 Jun 12:17
v0.15.5
35c5a99

Choose a tag to compare

Frequenz Microgrid API Release Notes

Bug Fixes

  • Bump the protobuf minimum supported version to 5.26.1, and the maximum version to 7.0.0
  • Bump the grpcio and grpcio-tools minimum supported versions to 1.63.0
  • Bump the googleapis-common-protos minimum supported version to 1.63.1

What's Changed

  • Bump the protobuf-related dependencies by @llucax in #308

Full Changelog: v0.15.4...v0.15.5

v0.15.4

13 Sep 12:51
v0.15.4
ac7c7a1

Choose a tag to compare

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.15.3...v0.15.4

v0.17.1

10 Sep 13:13
v0.17.1
f5c4161

Choose a tag to compare

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

10 May 15:09
v0.17.0
b12e4d9

Choose a tag to compare

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 version v0.6.1. Please refer to the release notes for v0.6.0 and v0.6.1 of frequenz-api-common for more information.

  • A new RPC named AddComponentBounds has been introduced, which accepts only inclusive bounds. The old RPCs AddComponentInclusionBounds and AddComponentExclusionBounds have been removed.

  • The enum ComponentBoundsTargetMetric has been removed in favour of the Metric enum from frequenz-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 field validity_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 to UNSPECIFIED, the bounds will be valid for a default duration of 5 seconds.

  • The request messages SetComponentPowerActiveRequest and SetComponentPowerReactiveRequest have a new field named request_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

Full Changelog: v0.16.1...v0.17.0

v0.16.1

25 Mar 17:15
v0.16.1
32ec80e

Choose a tag to compare

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

Read more

v0.15.3

01 Feb 10:04
v0.15.3
2332734

Choose a tag to compare

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

  • Bump the api-common dependency to v0.5.4 by @llucax in #205

Full Changelog: v0.15.2...v0.15.3

v0.16.0

22 Nov 15:44
v0.16.0
30d75b3

Choose a tag to compare

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 the StreamComponentData RPC.

  • The message microgrid.Location has been removed, and
    frequenz.api.common.location.Location is being used instead. The Location
    message from the common API also has a country_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 the frequenz.api.common.v1 package.
    As a result, all files besides microgrid.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 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

Read more