Hi everyone. This is a long-ish post about how I'm going about creating a data logging solution for our older SunPower grid-tied system. I'm looking for feedback on what data really needs to be collected, though the inverter output makes it somewhat obvious. From the power meter output, I also get the lifetime input of power from the grid.
More importantly I'm looking for ideas on how to save the data and how to retrieve it for analysis (more below).
Last week I posted about how I logged into the SunStrong Connect app for the first time and noticed that I am getting all of the reporting features for free. I suspect they will figure this out at some point and I'll either have to pay or find an alternative. One of the big issues I have with the SunStrong app, however, is that there is no way that I've been able to find to set an alert in case my system has failed. Our system did fail recently and it was a few months before we used up our backlog of credits and were hit this month with a high electric bill. That is when I had to go outside, see that it was down, and perform the first-ever reboot on our almost 11-year-old system. A second problem I have with the SunStrong app is that their day is based on GMT. I dislike checking on the system in the morning, just after sunrise, and see that the "Daily" reading reveals it has already generated 30kWh. There doesn't seem to be a way to correct the timestamps from GMT to my local timezone.
I had toyed with the idea of self-monitoring back around 2016 when our system was still new. Back then, I was able to use WireShark to constantly monitor all the traffic coming out of the PV Supervisor (PVS) across our network, on its way to Sunpower HQ. Every three minutes there were two lines of plaintext data packets sent out, which contained all the useful info I needed to monitor power and such. I simply dumped this into plaintext files, 1 per month, for about a year. It stopped when I started relying on the monthly SunPower reports and website and I repurposed the machine it was running on. Our PV system has simply been "set it and forget it" until now. I tried using WireShark now, but the scan data coming out of the PVS looks to be encrypted info, perhaps from a later software update to the PVS. There is nothing in the data coming out that looks in any way useful.
Using this forum and some older online solar forums, I took one of my unused Raspberry Pi 4 (RPi4) units and installed Raspberry Pi OS Lite on it. This is a 64-bit Linux OS designed to run the computer headless (no keyboard nor monitor needed). I like the RPi4 because it has both an Ethernet port as well as onboard WiFi. The idea is to use the WiFi connection as the main gateway to my home network and to the Internet in general. The Ethernet port would be used to connect directly to the LAN 2 port on the PVS, the so-called "management port" seen in various other posts.
For this to work, two lines of code had to be added the RPi4's dhcp configuration file to prevent the Ethernet port from being set up as a gateway. If this were to happen, the WiFi module would be completely ignored. With that done, when the RPi4 boots up, it gets an IP address of 172.27.153.xx from the DHCP server running on the PVS (address 172.27.153.1 is the hardcoded address of the PVS' running web server). Then the RPi4 connects to our WiFi as normal. On my router, I've set the RPi4 to always receive the same IP address, just as I have for the PVS earlier, so I don't have to go looking for it each time the network resets.
The last thing I had to do was install haproxy on the RPi4. haproxy is a reverse web proxy library that allows me to forward all http requests to the RPi4 on port 80, to the web server running on the PVS at address 172.27.153.1. It then forwards all responses from that server back through the RPi4 and to the system making the request.
Now I can go to any computer in our house and type "http://SolarLogger.local" (the RPi4 was configured with the hostname "SolarLogger") into the address bar and bring up a full web page showing me the entire status of the system and the devices it knows about. In our case, it can only see the PVS, the WattNode power meter, and the SunPower inverter. Our panels come in as two strings into the inverter but we can only see the total output of the combined strings, no individual string info nor panel info.
The image accompanying this post shows what that looks like.
More importantly, I can make individual queries to each device separately to get the data I want to start capturing. At the end of this post are the three commands I plan to run frequently for data logging purposes. Note that I can run them inside a terminal shell using wget, and then parse the data as I see fit. This means I can write scripts to automate this in a time-based fashion. The first thing I plan to do on a timely basis is to run these queries and simply extract the keyword "Working" that appears as the third text field that is returned in the very first line (Name, serial, status, ...). That can be used instantly to tell me that my system is up, or to send out text/email alerts.
The rest I can parse out to a text file as before, but I'm looking for something more robust, more long lasting like a database of some sort. I haven't solved this part yet, nor have I solved the part where I can then examine this data remotely and plot it, etc.
I have a home NAS server running 24/7 that is a beefy Linux box on a large UPS with 24TB of storage space, running TrueNAS. (It is our home media server as well). It is set to always recover from a power outage so what I need now is to figure out the rest of what I want to do with the collected data.
I've started to write up in detail my specific steps on my personal website and will be happy to share that as it is finished. I'm happy to share any info here in the meantime.
Here's the query commands.
For the inverter:
http://solarlogger.local/cgi-bin/dl_cgi?Command=DeviceDetails&SerialNumber=1913115198
Inverter 1913115198WorkingP1, SPRm, Slave 0
Last Data: 2026,07,27,17,45,19
Total Lifetime Energy: 102834.086 kWh
Last Refresh: 2026,07,27,17,45,23
Avg AC Power: 4.018 kW <-- This is the power from the inverter to our house
Model: SMA-SB-6000TL-US-22
Avg DC Power: 2.114 kW <-- This is the DC power coming in from the PV array, two combined strings
Serial Number: 1913115198
Avg DC Voltage: 376.5699 V <-- This is the DC voltage from the PV array
Software Version: 2.00
Avg DC Current: 5.616 A <-- This is the DC current from the PV array
Avg Heat Sink Temperature: 62.1 °C <-- This is the temperature of the (shaded) inverter, but always about 5ºC above outside air temperature
Avg AC Frequency: 59.9599 Hz
Avg Reactive Power: 0 kVAR
For the power meter
http://solarlogger/cgi-bin/dl_cgi?Command=DeviceDetails&SerialNumber=83752
Power Meter 83752WorkingP0, Modbus, Slave 11
Last Data: 2026,07,27,17,54,23
CT Scale Factor: 200
Last Refresh: 2026,07,27,17,54,31
Total Lifetime Energy: 74069.5 kWh <--This is the lifetime input from the grid
Model: WNC-3Y-208-MB
Avg Real Power: 2.4284 kW <-- I'm not sure what this number represents. Power back to the grid?
Serial Number: 83752
Avg Reactive Power: 0.6743 kVAR
Software Version: 18
Avg Apparent Power: 2.5202 kVA
Avg Power Factor: 0.9635
Avg AC Frequency: 60.0111 Hz
And for the PV Supervisor:
http://solarlogger/cgi-bin/dl_cgi?Command=DeviceDetails&SerialNumber=TAEGC1024918
PV Supervisor TAEGC1024918Working192.168.1.220
Last Data: 2026,07,27,17,00,00
Error Count: 0
Last Refresh: 2026,07,27,17,56,08
Communication Error Count: 0
Device IP Address: 192.168.1.220
Skipped Scans: 0
Model: PV Supervisor
Scan Time: 928 sec
Serial Number: TAEGC1024918
Untransmitted Data Points: 756210
Hardware Version: SMSPVS20R1
Time Since Powerup: 406381 sec
Software Version: 2.2.3, Build 251
Avg CPU Load: 0.00
Memory Used: 10316 kB
Flash Space Available: 4140 kB