Skip to content
Raspberry PI Energi Meter Monitor (RPI-EEM). This solution enables you to connect you Raspberry pi to the S0 port of a power meter or an light sensor on the blinking LED to monitor the power use at some site.
Branch: master
Clone or download
Pull request Compare This branch is 63 commits ahead of Anton04:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
src
.DS_Store
Dockerfile
LICENSE
README.md
requirements.txt

README.md

RPI-EEM

Raspberry PI Energi Meter Monitor (RPI-EEM). This solution enables you to connect you Raspberry pi to the S0 port of a power meter or an light sensor on the blinking LED to monitor the power use at some site.

Defaults to pin 23 on the RPI. Pulse needs to drive the pin low in the current implementation.

Example 1: pin23 o --- >|--- o GND

     IR-fototransistor 5 mm (T13/4), SFH 300-3/4, Osram Semiconductors

Example 2:

     pin23 o-----o +
                      | 
RPI                   S0 pins power meter
                      |
     Gnd   o-----o - 

Function: The design approach has been to be able to use only one single phototransistor to connect to the energy meter. The script is written to be able to handle a lot of noise and bounces that occurs during the pulses. A pulse can often be detected as 250 level changes on the Rasperry Pi port all occurring during the 1-80ms that the pulse occurs (the pulse length depends on the brand of the meter). An algoritm stores the time of all level changed. When there has been at least a pulse length of silence it checks the length between the first and the last level change in the buffer. If this is close to the expected pulse length it increased the energy counter and the buffer is cleared. It should work regardless of if the phototransistor generates an negative or positive pulse but has been tested with negative pulses only.

Config:
MQTT - mqtt server adress (default: localhost)
MQTT_USER - Username for mqtt broaker (optional)
MQTT_PASS - Password for mqtt broaker
MQTT_PREFIX - The mqtt topic that data will be sent to (default: rpi-emm/meterevent and rpi-emm/ioevent)
MQTT_CLIENT - Client id mqtt.
EMM_GPIO_PIN - Raspberry pi pin to connect to meter. (default: 23)
EMM_PULSE_FACTOR - Number of Wh each pulse represents (defaults to 10). Usually printed on power meter
EMM_PULSE_LEN - The length of the pulse from the LED in seconds. If you don't specify this an the value will be automatically detected.
EMM_MAX_PULSE_LEN_DEV - The maximun deviation that the pulse can have before being filtered away (in seconds, defaults to 0.005).
EMM_DEBUG - For a lot of extra printouts in docker log CONTAINER-ID
You can’t perform that action at this time.