See the current co2 emissions per kWh of electricity in the Netherlands
Project description
Table of Contents
CO2 monitor
This projects monitors the current CO₂ emissions per kWh of electricity being generated in the Netherlands. It obtains the data from ned.nl, and gets updated every 15 minutes. It has three modes:
$ co2monitor --help
Usage: co2monitor [OPTIONS] COMMAND [ARGS]...
Shows the current CO2 emissions per kWh of electricity in the Netherlands.
Options:
--debug / --no-debug
--api-key TEXT Override API_KEY environment variable.
--api-url TEXT [default: https://api.ned.nl/v1]
--user-agent TEXT Override USER_AGENT environment varaible.
--polltime INTEGER [default: 60]
--version Show the version and exit.
-h, --help Show this message and exit.
Commands:
cli Print emissions to the commandline.
screen Show emissions on an EPD screen connected via GPIO.
tray Add a system tray icon with emissions.
cli
This mode polls the API once per minute and outputs it in the current format:
2024-11-29 19:30: 310.45g CO2/kWh
tray
This creates a really ugly system tray icon showing the CO₂ emissions rounded to the nearest natural number, shown here below the tooltip:
screen
This mode shows the current emisions a small EPD screen connected to some GPIO pins of the Raspberry Pi. It assumes that we are running on a Raspberry Pi, and fails otherwise. I’m not sure if this works—I haven’t dug up my old Pi from the basement yet.
See Pins for an overview of what pins need to be connected to the screen.
Installation
I show pip commands here. However, pip isn’t ideal for this: use pipx or, as I do, uv (uv tool install co2monitor[tray], for example).
$ pip install co2monitor
Is sufficient for the cli mode. The other modes require rather large libraries and are therefore excluded from the base package. Install the dependencies required for the tray mode (Qt, pillow) with
$ pip install co2monitor[tray]
And, shockingly,
$ pip install co2monitor[screen]
For the screen mode. This installs pillow, RPi.GPIO and spidev.
Development
See the Makefile for some handy dev commands. I use uv to manage my dependencies, but it does not really matter all that much.
pyproject.toml has an Entry Point, which means that it installs a binary called co2monitor in the virtual environment. If you have the virtual environment activated, you can run co2monitor. For uv, you can execute uv run co2monitor to run the project.
Pins
Screen
| Name | Function | Color | Pin number | GPIO |
|---|---|---|---|---|
| VCC | Power | Grey | 1 | - |
| GND | Ground | Brown | 6 | - |
| DIN | SPI MOSI | Blue | 19 | 10 (SPI0 MOSI) |
| CLK | SPI Clock | Yellow | 23 | 11 (SPI0 SCLK) |
| CS | SPI chip selection | Orange | 24 | 8 (SPI0 CE0) |
| DC | Data/Command selection | Green | 22 | 25 |
| RST | Reset | White | 11 | 17 |
| BUSY | Busy status output | Purple | 18 | 24 |
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file co2monitor-0.3.1.tar.gz.
File metadata
- Download URL: co2monitor-0.3.1.tar.gz
- Upload date:
- Size: 22.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5f0ed3aef07eb1f58dcdfdb8418835f0bfe39ff1b768ff0a4bdd91d2a5fce076
|
|
| MD5 |
b2a3893082c8d382b797dc7093d76332
|
|
| BLAKE2b-256 |
59ad5e8382aac6f3b464f45589fc9c51cad764ce9a9e7a8ba851c54955fa64c1
|
File details
Details for the file co2monitor-0.3.1-py3-none-any.whl.
File metadata
- Download URL: co2monitor-0.3.1-py3-none-any.whl
- Upload date:
- Size: 25.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a1f356187374fce64006a69140175d70242ba9825fa94c72f92eff697381b2ef
|
|
| MD5 |
ea77fa0ea8d5d3608061ea3c737d3e17
|
|
| BLAKE2b-256 |
c3940aa8c446c702615b742c4199f42ec13ecb209f8f98a80d6b7377ee3a7c87
|