A project to get better data analysis from the WVC R3 Life edition inverters. (Currently tested on the WVC700 R3 Life Edition)
Current understandsing
The Wifi chip is a HF-LPT270 and fairly well documented online http://www.hi-flying.com/hf-lpt270 and here https://manuals.plus/m/5176309d280b9892c2bce6f24685fa4b934f7f79a321716bc0bc6c0f4dfe03bf_optim.pdf
The LIFE edition seems to have no connection from the UART RX to the J4 header on the board- i'm sure the UART takes an input in as you can power down and change the power limits remotely via the cloud intelligence app but i didn't look to hard as i only wanted to log the data.
It first makes a connection to the WIFI and It's server (alicloud) on power up
+ILOPCONNECT=WIFI_CONNECT
+ILOPCONNECT=SERVER_CONNECT
It Then sends a cycled serial connection on a permentent loop - the order is set but is really dependent on where you are in the sequence when you start the python script.
The Main data is sent
AT+SENDICA=property,PV_Volt,50.8,PV_Current,1.09,PV_Power,55.4,AC_Volt,243.2,AC_Current,0.20,Out_Power,51.0,Temperature,30.0,Power_adjustment,100,Energy,94.89
+ok
And then this additional data
AT+SENDICA=property,PowerSwitch,1,Plant,0.16,Emission,0.09,Time,30,P_adj,66,TEMP_SET,67
+ok
or this - note the extra Daily value
AT+SENDICA=property,PowerSwitch,1,Daily,0.10,Plant,0.16,Emission,0.09,Time,30,P_adj,66,TEMP_SET,67
+ok
For some reason, which I haven't got my head round, sometimes it includes the Daily energy before the Plant (Trees) in the second send - it might only send it when this is greater than 0.01 but its a strange one i've written round to be sure i don't throw an error and only upload the daily if its there
Initialy I tapped the HF-LPT270 UART by tracing the output pins to the JP4 header on the inverter main board and inserted jumper cables to an open logger and collected the data to a text file on a sdcard to see what I have.
The first versions of the python script read this data from a copy of the text file and then formats the data to be processesed before uploading to ThinkSpeak.
I added a 2 min delay as this simulated how often i would normally send to make sure the free thinkspeak update limits are met
Implementing The Pi
Using a Pi Zero (Wifi edition) (about £15) I've taken the tap for the open logger and transfered the + to the 5v in (Pin 4), Ground to the Pi Ground (Pin 6) and UART TX to the Pi's UART RX (GPIO 15 pin 10). Even though it's only 3.3 volts coming from the UART of the inverter this is enough to power the PiZero and handle the load.
I've not connected anything from the TX pin of the PI back to the HF-LPT270 UART as i've no need to write back at this point and am only interested in collecting data for analysis
To Use
Register with a free ThingSpeak account - a free account is enough requests for between 2 and 4 minutes upload schedule. I'll be setting mine to 5 minutes
Make a note of your API key. You will need to set this in your copy of the python script
Set up your fields to match the image below
Congigure your graphs - see my example. THis is up to you really.
For autostarting i'm using the following in my CRONTAB (crontab -e to edit) @reboot nohup python solar/solar_rx.py &
I've currently set my upload time to 30 seconds - This is using about 1200 messages a day - the free account allows for 8219 messages a day. No doubt i'll use more in the longer days but i don't expect to go over the free limit.
You can view my public channel to see the data being generated by 2 x 230w Craig Solar Panels on my shed roof and a WVC700 Grid tie invter