This project reads the SML-interface of the EFR-SGM-C8 energy meter via an ESP32 and then provides a local web server to show the extracted information.
This is useful if your meter does not have the "smart" module installed, which net providers like to omit, because... money.
You can then use the web server to conveniently check you energy usage and adjust the output of your solar storage to not waste any energy or give it away, helping you save even more money.
Additionally, the API that the website uses to keep itself updated is also available for you to use in other projects.
Planned: In the near future I would also like to add some logging capabilities to the project via an SD card module. This would allow us to display historic data on the website (last 24h/7d/30d/...) which the meter itself collects but does not provide via the IR-interface. Also the data can be used to generate some graphs.
The project is designed around an ESP32 Mini development board and an TCRT5000 IR sensor.
Additionally magnets are used to mount the project on the energy-meter.
The links below are there to show visually you what I mean, not buying recommendations.
| Product | Link |
|---|---|
| ESP32 Mini dev board | https://www.az-delivery.de/en/products/esp32-d1-mini-nodemcu-wifi-modul-esp-32-bluetooth-internet-entwicklungsboard-mit-usb-c-anschluss-kompatibel-mit-arduino-und-kompatibel-mit-wemos-d1-mini?_pos=3&_sid=d7de684df&_ss=r |
| TCRT5000 IR sensor | https://www.az-delivery.de/en/products/linienfolger-modul-mit-tcrt5000-und-analog-ausgang?_pos=1&_sid=747c4ebcb&_ss=r |
| Round magnets with ~20 mm diameter | no link needed, very generic |
Yes, it would also be possible to entirely skip the IR sensor and use only a photo-resistor.
But I like that the sensor board comes with a potentiometer to easily adjust the sensitivity (which is very important!!!) and that it has an easily accessible mounting point.
Flashing the ESP with the program should be pretty straightforward:
- Clone the repository to your computer
- Now you need to configure the project. In an ESP-IDF terminal type
idf.py menuconfig, do your basic setup and go to the menuYOUR CONFIGURATIONand enter your information there (WiFi config, timezone). To select the correct time zone you can refer to the column on the right of this list. Make sure that your entries only contain the information that their name indicates with no additional spaces or other characters before and after your entry, so the ESP can find your WiFi and understand your timezone. - Build and flash the project with ESP-IDF.
The hardware setup is also very simple.
You only need to supply the IR sensor with 3.3V and GND and you need to connect pin 16 of the ESP with the digital out pin of the sensor.
Now you only need to assemble the 3D-print and mount it on your energy-meter (see below).
Currently the only model available is the sensor mount itself. It is already oriented in the intended printing position and does require some supports for the top hook.
Soon I will add a cover for the mount which also includes an SD card reader spot.
Excuse the weird/lack-of formatting in all of the HTML/CSS/JS files. As they are copied 1-to-1 to the ESP's flash I am trying to save a bit of file size by reducing the readability-formatting to a minimum. If you want, you can let your IDE format the files a bit more readably and then when done editing reduce to tab-size down to one or two spaces again.