A few years ago solar panels were installed in my house; in addition to the panels themselves it was added an inverter, placed in the server room (that actually looks more like a “server cupboard”); immediately I started thinking how useful would it had been to remotely check the status of the solar panels and see how much they were producing; the original software that came with the inverter however, did not allow that, and it run only on Windows.
Not wanting to keep a PC powered 24/7, given the energy consumption and the costs of a dedicated Windows licence, I tried a few alternative options.
Initially I tried to read the LED on the energy counter (that blinks once every kw/h consumed or produced), however the photodiode was subject to a lot of noise and it would have been really hard to place an Arduino on the outside of the house in the box that houses the counter.
I experimented a bit with current clamps, the result was good but I wanted to try to get the data directly from the inverter to have a confirmation of the accuracy of the clamps and to get the additional data about the status of the inverter.
So I tried to reverse engineer the inverter protocol, this way the Arduino, instead of the software provided by the manufacturer, communicates directly with the inverter.
This way, an evening, with a laptop and the original software, I managed to reverse engineer the protocol and write a first Pyhton script to read the data directly from the RS232 port.
This project measures the energy produced by the solar panels, and the house power consumption. It is based on an Arduino Yun that reads two current clamps and the inverter data through its RS232 port (using a USB-RS232 adapter) and stores the data on a microSD card.
A web server on the Arduino Yun allows the data to be accessed remotely with a browser. The web interface presents the data on a chart, allowing the user to select the day to show and eventually delete the data history.
The system is connected with a speaker, that warns if the house is consuming too much; allowing the user to reduce the load before the power goes out.
The system can be accessed remotely with a VPN connection.
In case the differential switch falls (which happens sometimes, mostly due to storms), the Arduino YUN sends an email warning that the system is no longer connected to the grid.
This project is integrated with my video-intercom (which is a lot more than a regular video-intercom), in fact, by sending a message to the house Telegram account it is possible to get data about the solar panels and the house power consumption.
For more informations you can contact me using this form.