Skip to content

Releases: frequenz-floss/frequenz-api-microgrid

v0.13.0

23 May 12:22
v0.13.0
0234f4d
Compare
Choose a tag to compare

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 Inverter message has been updated to support hybrid and solar inverters.
    The dc field has been renamed to dc_battery, and a new field dc_solar
    has been added.
    The dc_battery field is used to report the DC electricity flowing to/from
    the linked battery, and is applicable to battery and hybrid inverters.
    The dc_solar field is used to report the DC electricity flowing to/from the
    linked solar panels, and is applicable to solar and hybrid inverters.

New Features

  • Added a general sensor type

    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_GENERAL supports 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 the SensorMetric enum 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

Full Changelog: v0.12.0...v0.13.0

v0.12.0

03 May 06:44
89888c9
Compare
Choose a tag to compare

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

  • Renamed RPCs

    The following RPC has been renamed to make their objectives clearer:

    • GetMetadata -> GetMicrogridMetadata
    • GetComponentData -> StreamComponentData
  • Removed deprecated code

    The following deprecated code has been removed:

    • The COMPONENT_CATEGORY_LOAD variant from the ComponentCategory enum.
    • The COMPONENT_CATEGORY_JUNCTION variant from the ComponentCategory enum.
    • The RPCs Charge and Discharge, in favour of RPC SetPowerActive.
    • The RPC SetBounds, in favour of RPCs AddExclusiveBounds and
      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.

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 RPC GetMicrogridMetadata() 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

    1. DC electrical current,
    2. total AC electrical current,
    3. 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 ListComponents calls,
    in a new message variable Component.metadata.
    This is a more general way of representing category-specific metadata,
    like category-type, and removes Component.type.

  • Introduced grid max-current

    This change introduces a grid.Metadata message, 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

  • Introduced exclusion bounds

    In the messages common.Metric and common.MetricAggregation,
    system_bounds has now been replaced by system_exclusion_bounds and
    system_inclusion_bounds. A metric's value now has to comply with the
    following constraints:

    • value <= system_exclusion_bounds.lower OR
      system_exclusion_bounds.upper <= value

    • system_inclusion_bounds.lower <= value <= system_inclusion_bounds.upper

    system_inclusion_bounds behave 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 SetBounds has been deprecated.

Bug Fixes

None

What's Changed

New Contributors

Full Changelog: v0.11.0...v0.12.0

v0.11.0

06 Sep 09:03
v0.11.0
6c584b0
Compare
Choose a tag to compare

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-microgrid

The 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

New Contributors

Full Changelog: https://github.com/frequenz-floss/frequenz-api-microgrid/commits/v0.11.0