ABB (ex Power One) Aurora Web Inverter Monitor (WIM): project introduction – 1
Hi all, I put solar panels over my roof some years agò, the company that installed them had also guaranteed me a production monitoring and analysis system, but they forgot to tell me that it would be free only for the first year, and I would have had to pay to access my data that are stored on a site, the cost is not so enough (70€ for year) but I felt cheated.
So my solution is to create an autonomous centraline with an esp8266 that grab and store data from inverter and show me chart and various data of production and send me an email if there are some problems.
It is a quite user-friendly browser based monitoring solution, It’s allows to track energy produced on a solar power plant in a simple and intuitive fashion. It’s can track key energy metrics as well as the energy produced throughout the lifetime of their solar power plant. 😉
I created a simple PCB milled and tested for some month of activity without problem.
Inverter Aurora ABB (ex PowerOne now Fimer) supported
Here a partial list of Aurora PV series supported
- 3-phase interface (3G74)
- PVI-CENTRAL-50 module
- PVI-12.0-I-OUTD (output 480 VAC)
- PVI-10.0-I-OUTD (output 480 VAC)
- PVI-12.0-I-OUTD (output 208 VAC)
- PVI-10.0-I-OUTD (output 208 VAC)
- PVI-12.0-I-OUTD (output 380 VAC)
- PVI-10.0-I-OUTD (output 380 VAC)
- PVI-12.0-I-OUTD (output 600 VAC)
- PVI-10.0-I-OUTD (output 600 VAC)”
- PVI-10.0-I-OUTD (output 480 VAC current limit 12 A)
- PVI-CENTRAL-350 Liquid Cooled (control board)
- PVI-CENTRAL-350 Liquid Cooled (display board)
- PVI-CENTRAL-350 Liquid Cooled (AC gathering)
My inverter is in bold.
My idea is to use an esp8266 (Wemos D1) with enough power to manage an http server, a rest server and ftp server, naturally with an IC can interface my inverter (ABB Autora – ex PowerOne), all data taken from the inverter will be stored in an SD.
Phisical layers as you can see in the image are very simple, I add some additional logic layer.
First I create a library to manage a full set of informations of the inverter from the interface RS-485 available, than I create a series of thread (simulated) with specified delay to get data and store they in an SD in JSON format, than I create a full set of REST api to retrieve this set of information, a WebSocket server for realtime data, and a responsive web app to show all this data finally a configurable notification system via mail.
Monitor specs and device
My selected microcontroller is an WeMos D1 mini, I choice this esp8266 device because It’s very low cost and have sufficient specs to do all features I have in my mind. Here a mini guide on how to configure your IDE “WeMos D1 mini (esp8266), pinout, specs and IDE configuration“.
I think that an interesting thing is that It has more Hardware Serial, so you can use Serial for communication with Inverter and Serial1 D4 (only Transmission) to debug. You can check how to connect debug USBtoTTL device on “WeMos D1 mini (esp8266), debug on secondary UART“.
We are going to put WebServer data in SPIFFS, the size needed is less than 2Mb. SPIFFS is explained in this article “WeMos D1 mini (esp8266), integrated SPIFFS Filesystem“.
To update WebServer pages I use an integrated FTP server “FTP server on esp8266 and esp32“.
To store logging data we must add an SD card, It’s not sure use SPIFFS (exist a 16Mb version of esp8266) because have a write cycle limitation. You can connect directly via an SD adapter, but I prefer a module to better fit in my case. You can find information on how to connect SD card in this article “How to use SD card with esp8266, esp32 and Arduino“.
Aurora ABB (ex PowerOne) communicate via RS-485 connection, in this article “How to interface Arduino, esp8266 or esp32 to RS-485“, I explain how to use MAX485 and MAX3485 to do it, one of the most important developments will be the communication protocol , for this I have created a library, which you can find here “ABB Aurora PV inverter library for Arduino, esp8266 and esp32“, to interface on this interface via Arduino, esp8266 or esp32 device.
I use a 18650 rechargeable battery as UPS to grant server active when It’s nigth and there aren’t energy production, I use the schema from this article “Emergency power bank homemade“.
To logging data It’s also important get current date and time, so I choice to try to get data from NPT server, if It isn’t possible I get data from internal clock of inverter, I explain NTP with DST on this article “Network Time Protocol (NTP), Timezone and Daylight saving time (DST) with esp8266, esp32 or Arduino“.
To connect device I use and fix WIFIManager thar start esp8266 as Access Point and give an interface to set connection parameter, for this argument you can refer to this article “How to manage dynamic WIFI configuration on esp8266 or esp32“.
- ABB Aurora Web Inverter Monitor (WIM): project introduction
- ABB Aurora Web Inverter Monitor (WIM): wiring Arduino to RS-485
- ABB Aurora Web Inverter Monitor (WIM): storage devices
- ABB Aurora Web Inverter Monitor (WIM): debug and notification
- ABB Aurora Web Inverter Monitor (WIM): set time and UPS
- ABB Aurora Web Inverter Monitor (WIM): WIFI configuration and REST Server
- ABB Aurora Web Inverter Monitor (WIM): WebSocket and Web Server
- ABB Aurora Web Inverter Monitor (WIM): Wiring and PCB soldering
- ABB Aurora Web Inverter Monitor (WIM): upload the sketch and front end
- ABB Aurora web inverter Monitor (WIM): 3D printed case to complete project
- ABB Aurora web inverter monitor (WIM): repair E013 error