Skip to content
master
Switch branches/tags
Code

MBusMqttLogger

This project is using an arduino (really, an ESP8266) to read and log data from two different meters:

Electrical meter: This one is measuring electrical energy consumed by my heat pump system. The meter is a simple thing that has an open collector output, giving one pulse for every Wh that has been consumed. A class has been created, PulsePort, to facilitate IRQ-based reading, and to keep track of the current value.

Heat Pump meter: This one is a Zenner C5 meter, providing data over an M-Bus interface (Meter Bus). A minimal implementation of the M-bus protocol has been implemented in the class MBus.

Featuring:

  • Boots as AP/web server for configuration (if no config, or if a prog-button is pressed during start-up)
  • Uses NTP library to keep track of time
  • Continously stores values in EEPROM, in case of power loss or other failure (can be reset from config)
  • Reports data to an MQTT broker (using json for the data)
  • Can read energy as pulses using PulsePort class
  • Can read energy from M-Bus using the MBus class

No further processing is done here. My OpenHAB is listening on the data being reported and do further calculations, storage and presentation of the data

About

An M-bus master that poll a meter and logs data to an MQTT server

Resources

Releases

No releases published

Packages

No packages published

Languages