powermeter/README.md

77 lines
1.6 KiB
Markdown
Raw Permalink Normal View History

2021-01-24 13:58:29 +01:00
# powermeter
2024-10-08 22:04:32 +02:00
A simple Pyhton script to mesaure you electricity consumption using the LED on a electricity meter and a digital light sensor.
You either can use InfluxDB to store the data or a built in Flask application.
## Hardware setup
- Raspberry Pi
- Digital light sensor like this: https://www.berrybase.de/lichtsensor-mit-digitalem-ausgang
Connect the light sensor to your Pi:
```
VCC: 5V
DATA: GPIO 27
GND: GND
```
## Software setup
2024-10-08 22:15:27 +02:00
- Copy the `.env.example` to `/etc/powermeter-environment` and change it to your needs.
2024-10-08 22:04:32 +02:00
- Acivate at least InfluxDB (which I would recommend) or Flask output.
2021-01-24 13:58:29 +01:00
2024-10-11 22:05:39 +02:00
Clone this repository, configure `.env` file, setup systemd service:
2021-01-24 18:25:19 +01:00
```
2024-10-08 22:04:32 +02:00
git clone https://code.f2n.me/finn/powermeter.git
2021-01-24 18:25:19 +01:00
cd powermeter
2024-10-08 22:15:27 +02:00
cp .env.example /etc/powermeter-environment
cp powermeter.service /etc/systemd/system/powermeter.service
systemctl enable powermeter
systemctl start powermeter
```
For Flask app also to the following steps:
```
2021-01-24 18:25:19 +01:00
virtualenv .
pip install -r requirements.txt
2024-10-08 22:15:27 +02:00
cp apache2_sample_config.conf /etc/apache2/sites-available/powermeter.conf # modifiy to fit your needs
a2ensite powermeter
systemctl reload apache2
2021-01-24 18:25:19 +01:00
```
2024-10-08 22:04:32 +02:00
## Developing (Flask app)
2021-01-24 13:58:29 +01:00
For developing run this (you need to create database and user first):
```
export FLASK_ENV=development
export APP_DEVELOPMENT_DATABASE_URI=postgres://username:passwort@hostname/database
flask run
```
2024-10-08 22:04:32 +02:00
2024-10-08 22:15:27 +02:00
## Future thoughts
- build container for flask app
- Microcontroller edition
- and more
2024-10-08 22:04:32 +02:00
## Screenshots
Node-RED usage example:
![Node-RED Dashboard](/screenshots/nodered.png)
Grafana Dashboard example (InfluxDB datasource):
![Grafana Dashboard](/screenshots/grafana.png)