PowerLight: Difference between revisions

From RevSpace
Jump to navigation Jump to search
Line 112: Line 112:


Entso-E appears to have new data every 15 minutes, about 5m20s after the start of the new 15 minute period.
Entso-E appears to have new data every 15 minutes, about 5m20s after the start of the new 15 minute period.
At that point, the data is from half an hour ago.
So, including the 5 minute processing delay, the most recent data we can get is about 35 minutes old.


=== Light ===
=== Light ===

Revision as of 22:23, 20 July 2022

Project PowerLight
PowerLight.jpg
Show energy mix of dutch power generation as a pie chart on a LED ring
Status In progress
Contact bertrik
Last Update 2022-07-20

The concept

Draw the current dutch electrical power generation-mix as pie chart on a LED ring light, with colors representing fractions of a specific power generation source.

For example:

  • yellow: solar
  • blue: wind
  • red: fossil
  • green: nuclear
  • grey: other/waste

Power generation data

Information about energy in Europe is collected at the european organisation https://www.entsoe.eu/ . The section about electrical energy is collected in ENTSO-E. Data is available from this platform at a 15-minute interval.

TenneT is the organisation that supplies ENTSO-E with data from the Netherlands.

Information about ENTSO-E generation domain API: https://transparency.entsoe.eu/content/static_content/Static%20content/web%20api/Guide.html#_generation_domain

Power generation categories

The backend uses the following categories

ENTSO-E numbers the production types from B01 to B20 ("PsrType"), how these are filled for the netherlands:

  • B01 (biomass): always 0, not useful
  • B02: not available
  • B03: not available
  • B04 (fossil hard coal): useful
  • B05 (fossil gas): useful
  • B06: not available
  • B07: not available
  • B08: not available
  • B09 (geothermal): not available
  • B10 (hydro): not available
  • B11 (hydro): always 0
  • B12 (hydro): not available
  • B13 (marine): not available
  • B14 (nuclear): useful
  • B15 (other renewable): useful, but what is this?
  • B16 (solar): hugely underreported, *not* useful
  • B17 (waste): useful
  • B18 (wind offshore): useful
  • B19 (wind onshore): useful
  • B20 (other): ???

The solar power problem

In particular the solar power fraction is incomplete, but also the biomass figures are missing. See:

There is a model that estimates the solar fraction, also at a regional level, at https://api.netanders.io/, however use of this model requires a paid subscription.

What I'm currently doing for the solar fraction, is to use the ENTSO-E forecast instead of the actual solar numbers reported to them, see yesterday's wind/solar forecast. Perhaps this can also be done for the wind fraction.

Hardware

Parts:

Software

The software consists of two parts:

  • backend part that collects the power generation data
  • light part that visualizes the power generation as fractions on a LED ring

Backend

Source code: https://github.com/bertrik/energymix-server

Runs as a REST-like resource at http://stofradar.nl:9001/energy/latest (1-minute rate limit)

The backend uses the following categories:

  • solar = B16 (from the forecast document)
  • wind = B18 + B19
  • fossil = B04 + B05
  • nuclear = B14
  • waste = B17
  • other = B15 + B20

Returns a JSON-structure like:

{
  "time": 1657057500,
  "total": 9122,
  "mix": [
    { "id": "solar", "power": 0, "color": "#FFFF00"},
    { "id": "wind", "power": 4, "color": "#0000FF"},
    { "id": "fossil", "power": 86, "color": "#FF0000"},
    { "id": "nuclear", "power": 5, "color": "#FF00FF"},
    { "id": "other", "power": 4, "color": "#444444"},
    { "id": "waste", "power": 1, "color": "#444444"}
  ]
}
  • time is a unix time stamp in seconds, representing the end of the 15-minute period that the power figures refer to
  • total is the total current electrical power (megawatt), suitable for display (on a numeric display inside the ring for example)
  • energymix is an array of power sources, each with:
    • a short unique id
    • most recent known power (megawatt)
    • hex color, for display on the led ring

Entso-E appears to have new data every 15 minutes, about 5m20s after the start of the new 15 minute period. At that point, the data is from half an hour ago. So, including the 5 minute processing delay, the most recent data we can get is about 35 minutes old.

Light

Source code: https://github.com/bertrik/PowerLight

The Arduino sketch polls the REST API using HTTP every minute.

WiFi is managed by WifiManager. LEDs are controlled using FastLED. JSON content is parsed using ArduinoJSON.