Log Modbus Energy Meter data to InfluxDB on a Raspberry Pi and publish values via MQTT

Chakphanu Komasathit de1f61d15c Update read_energy_meter.py 5 роки тому
.gitignore 1fe9f02a23 Initial commit 6 роки тому
CHANGELOG.md ca8643970e Added files 6 роки тому
LICENSE 1fe9f02a23 Initial commit 6 роки тому
README.md afd6a512ac Added link to Hackster project 6 роки тому
SDM120.yml ca8643970e Added files 6 роки тому
SDM630.yml 072102effe Fixes typo and closes #1 6 роки тому
influx_config.yml ca8643970e Added files 6 роки тому
meters.yml ca8643970e Added files 6 роки тому
read_energy_meter.py de1f61d15c Update read_energy_meter.py 5 роки тому
setup.py 6997500120 Updated README 6 роки тому
write_register.py 896d9166df Fixes typo and closes #1 6 роки тому

README.md

Energy Meter Logger

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.

Requirements

Hardware

Software

Prerequisite

This project has been documented at Hackster. Please follow the instructions there for more detailed information.

Installation

Install InfluxDB*

Step-by-step instructions
  • 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

    

    *source

Install Grafana*

Step-by-step instructions
  • 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

Install Energy Meter Logger:

  • 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:

    # Start Energy Meter Logger
    /home/pi/energy-meter-logger/read_energy_meter.py --interval 60 > /var/log/energy_meter.log &
    

    Log with potential errors are found in /var/log/energy_meter.log