Log your Energy Meter data on a Raspberry Pi and plot graphs of your energy consumption. Its been verified to work with a Raspberry Pi with a Linksprite RS485 shield and reading values from WEBIQ131D / SDM120 and WEBIQ343L / SDM630. By changing the meters.yml file and making a corresponding [model].yml file it should be possible to use other modbus enabled models.
- Raspberry Pi 3
- Linksprite RS485 Shield V3 for RPi
- Modbus based Energy Meter, e.g WEBIQ 131D / Eastron SDM120 or WEBIQ 343L / Eastron SMD630
- Rasbian
- Python 2.7 and PIP
- Minimalmodbus
- InfluxDB
- Grafana
This project has been documented at Hackster. Please follow the instructions there for more detailed information.
- Add the InfluxData repository
$ curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add - $ source /etc/os-release $ test $VERSION_ID = "9" && echo "deb https://repos.influxdata.com/debian stretch stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
- Download and install
$ sudo apt-get update && sudo apt-get install influxdb
- Start the influxdb service
$ sudo service influxdb start
- Create the database
$ influx CREATE DATABASE db_meters exit
- Add APT Repository
$ echo "deb https://dl.bintray.com/fg2it/deb-rpi-1b jessie main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
- Add Bintray key
$ curl https://bintray.com/user/downloadSubjectPublicKey?username=bintray | sudo apt-key add -
- Now install
$ sudo apt-get update && sudo apt-get install grafana
- Start the service using systemd:
$ sudo systemctl daemon-reload $ sudo systemctl start grafana-server $ systemctl status grafana-server
- Enable the systemd service so that Grafana starts at boot.
$ sudo systemctl enable grafana-server.service
- Go to http://localhost:3000 and login using admin / admin (remember to change password) *source
- Download and install from Github
$ git clone https://github.com/samuelphy/energy-meter-logger
- Run setup script (must be executed as root (sudo) if the application needs to be started from rc.local, see below)
$ cd energy-meter-logger $ sudo python setup.py install
- Make script file executable
$ chmod 777 read_energy_meter.py
- Edit meters.yml to match your configuration
- Test the configuration by running:
./read_energy_meter.py ./read_energy_meter.py --help # Shows you all available parameters
- To run the python script at system startup. Add to following lines to the end of /etc/rc.local but before exit:
Log with potential errors are found in /var/log/energy_meter.log
# Start Energy Meter Logger /home/pi/energy-meter-logger/read_energy_meter.py --interval 60 > /var/log/energy_meter.log &