After googling a bit I found this post, which is the inverter's rosetta stone
http://forums.aeva.asn.au/forums/pip4048ms-inverter_topic4332.html
I used two USB-serial cables and an arduino configured to AND the serial lines together to sniff the traffic between the supplied WatchPower application and the inverter.
Messages to the inverter follow this format:
<command string><CRC1><CRC2><CR>
<command string><CRC1><CRC2><CR>
Eg, to query the general status you'd send QPIGS. The CRC for QPIGS is B7 A9, so in hex you'd send 0x51 0x50 0x49 0x47 0x53 0xb7 0xa9 0x0d
The forum above contains info about how to generate the CRC, or get the C# code off my github.
Here's an example of the command messages for quick reference, see my github for the names of the fields:
QPI
(PI30
QSID
(1111111111111111111111
QPIRI
(230.0 21.7 230.0 50.0 21.7 5000 4000 48.0 46.0 42.0 56.4 54.0 0 10 010 1 0 0 6 01 0 0 54.0 0 1
QVFW
(VERFW:00052.30
QVFW2
(VERFW2:00000.00
QPIRI
(230.0 21.7 230.0 50.0 21.7 5000 4000 48.0 46.0 42.0 56.4 54.0 0 10 010 1 0 0 6 01 0 0 54.0 0 1
QMCHGCR
(010 020 030 040 050 060 070 080 090 100 110 120
QMUCHGCR
(002 010 020 030 040 050 060
QFLAG
(ExDabjkuvyz
QDI
(230.0 50.0 0030 42.0 54.0 56.4 46.0 60 0 0 2 0 0 0 0 0 1 1 0 0 1 0 54.0 0 1
QMOD
(S
QPIGS
(240.4 50.1 000.0 00.0 0000 0000 000 435 54.10 001 100 0027 0000 000.0 00.00 00000 00000101 00 00 00000 100
Using this, I wrote a C# app that emulates the inverter so that I can write other apps without having to connect to the inverter. This will let me test the fault codes etc.
github.com/scottwday/InverterEmulator
Let me know if you manage to build anything!