« Back to home

Integrating solar inverter to PVOutput.org

Coin for scale. Sorry, no bananas Being based in one of the suniest cities in the world, I've always thought solar power would be an awesome way to cut my power bills down. Around a year ago I did the sums and decided it was time to make the jump to renewable energy. I looked around, found a reasonably priced inverter and panel setup and a few weeks later I had free electricity flowing through my house.

One of the things I didn't pay enough attention to when choosing the inverter was how the monitoring worked. The inverter I purchased is the Bosch BPT-S 4.6 and I assumed it would integrate easily with PVOutput.org however I was gravely mistaken. There was no native ability to push my generation data to anywhere other than the proprietary Bosch portal. Fortunately after reading the documentation I discovered that the inverter ran a small webserver that hosted several status pages for the inverter. Looking at the client side JS I was able to find an API that I could call to retrieve the current generation data.


This gives me the generation data im looking for (in this case it was late in the afternoon and there was no generation happening).


Conveniently I had also just received a new ESP8266 and was looking for a project to use it on. The premise is simple:

  1. Connect to the WiFi
  2. Hit the Endpoint and get the usage data
  3. Upload the data to PVOutput.org
  4. Wait & Repeat.

The parts list:

  • ESP8266 ESP-12E Serial Wi-Fi Development Board Module dx.com

  • I2C Blue Color OLED Display Module dx.com

I ended up using ESP8266 Arduino so that I could use my existing Arduino dev environment to speed up my dev time. It makes developing on the ESP8266 incredibly easy and has a more mature community and knowledge base to leverage in projects. With the device and environment ready to go I threw a sketch together to solve my PVOutput woes.

This project was the first one where I wanted to deliver the most polished end result possible so I decided to include an OLED screen and 3D printed case. The designs for the case can be found in the Thingiverse Case Designs.

Wiring Diagram Wiring diagram

Finished Product

Finished Product

Thingiverse Case Designs

ESP8266 Arduino

GitHub repo

Bosch BPT-S 4.6 inverter details