Fronius Symo & WS2812

Fronius Symo & WS2812

I have 36 solar panels on my roof and a Fronius Symo 10.0-3-M inverter for a bit more than a year and I really enjoy watching the statistics. Since the system also has a smart meter, I can see production but also power consumption. In order to make everyone at home aware of our energy production and consumption, I decided to build this:

Led bar graph for Fronius Symo

This is a led bar graph that displays our current power to the grid data. In case we produce more than we consume, the led will get green. If we buy energy from the grid, the leds turn red. The more leds are on, the more energy we import (or export). The data is refreshed every 3 seconds so you can watch the effect of turning devices on and off (e.g. oven, hair dryer, coffee machine, etc) pretty clearly. The game is to try to get as much green as possible and avoid red.

I 3d-printed the stand in PLA and the led covers in transparent PETG. I used Onshape to design everything. I had still a bunch of WS2812 from another project so I reused them:

WS2812

I ordered a few Wemos MINI D1 ESP32 from ebay.com. The ESP32 platform is great because you get WiFi and some neat processing power in a cheap and small device. Perfect for that project. Even though the GPIO are 3.3V, I didn’t encounter any problem with the WS2812 (powered from a VCC 5V pin). I also did not bother putting a capacitor to smooth voltage peaks since I only have 10 leds and the wires are short enough.

Wemos MINI D1 ESP32

I designed the stand so that I can directly use the micro USB connector to power the system:

Powered via micro USB

I wrote the code using VSCode and PlatformIO, my go-to development stack for small projects of this kind. My solar inverter has a JSON API. I already used that API for another project so it was pretty easy to get the required data. The ESP32 connect via WiFi to my IoT network and then to the inverter over HTTP. The data are polled every 3 seconds. I cannot get data much faster than this, probably due to HTTP download and JSON parsing times. I did not investigate this further since 3 seconds is good enough. I used the great FastLED to drive the WS2812. I added a few visual effects to make the thing look a bit nicer.

So far all the family really enjoy the device. I made a second one for my parents who have the same inverter. In case you want more information, feel free to contact me. I can provide STL files and code if needed.

Comments are closed.