Jump to content

infinisolar 3k Plus realtime values and logging


Recommended Posts

I have an infini 3kplus and want to monitor some of basic values.. 

 

there is a thread on the Axpert MKS here: 

 http://powerforum.co.za/topic/311-axpert-mks-stats/?p=3016

 

and the spec that we are using comes from an Australian forum and is for their version of the Axpert devices:

 http://forums.aeva.asn.au/forums/pip4048ms-inverter_topic4332.html

 

I got a serial-to-usb converter (using an FTDI one), and a serial extension cable.. downloaded realterm and connected to my infini... (settings are 2400bps, 1start, 8bit, 1stop, no parity)

 

there are a whole list of commands that seem to work on the infini devices too..

some points to note: 

 the start character that is returned is a bracket "(", so you can ignore that

 the last two characters are the 16bit CRC, you can ignore those for now too...

 

So, when I ask for the Serial number, I get: (96131503100198.

Link to post
Share on other sites

The ones most useful to me:

 

QT (20150926100502

QET (00003532

QTPR (060.0 038.0 038.0 ---.-
QCHGS (17.8 54.8 25.0 58.0
QPIGS (235.2 100065 50.0 0006.2 235.8 01442 50.0 006.1 049 445.3 445.3 053.9 ---.- 069 02563 01377 ------ 343.9 ---.- ---.- 060.0 A---101001

QT reports the time

 

QET reports the total energy generated in kWh

 

QTPR reports temperature in different areas, with the highest of these being reported as the QPIGS temperature

 

QCHGS report battery info, field one the useful one:

 - 1 (17.8) - current charging current

 - 2 (54.8) - set float voltage

 - 3 (25.0) - set max charging current

 - 4 (58.0) - set bulk charging voltage

 

QPIGS reports lots of info, with some unused fields filled with - . What I have gathered:

 -  1 (235.2) Mains voltage

 -  2 (100065) Power to / from mains. The high 1 show the direction. 1 is the inverter using mains power.

 -  3 (50.0) Mains frequency

 -  4 (0006.2) Load AC Ampere. Probably the max of real or apparent.

 -  5 (235.8) Load Voltage

 -  6 (01442) Load power (Watt)

 -  7 (50.0) Load frequency

 -  8 (006.1) Load AC current

 -  9 (049) Output load %

 - 10 (445.3) Internal DC bus voltage 1

 - 11 (445.3) Internal DC bus voltage 2

 - 12 (053.9) Battery Voltage

 - 13 (---.-)

 - 14 (069) Its guestimate of % battery capacity

 - 15 (02563) PV Input power (Watt)

 - 16 (01377) Inverter power (Watt) ie power coming from PV and/or battery

 - 17 (------)

 - 18 (343.9) PV Voltage

 - 19 (---.-)

 - 20 (---.-)

 - 21 (060.0) Highest of the 3 temperature sensors

 - 22 (A---101001) Flags. The first letter is about the battery and can be:

     D - discharging

     A - constant current charging

     B - constant voltage charging

     F - float charging

Link to post
Share on other sites

 

on QPIGS:

 -  4 (0006.2) Load AC Ampere. Probably the max of real or apparent.

don't you think this is Grid AC amps? Load current is at "- 8"

 

 

Here are a few lines during different load sheddings:

 

QPIGS (000.0 100033 00.0 0002.6 230.5 00559 50.0 002.4 020 393.8 393.8 050.0 ---.- 057 00120 00526 ------ 377.4 ---.- ---.- 036.0 D---110001

QPIGS (000.0 100046 00.0 0002.8 232.4 00603 49.8 002.5 022 415.8 415.8 050.5 ---.- 058 00645 00557 ------ 406.0 ---.- ---.- 037.0 A---101001

QPIGS (000.0 100131 00.0 0010.4 231.3 02401 49.9 010.3 080 452.9 452.9 054.7 ---.- 100 02572 02270 ------ 297.4 ---.- ---.- 044.0 F---101001

QPIGS (000.0 100034 00.0 0001.6 230.3 00287 50.1 001.2 012 460.1 460.1 054.4 ---.- 069 01845 00253 ------ 416.2 ---.- ---.- 038.0 A---101001

All documentation that I could find on the web says it should be grid current, but the actual values deny that. In the above cases it was impossible to draw current from the grid. Even the example in my previous post had 6.2A, but I'm pretty sure it was not coming from the grid. The two currents are not the same but normally not too far from each other.

 

Interesting that even during load shedding, it thinks it can draw a few watt from the grid. :)

 

About where I got the info, capturing the serial streams and searching the web for those keywords. I have sent a few emails to VoltronicPower, but have not received any answers back. I have emailed MPPSolar (where the Ausies got their info from), they replied, but said I should contact my supplier.

Link to post
Share on other sites

thanks jhay

 

I'm wondering whether that bit of power drawn from the grid is not a side effect of the PV... I don't have PV yet (awaiting roof installation authorisation from the body corporate in our estate), and when I switch off the main supply (i.e. load shedding), my input power is zero

 

QPIGS (000.0 000000 00.0 0002.9 230.9 00597 49.9 002.5 023 401.1 401.1 049.7 ---.- 062 00000 00627 ----- 053.7 ---.- ---.- 024.0 D---110101

 

BTW, what FW versions does your device have?

Link to post
Share on other sites

Interestingly you don't seem to need the CRC at all when sending commands - at least commands that query the status only (i.e. not changing settings)

 

for instance, to get the time I only need to send QT<CR> in stead of the official QT<CRC><CR>, hence no need to compute any CRCs... at least for now.. ;-)

Link to post
Share on other sites

I was wondering, according to Voltronics, the Infini solar Gridtie output can be remotely controller, sometimes called gridtie limiting.

 

I have way more PV than load, but running all the load on the UPS output side will cause the inverter into overload.

Now with my pre-paid meter, pushing anything back to the grid causes the meter to disconnect.

So, I would like to install a power meter just after my pre-paid meter.

Then sending that power info to the Infini controlling my ultimate power usage as close to ZERO as possible.

 

Now I see EXSolar have build such a metering device with interface to work with the Fronius inverters, but they unwilling to expand to other brands.

 

Perhaps somebody here can figure out the software part?

I have a friend that builds GPS, SMS and Ethernet communications interfaces for Elster Power meters, so perhaps you/we can hack something together?

Link to post
Share on other sites

it would be very cool if they would cater for just even an external current measurement input... the inverter already has the voltage... so some more internal software.. and you could theoretically control the grid power feed...

 

that's sort-of what the Solax does... it has a CT which you place just behind the grid meter (house side of course) and then the grid feedback is in parallel with the rest of your house load... 

 

I did consider the solax, but unfortunately it's EPS (Emergency power supply) that supplies the load emergency load when there is no grid, takes 5s to kick in... so any outage still trips your emergency load and then it comes back up in 5 seconds...

Link to post
Share on other sites

Why dont you decomplite the Solar Power app that works with the Infini solar. Then you can see what each field is.

I am still going through the Watchpower app, but here you can see all the commands.

 

public class Command

{

    public Command()

    {

    }

    public static final String QPI = "QPI";

    public static final String QID = "QID";

    public static final String QID2 = "QID2";

    public static final String QSID = "QSID";

    public static final String QVFW = "QVFW";

    public static final String QVFW2 = "QVFW2";

    public static final String QMD = "QMD";

    public static final String QPIRI = "QPIRI";

    public static final String QVFTR = "QVFTR";

    public static final String QPIHF = "QPIHF";

    public static final String QPICF = "QPICF";

    public static final String QSVFW2 = "QSVFW2";

    public static final String QPIGS = "QPIGS";

    public static final String Q3GV = "Q3GV";

    public static final String Q3GC = "Q3GC";

    public static final String Q3GW = "Q3GW";

    public static final String Q3AV = "Q3AV";

    public static final String Q3AC = "Q3AC";

    public static final String Q3AL = "Q3AL";

    public static final String Q3AW = "Q3AW";

    public static final String QMOD = "QMOD";    

    public static final String QPIFS = "QPIFS";

    public static final String QSPIFS = "QSPIFS";

    public static final String QTPIFS = "QTPIFS";

    public static final String QT = "QT";

    public static final String QFLAG = "QFLAG";

    public static final String QFET = "QFET";

    public static final String QEY = "QEY";

    public static final String QEM = "QEM";

    public static final String QED = "QED";

    public static final String QEH = "QEH";

    public static final String QBYV = "QBYV";

    public static final String QBYF = "QBYF";

    public static final String QGOV = "QGOV";

    public static final String QGOF = "QGOF";

    public static final String QOPMP = "QOPMP";

    public static final String QMPPTV = "QMPPTV";

    public static final String QMCHGCR = "QMCHGCR";

    public static final String QMUCHGCR = "QMUCHGCR";

    public static final String QPVIPV = "QPVIPV";

    public static final String QLST = "QLST";

    public static final String QTPR = "QTPR";

    public static final String QDI = "QDI";

    public static final String QDI2 = "QDI2";

    public static final String QSTS = "QSTS";

    public static final String QGLTV = "QGLTV";

    public static final String QADI = "QADI";

    public static final String QVB = "QVB";

    public static final String QCHGC = "QCHGC";

    public static final String QMCC = "QMCC";

    public static final String QII = "QII";

    public static final String QPIBI = "QPIBI";

    public static final String QCHGS = "QCHGS";

    public static final String QPINBI = "QPINBI";

    public static final String QFT = "QFT";

    public static final String QDM = "QDM";

    public static final String T = "T";

    public static final String SON = "SON";

    public static final String SOFF = "SOFF";

    public static final String TN = "T";

    public static final String CT = "CT";

    public static final String BZOFF = "BZOFF";

    public static final String BZON = "BZON";

    public static final String SN = "S";

    public static final String SNRM = "SNRM";

    public static final String CS = "CS";

    public static final String TL = "TL";

    public static final String ST = "ST";

    public static final String EPO = "EPO";

    public static final String DPO = "DPO";

    public static final String CLR = "CLR";

    public static final String FGE = "FGE";

    public static final String FGD = "FGD";

    public static final String CHTH = "CHTH";

    public static final String CHTL = "CHTL";

    public static final String QCHT = "QCHT";

    public static final String POP = "POP";

    public static final String PCP = "PCP";

    public static final String PGR = "PGR";

    public static final String BATLOW = "BATLOW";

    public static final String BATUN = "PSDV";

    public static final String PBT = "PBT";

    public static final String F = "F";

    public static final String PE = "PE";

    public static final String PD = "PD";

    public static final String BATN = "BATN";

    public static final String BATCN = "BATCN";

    public static final String CHGC = "CHGC";

    public static final String DAT = "DAT";

    public static final String PSF = "PSF";

    public static final String PGF = "PGF";

    public static final String PLV = "PLV";

    public static final String PHV = "PHV";

    public static final String GOLF = "GOLF";

    public static final String GOHF = "GOHF";

    public static final String GOLV = "GOLV";

    public static final String GOHV = "GOHV";

    public static final String OPMP = "OPMP";

    public static final String MPPTHV = "MPPTHV";

    public static final String MPPTLV = "MPPTLV";

    public static final String PVIPHV = "PVIPHV";

    public static final String PVIPLV = "PVIPLV";

    public static final String LST = "LST";

    public static final String PF = "PF";

    public static final String GLTHV = "GLTHV";

    public static final String GLTLV = "GLTLV";

    public static final String GORV = "GORV";

    public static final String GORF = "GORF";

    public static final String V = "V";

    public static final String MCHGC = "MCHGC";

    public static final String MNCHGC = "MNCHGC";

    public static final String MCHGV = "MCHGV";

    public static final String PBCV = "PBCV";

    public static final String PBDV = "PBDV";

    public static final String F50 = "F50";

    public static final String F60 = "F60";

    public static final String ID = "ID";

    public static final String REEP = "REEP";

    public static final String VB = "VB";

    public static final String BPVA = "BPVA";

    public static final String BSVA = "BSVA";

    public static final String L1VA = "L1VA";

    public static final String L2VA = "L2VA";

    public static final String L3VA = "L3VA";

    public static final String SL1VA = "SL1VA";

    public static final String SL2VA = "SL2VA";

    public static final String SL3VA = "SL3VA";

    public static final String I1VA = "I1VA";

    public static final String I2VA = "I2VA";

    public static final String I3VA = "I3VA";

    public static final String P1VA = "P1VA";

    public static final String P2VA = "P2VA";

    public static final String P3VA = "P3VA";

    public static final String AUTO = "AUTO";

    public static final String DSPAR = "DSPAR";

    public static final String MCUAR = "MCUAR";

    public static final String FT = "FT";

    public static final String DM = "DM";

    public static final String PVN = "PVN";

    public static final String PPS = "PPS";

    public static final String QPPS = "QPPS";

    public static final String SOPF = "SOPF";

    public static final String QOPF = "QOPF";

    public static final String PDG = "PDG";

    public static final String QPDG = "QPDG";

    public static final String PPD = "PPD";

    public static final String QPPD = "QPPD";

    public static final String PFL = "PFL";

    public static final String QPFL = "QPFL";

    public static final String PCVV = "PCVV";

    public static final String PBFT = "PBFT";

    public static final String QPGSN = "QPGS";

    public static final String POPM = "POPM";

    public static final String PPCP = "PPCP";

    public static final String MUCHGCR = "MUCHGC";

    public static final String PPVOKC = "PPVOKC";

    public static final String PSPB = "PSPB";

    public static final String QPGSN0 = "QPGS0";

}

 

This is an awesome list.

 

The problem is figuring out what each of these do/mean :(

Link to post
Share on other sites

Who is Pete? ;-)

 

Edmund what unit do you have?  

 

My preference is still to have  a little device that will read all the info and post it to the cloud.. then you can keep an eye on it from anywhere and use what ever device pleases you... of course that would mean that you need internet access at your home.. but I guess we can (almost) take that for granted...

Link to post
Share on other sites

I used a serial port monitor and connected to SolarPower through the serial port and logged the data.

 

interesting is that the command does not have a checksum/CRC at all... only the response has...

 

I tried to post the complete log... always good to have an original reference.  :D  but I got the "Post too long" error...

 

Later I'll isolate them into individual commands..

 

 

 
Port opened by process "javaw.exe" (PID: 2284)
 
 
Request: 10/4/2015 2:30:14 PM.27064 (+0.0020 seconds)
 51 50 49 0D                                       QPI.            
 
Answer: 10/4/2015 2:30:14 PM.33264 (+0.0596 seconds)
 28 50 49 31 36 9C AF 0D                           (PI16
Link to post
Share on other sites
  • 6 months later...

Hi!

I know this thread is very old - but i found nothing else where the protocol PI16 was analyzed in depth.

I wrote a php script to read our values from my Inini 3kwPLUS inverter vi serial and delivers it to 123solar (a open source logger). This includes a uploader to pvoutput.org as well.

Due to the missing protocol description, i still need to buy a modbus card to control the feed-in power.

Or did anyone succeed in finding the command for this?

Link to post
Share on other sites
1 hour ago, riogrande75 said:

Due to the missing protocol description, i still need to buy a modbus card to control the feed-in power.

Or did anyone succeed in finding the command for this?

Decompile the solarpower java app to find all the commands you need.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...