Log Modbus Energy Meter data to InfluxDB on a Raspberry Pi and publish values via MQTT
  • Python 98.1%
  • Shell 1.9%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
FloKra 200ce2e4fe ## v0.3 - 2023-10-20
* add missing definition of print_errors variable
2023-10-20 12:16:50 +02:00
.gitignore Initial commit 2017-10-27 09:40:29 +02:00
CHANGELOG.md ## v0.3 - 2023-10-20 2023-10-20 12:16:50 +02:00
LICENSE Initial commit 2017-10-27 09:40:29 +02:00
meters.yml initial commit of extended version, see CHANGELOG.md for details 2020-10-01 10:22:57 +02:00
metertype_SDM120.yml initial commit of extended version, see CHANGELOG.md for details 2020-10-01 10:22:57 +02:00
metertype_SDM630.yml initial commit of extended version, see CHANGELOG.md for details 2020-10-01 10:22:57 +02:00
modbuslog.ini initial commit of extended version, see CHANGELOG.md for details 2020-10-01 10:22:57 +02:00
modbuslog.py ## v0.3 - 2023-10-20 2023-10-20 12:16:50 +02:00
modbuslog.service initial commit of extended version, see CHANGELOG.md for details 2020-10-01 10:22:57 +02:00
readings_names.yml initial commit of extended version, see CHANGELOG.md for details 2020-10-01 10:22:57 +02:00
README.md initial commit of extended version, see CHANGELOG.md for details 2020-10-01 10:22:57 +02:00
sdm_setid.py initial commit of extended version, see CHANGELOG.md for details 2020-10-01 10:22:57 +02:00
setup.py initial commit of extended version, see CHANGELOG.md for details 2020-10-01 10:22:57 +02:00
systemctl_service_install.sh initial commit of extended version, see CHANGELOG.md for details 2020-10-01 10:22:57 +02:00
systemctl_service_uninstall.sh initial commit of extended version, see CHANGELOG.md for details 2020-10-01 10:22:57 +02:00
write_register.py Fixes typo and closes #1 2017-12-04 10:27:53 +01:00

Modbus Energy Meter Logger and MQTT gateway

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

Based on original project on Github

Added features

  • base configuration using ini file
  • MQTT publishing to use the readings in other systems
  • split data aquiring completely in momentary (power) and energy readings with different intervals
  • calculate daily total energy usage and log to file system as a backup
  • higher sample rate for momentary power reading, write to database on power changes and/or interval
  • separate interval for aquiring/writing energy readings
  • split InfluxDB logging in momentary (power) and energy readings (seperate databases if desired to enable usage of different retention policies and continuous queries)
  • enhanced meters configuration to support that changes, using yaml file as in original project
  • many more improvements

Verified to work on a Raspberry Pi 4 with Digitus USB-RS485 Interface, reading values from 3 Eastron SDM120 instruments. By changing the meters.yml file and making a corresponding metertype_[model].yml file it should be possible to use other modbus enabled models.

Requirements

Hardware

  • Raspberry Pi 2/3/4
  • RS485 USB interface or RS485 Shield for RPi
  • Modbus based Energy Meter(s), e.g WEBIQ 131D / Eastron SDM120 or WEBIQ 343L / Eastron SMD630

Software

Prerequisite

The original project has been documented at Hackster. Please follow the instructions there for more detailed information. Also check original project on Github.