Project Idea: Realtime Solar Inverter Monitoring Display
Yeah, I know - this has probably been done 3000 times before but I always find the best way to learn how to do something is to figure it out yourself, rather than just copying someone else's work.
We have a 10kW solar system using two 5kW inverters. Each inverter has a WiFi dongle running a web server. The web server can be accessed internally (on the WiFi network) via a web browser or externally via the company's web portal or using a phone application.
What I've been wanting to do for a while is have a simple display in the house where you could quickly see how much power the panels are generating, rather than having to use a computer or looking it up via the phone.
Years ago, when I was really into Arduino, then I was really into word working, then I was really into retro computers, I made a small Arduino-based temperature device that uploaded temperature details to my website, so I've got some idea how to do it.
I think the Arduino might not have enough memory - the libraries required for WiFi and HTTP parsing would probably take most of the space - so I might need to consider something else. I do have some older Raspberry PIs and a Pine A64. I'd prefer to use Arduino for its simplicity ... the Pine A64 is massive overkill I think!
I used Wireshark to capture the traffic between the web browser and the inverter WiFi dongle so I can see what the browser sends and the data format it receives in return.
It looks like if I do a HTTP [GET] request (for inverter #1) to:
192.168.6.10/status/status.php
Then I will get a HTTP [200 OK] in response with a plain text string like below - I then just need to parse it and display the data ...
1,1065727,48043,1414,56,3922,614,1953,629,65535,65535,0,0,65535,65535,0,0,65535,65535,0,0,65535,65535,3561,5001,2409,1467,65535,65535,65535,65535,3909,348,83659,2
Field 2 = total generated (10657.27kWh)
Field 3 = total running time (4804.3h)
Field 4 = today generated (14.14kWh)
Field 5 = today running time (5.6h)
Field 6 = PV1 voltage (392.2V)
Field 7 = PV1 current (6.14A)
Field 8 = PV2 voltage (195.3V)
Field 9 = PV2 current (6.29A)
Field 24 = grid-connected power (3561W) --- this is essentially what I'm after
Field 25 = grid-connected frequency (50.01Hz)
Field 26 = Line 1 voltage (240.9V)
Field 27 = Line 1 current (14.67A)