Skip to content

Carbon Intensity Simple Client Library (Fork from Jscruz library bringing in some additional data)

License

Notifications You must be signed in to change notification settings

alanmcgore/carbonintensity

 
 

Repository files navigation

carbonintensityforked

Maintained

Simple Carbon Intensity UK API Library

The purpose of this library is to retrieve information from Carbon Intensity UK

The client connects asynchronously to the API, retrieving information about the current level of CO2 generating energy in the current period.

It uses aiohttp to communicate with the API asynchronously. This decision has been based mainly on the premise that the library will be used in the context of Home Assistant integration.

In addition it calculates when is the next 24 hours lowest level comparing values of the CO2 forecast levels.

This version also adds in a regional low carbon generation percentage, which is calculated as nuclear + wind + solar + biomass + hydro as well as the work by @jfparis to implement optimal windows/forecasts.

.2 Adds a regional fossil fuel generation percentage which calculates as gas + coal generation from the current window. .3 Adds oil and calls 48h service.

Example

Retrieve regional and national information based on postcode SW1 for the next 24 hours starting now:

   client = Client("SW1")
   response = await client.async_get_data()
   data = response["data"]

Note: Time in UTC

Data format

An example of the function output can be found below:

   {
       "data":
        {
              "current_period_from": "2020-05-20T10:00+00:00",
              "current_period_to": "2020-05-20T10:30+00:00",
              "current_period_forecast":300,
              "current_period_index": "high",
              "current_period_national_forecast":230,
              "current_period_national_index": "moderate",
              "current_low_carbon_percentage": 23,
              "current_fossil_fuel_percentage": 65,
              "lowest_period_from":"2020-05-21T14:00+00:00",
              "lowest_period_to":"2020-05-21T14:30+00:00",
              "lowest_period_forecast": 168,
              "lowest_period_index": "moderate",
              "optimal_window_from" : "2020-05-20T10:00+00:00",
              "optimal_window_to" : "2020-05-20T10:30+00:00",
              "optimal_window_forecast" : 121,
              "optimal_window_index" : "low",
              "optimal_window_48_from" : "2020-05-20T10:00+00:00",
              "optimal_window_48_to" : "2020-05-20T10:30+00:00",
              "optimal_window_48_forecast" : 130,
              "optimal_window_48_index" : "low",
              "unit": "gCO2/kWh",
              "forecast": [{"from":"2020-05-20T10:00+00:00","to": "2020-05-20T11:00+00:00", "intensity": 162, "index": 0, "optimal": False}],
              "postcode": "SW1"
        }
    }

Install carbonintensity

python3 -m pip install -U carbonintensity-forked

Licenses

This work is based on the following:

About

Carbon Intensity Simple Client Library (Fork from Jscruz library bringing in some additional data)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%