PowerLight
Project PowerLight | |
---|---|
Show energy mix of dutch power generation as a pie chart on a LED ring | |
Status | In progress |
Contact | bertrik |
Last Update | 2022-07-19 |
The concept
Draw the current power generation-mix as a kind of pie chart on a LED ring light, with colors representing a fraction of a specific power generation source.
For example:
- blue: wind power
yellow: solar powersee belowgreen: power from biomasssee below- purple: power from nuclear
- red: fossil
- grey: other
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.
The solar power problem
In particular the solar power fraction is incomplete, but also the biomass figures are missing. See:
- https://berthub.eu/articles/posts/dutch-electrical-power-figures-2/ (text)
- https://energy-charts.info/charts/energy_pie/chart.htm?l=en&c=NL note how the solar part is tiny
There is a model to estimate this fraction at https://api.netanders.io/, however you cannot use this API without a key (and you can't just get a key).
Some ideas to fix this gap somewhat:
- Correlate official reported solar data with the model, and extract a kind of tennet-reported->best-guess-actual multiplication factor
- Use yesterday's solar prediction data from ENTSO-E. The number seen here seems to correlate reasonably well with the number shown at https://energieopwek.nl/ (which bases itself on the netanders model)
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
- 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): ???
Hardware
Parts:
- LED ring light https://nl.aliexpress.com/item/1005003798658173.html
- Wemos D1 mini with an ESP8266
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
In progress, run 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
Light
Source code: https://github.com/bertrik/PowerLight