Description
Since I've found so much useful info in this repo, it's only fair that I share back what I've discovered. My previous X1-AC is now replaced by the X1-FIT I should have had to begin with, and (of course) the data mapping is different :)
As usual, you can fetch the data using
curl -s -X POST http://solax --data 'optType=ReadRealTimeData&pwd=<SERIALNO>'
The data mappings I have worked out for this inverter are
AC power from battery : Index 2 (16 bit signed)
AC power export to grid : Index 32 (16 bit signed, positive export)
Battery charge percent : Index 18
Battery temperature (C) : Index 17
Grid voltage (V) : Index 0 (* 0.1)
Grid Frequency (Hz) : Index 3 ( *0.01)
Power to battery DC (W) : Index 16 (16 bit signed)
Battery power remaining (kWh) : Index 23 (*0.1)
Lowest cell temperature (C) : Index 46 (16 bit signed, * 0.1)
Highest cell temperature (C) : Index 45 (16 bit signed, * 0.1)
Lowest cell Voltage (V) : Index 115 (*0.001)
Highest cell Voltage (V): Index 114 (*0.001)
BMS Max discharge current (A): Index 44 (*0.1)
BMD Max charge current (A) : Index 43 (*0.1)
EPS Power (W) : Index 28
EPS Voltage (V) : Index 29 (*0.1)
I found in the end that the best way to work out the data mapping was to take a combination of data indices for similar model and also looking at the values that you can obtain from modbus over TCP (which is documented and seems less random - see https://secondlifestorage.com/index.php?attachments/hybrid-x1-x3-g3-modbustcp-rtu-v3-21-english-pdf.24841/) . You can use a tool like 'Modbus Poll' (30 day free trial) to connect to your inverter on port 502 and read the 'input' registers.
cheers,
Robin