frequenz-api-microgrid


Namefrequenz-api-microgrid JSON
Version 0.16.1 PyPI version JSON
download
home_pageNone
SummaryFrequenz gRPC API for monitoring and control of microgrids
upload_time2024-03-25 17:16:02
maintainerNone
docs_urlNone
authorNone
requires_python<4,>=3.11
licenseMIT
keywords frequenz python api grpc protobuf rpc microgrid
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Frequenz Microgrid API

[![Build Status](https://github.com/frequenz-floss/frequenz-api-microgrid/actions/workflows/ci.yaml/badge.svg)](https://github.com/frequenz-floss/frequenz-api-microgrid/actions/workflows/ci.yaml)
[![PyPI Package](https://img.shields.io/pypi/v/frequenz-api-microgrid)](https://pypi.org/project/frequenz-api-microgrid/)
[![Docs](https://img.shields.io/badge/docs-latest-informational)](https://frequenz-floss.github.io/frequenz-api-microgrid/)

## Introduction

The Frequenz Microgrid API is an service for operating and monitoring electrical
components and sensors within a microgrid. It offers various functionalities
related to microgrid management, including metadata retrieval, component
listing, setting power levels, and controlling the state of components. The API
is structured around the concept of a microgrid, which is a localized energy
system composed of various interconnected components and auxiliary sensors.
Microgrids are typically connected to the main grid, but can also operate
independently, in which case they are referred to as _islanded_ microgrids.

The API supports different _categories_ of electrical components and sensors.
The list of supported electrical component categories cam be found [here](https://github.com/frequenz-floss/frequenz-api-common/blob/v0.4.0/proto/frequenz/api/common/v1/components.proto#L13-L72).
The list of supported sensor categories cam be found [here](https://github.com/frequenz-floss/frequenz-api-common/blob/83e96a9cb3fd88db06c47d29be54da435fc648e3/proto/frequenz/api/common/v1/sensors.proto#L13-L38).
Note that each of these categories could have their own _types_, e.g., inverters
could belong to the type "battery" or "PV". This information is stored in the
metadata of each component and sensor, and is exposed by the API.

The API streams data from the microgrid in real-time, allowing users to retrieve
the status and performance of components and sensors. It also allows users to
control the microgrid by setting power levels and controlling the state of
components.

## Objective

The objective of this API is to provide a standardized interface for monitoring
and controlling components and sensors within a microgrid. The API is designed
to be vendor-agnostic, allowing users to interact with components from various
vendors using the same API.

### Key Features

- **Metadata Retrieval:** The API allows users to retrieve metadata about the
  microgrid, providing information about the microgrid's unique identifier (ID)
  and geographical coordinates.

- **Component Listing:** Users can list components in the microgrid, optionally
  filtered by component IDs and categories.

- **Component Graphs:** The API provides a way to list electrical connections
  between components. Connections are represented as pairs of component IDs that
  are directly connected. The connections can be visualized as a directed graph,
  where the nodes are components, the edges are connections between components,
  and the edge direction represents the direction of power flow in Passive Sign
  Convention.

- **Power Level Control:** Users can set the active and reactive power levels of
  components that support it.

- **Component State Control:** For components that support it, the API supports
  starting, stopping, and transitioning components between these and the
  standby states.

- **Bounds Management:** Users can set exclusion and inclusion bounds for
  specific metrics of a component. These bounds define the acceptable and
  unacceptable ranges of metric values. E.g., one could set the inclusion bounds
  for a battery's DC power to be between -100kW and 100 kW, and the exclusion
  bounds to be between -50kW and 50kW. This would allow the battery to operate
  between -100kW and 100kW, but would prevent it from operating between -50kW
  and 50kW.

### Example Use Cases:

This API is designed for use in microgrid management and control systems. It
can be applied in various scenarios, including:

- **Microgrid Monitoring:** Monitoring the status and performance of components
  in a microgrid, allowing operators to ensure efficient energy distribution.

- **Optimizing Energy Storage:** Managing the charge and discharge power of
  storage systems and generators, e.g., batteries, CHPs, etc., to optimize
  energy storage and consumption within the microgrid.

- **Flexibility Management:** Managing the flexibility of components in the
  microgrid, e.g., by controlling the state and power draw of electrical
  components, to ensure that the microgrid can respond to changes in energy
  demand.

- **Performance Enhancements:** Setting exclusion bounds for metrics to enhance
  system performance and prevent extreme values in battery SoCs or power
  output.

### Target Audience:

This API is designed for application developers in the energy sector who focus
on the tasks of optimizing microgrid electricity flows. Its design aims to be as
developer-friendly as possible, requiring no prior knowledge of any specific
hardware implementation.

## Contributing

If you want to know how to build this project and contribute to it, please
check out the [Contributing Guide](CONTRIBUTING.md).

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "frequenz-api-microgrid",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4,>=3.11",
    "maintainer_email": null,
    "keywords": "frequenz, python, api, grpc, protobuf, rpc, microgrid",
    "author": null,
    "author_email": "Frequenz Energy-as-a-Service GmbH <floss@frequenz.com>",
    "download_url": "https://files.pythonhosted.org/packages/4d/68/ebc071433e601d33654a197d71aec1cab97eb93cfe56324b335337cbd378/frequenz-api-microgrid-0.16.1.tar.gz",
    "platform": null,
    "description": "# Frequenz Microgrid API\n\n[![Build Status](https://github.com/frequenz-floss/frequenz-api-microgrid/actions/workflows/ci.yaml/badge.svg)](https://github.com/frequenz-floss/frequenz-api-microgrid/actions/workflows/ci.yaml)\n[![PyPI Package](https://img.shields.io/pypi/v/frequenz-api-microgrid)](https://pypi.org/project/frequenz-api-microgrid/)\n[![Docs](https://img.shields.io/badge/docs-latest-informational)](https://frequenz-floss.github.io/frequenz-api-microgrid/)\n\n## Introduction\n\nThe Frequenz Microgrid API is an service for operating and monitoring electrical\ncomponents and sensors within a microgrid. It offers various functionalities\nrelated to microgrid management, including metadata retrieval, component\nlisting, setting power levels, and controlling the state of components. The API\nis structured around the concept of a microgrid, which is a localized energy\nsystem composed of various interconnected components and auxiliary sensors.\nMicrogrids are typically connected to the main grid, but can also operate\nindependently, in which case they are referred to as _islanded_ microgrids.\n\nThe API supports different _categories_ of electrical components and sensors.\nThe list of supported electrical component categories cam be found [here](https://github.com/frequenz-floss/frequenz-api-common/blob/v0.4.0/proto/frequenz/api/common/v1/components.proto#L13-L72).\nThe list of supported sensor categories cam be found [here](https://github.com/frequenz-floss/frequenz-api-common/blob/83e96a9cb3fd88db06c47d29be54da435fc648e3/proto/frequenz/api/common/v1/sensors.proto#L13-L38).\nNote that each of these categories could have their own _types_, e.g., inverters\ncould belong to the type \"battery\" or \"PV\". This information is stored in the\nmetadata of each component and sensor, and is exposed by the API.\n\nThe API streams data from the microgrid in real-time, allowing users to retrieve\nthe status and performance of components and sensors. It also allows users to\ncontrol the microgrid by setting power levels and controlling the state of\ncomponents.\n\n## Objective\n\nThe objective of this API is to provide a standardized interface for monitoring\nand controlling components and sensors within a microgrid. The API is designed\nto be vendor-agnostic, allowing users to interact with components from various\nvendors using the same API.\n\n### Key Features\n\n- **Metadata Retrieval:** The API allows users to retrieve metadata about the\n  microgrid, providing information about the microgrid's unique identifier (ID)\n  and geographical coordinates.\n\n- **Component Listing:** Users can list components in the microgrid, optionally\n  filtered by component IDs and categories.\n\n- **Component Graphs:** The API provides a way to list electrical connections\n  between components. Connections are represented as pairs of component IDs that\n  are directly connected. The connections can be visualized as a directed graph,\n  where the nodes are components, the edges are connections between components,\n  and the edge direction represents the direction of power flow in Passive Sign\n  Convention.\n\n- **Power Level Control:** Users can set the active and reactive power levels of\n  components that support it.\n\n- **Component State Control:** For components that support it, the API supports\n  starting, stopping, and transitioning components between these and the\n  standby states.\n\n- **Bounds Management:** Users can set exclusion and inclusion bounds for\n  specific metrics of a component. These bounds define the acceptable and\n  unacceptable ranges of metric values. E.g., one could set the inclusion bounds\n  for a battery's DC power to be between -100kW and 100 kW, and the exclusion\n  bounds to be between -50kW and 50kW. This would allow the battery to operate\n  between -100kW and 100kW, but would prevent it from operating between -50kW\n  and 50kW.\n\n### Example Use Cases:\n\nThis API is designed for use in microgrid management and control systems. It\ncan be applied in various scenarios, including:\n\n- **Microgrid Monitoring:** Monitoring the status and performance of components\n  in a microgrid, allowing operators to ensure efficient energy distribution.\n\n- **Optimizing Energy Storage:** Managing the charge and discharge power of\n  storage systems and generators, e.g., batteries, CHPs, etc., to optimize\n  energy storage and consumption within the microgrid.\n\n- **Flexibility Management:** Managing the flexibility of components in the\n  microgrid, e.g., by controlling the state and power draw of electrical\n  components, to ensure that the microgrid can respond to changes in energy\n  demand.\n\n- **Performance Enhancements:** Setting exclusion bounds for metrics to enhance\n  system performance and prevent extreme values in battery SoCs or power\n  output.\n\n### Target Audience:\n\nThis API is designed for application developers in the energy sector who focus\non the tasks of optimizing microgrid electricity flows. Its design aims to be as\ndeveloper-friendly as possible, requiring no prior knowledge of any specific\nhardware implementation.\n\n## Contributing\n\nIf you want to know how to build this project and contribute to it, please\ncheck out the [Contributing Guide](CONTRIBUTING.md).\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Frequenz gRPC API for monitoring and control of microgrids",
    "version": "0.16.1",
    "project_urls": {
        "Changelog": "https://github.com/frequenz-floss/frequenz-api-microgrid/releases",
        "Issues": "https://github.com/frequenz-floss/frequenz-api-microgrid/issues",
        "Repository": "https://github.com/frequenz-floss/frequenz-api-microgrid",
        "Support": "https://github.com/frequenz-floss/frequenz-api-microgrid/discussions/categories/support"
    },
    "split_keywords": [
        "frequenz",
        " python",
        " api",
        " grpc",
        " protobuf",
        " rpc",
        " microgrid"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b6934c03f1291762d6c63305d8f878d5e27b485d8f8ace2bfeb67dcbccdbaeb3",
                "md5": "4838abd428d0515fbce169cf18f1da7e",
                "sha256": "3bc2e2db6b92a27cc3b32469b4985a9f1769eb4b586f6625f5d8ef01ffeb0b69"
            },
            "downloads": -1,
            "filename": "frequenz_api_microgrid-0.16.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "4838abd428d0515fbce169cf18f1da7e",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4,>=3.11",
            "size": 22647,
            "upload_time": "2024-03-25T17:15:59",
            "upload_time_iso_8601": "2024-03-25T17:15:59.517216Z",
            "url": "https://files.pythonhosted.org/packages/b6/93/4c03f1291762d6c63305d8f878d5e27b485d8f8ace2bfeb67dcbccdbaeb3/frequenz_api_microgrid-0.16.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4d68ebc071433e601d33654a197d71aec1cab97eb93cfe56324b335337cbd378",
                "md5": "5040208c17e8e8051f44aa87ae1f1e32",
                "sha256": "b4ed5be5476fb47290b05135b0a98028bc32cfcf6cc58f0ccc7370a2343400b6"
            },
            "downloads": -1,
            "filename": "frequenz-api-microgrid-0.16.1.tar.gz",
            "has_sig": false,
            "md5_digest": "5040208c17e8e8051f44aa87ae1f1e32",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4,>=3.11",
            "size": 95245,
            "upload_time": "2024-03-25T17:16:02",
            "upload_time_iso_8601": "2024-03-25T17:16:02.157253Z",
            "url": "https://files.pythonhosted.org/packages/4d/68/ebc071433e601d33654a197d71aec1cab97eb93cfe56324b335337cbd378/frequenz-api-microgrid-0.16.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-25 17:16:02",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "frequenz-floss",
    "github_project": "frequenz-api-microgrid",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "frequenz-api-microgrid"
}
        
Elapsed time: 0.20401s