PowerLight: Difference between revisions
(→Light) |
|||
Line 113: | Line 113: | ||
=== Light === | === Light === | ||
Source code: https://github.com/bertrik/PowerLight | 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. |
Revision as of 17:21, 19 July 2022
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 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:
- https://berthub.eu/articles/posts/dutch-electrical-power-figures-2/ provides a nice overview of the current situation about dutch electrical power generation data
- https://energy-charts.info/charts/energy_pie/chart.htm?l=en&c=NL note how the solar part is tiny, even during the day
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:
- 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
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
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.