About Project :
This is a project I have done during my 3 month long engineering internship at Xcel Energy, Minneapolis. The project was developed as an internal tool to test multiple Gen5 Riva Itron smart energy meters at Xcel Energy's Chestnut center.
Implementation :
I mainly programmed in Python for this project using MQTT to fetch data from smart meters every 5 seconds and dump into InfluxDB times series databse. Then I created a flux query - special query language for times series to format the data in a way that makes it easy for visualization. Then I connected Grafana with influx DB and was able to create a real time visualization.
Project architecture is shown below:
Steps :
First I connected my machine/PC with a single Itron smart energy meter over same WiFi. Then I cloned a repo at xcel_itron2mqtt which contains python code to fetch data from smart meter and publish to MQTT broker. I modified the code a bit to fit my use case - to be able to fetch multiple meters at once. I gave each meter unique ID so that separate visuilization is possible for each. Finally I streamlined environment setup and deployment using docker so that it could be easily run on any linux based system in a matter of few commands.
Result :
Here's my first dashboard from Grafana that shows data from a single smart meter. The spike shows energy usage surge which happend when we connected a load to check if the visualization is actually working.
Video Demo :
I will soon add the video demo, but here's a small demo I creatd using smart energy meter simulator. The meter simulator helps to test and experiment with APIs before working with real smart meters.