All devices

Sol-Ark · Solar inverter

Sol-Ark 5K / 8K / 12K / 15K hybrid inverter Modbus register map

Default configuration

Protocol
RS485
Port
502
Unit ID
1
Addressing
0-based
Byte order
Big endian
Word order
Low word first
Baud rate
9600
Parity
None
Data bits
8
Stop bits
1

This device has an RS-485 interface. Reach it through a Modbus RTU-to-TCP gateway, configured with the factory serial settings above.

Register map

AddressCountNameTypeUnitScaleAccess
601
Day active power (grid port energy)
Inverter grid-port energy for the current day; signed.
Int16kWh0.1R
632
Total active power (grid port energy)
Low word at 63, high word at 64.
Int32kWh0.1R
701
Day battery charge power
UInt16kWh0.1R
711
Day battery discharge power
UInt16kWh0.1R
722
Total battery charge power
Low word at 72, high word at 73.
UInt32kWh0.1R
742
Total battery discharge power
Low word at 74, high word at 75.
UInt32kWh0.1R
761
Day grid buy power
UInt16kWh0.1R
771
Day grid sell power
UInt16kWh0.1R
812
Total grid sell power
Low word at 81, high word at 82.
UInt32kWh0.1R
841
Day load power
Document labels this row "SG: Day Load Power (Wh)".
UInt16kWh0.1R
852
Total load power
Low word at 85, high word at 86.
UInt32kWh0.1R
901
DC/DC transformer temperature
Same offset as register 91; not used on the 15K.
UInt16°C0.1R
911
IGBT heat sink temperature
Offset -56.2 degC reads 438, 0 degC reads 1000, 50.5 degC reads 1505.
UInt16°C0.1R
962
Total PV power over all time
Low word at 96, high word at 97.
UInt32kWh0.1R
1031
Fault information word 1
Bit field; see the fault table at the end of the vendor document.
Binary-1R
1041
Fault information word 2
Binary-1R
1051
Fault information word 3
Binary-1R
1061
Fault information word 4
Four 16-bit words, 64 fault bits in total, one bit per fault.
Binary-1R
1071
Corrected battery capacity
Value 100 means 100 Ah.
UInt16Ah1R
1081
Daily PV power
Total PV energy produced today.
UInt16kWh0.1R
1091
DC (PV) voltage input 1
UInt16V0.1R
1101
DC (PV) current input 1
UInt16A0.1R
1111
DC (PV) voltage input 2
UInt16V0.1R
1121
DC (PV) current input 2
UInt16A0.1R
1131
DC (PV) voltage input 3
Applies to the 15K only.
UInt16V0.1R
1141
DC (PV) current input 3
Applies to the 15K only.
UInt16A0.1R
1501
Grid side voltage L1-N
UInt16V0.1R
1511
Grid side voltage L2-N
UInt16V0.1R
1521
Grid side voltage L1-L2
UInt16V0.1R
1571
Load voltage L1
UInt16V0.1R
1581
Load voltage L2
UInt16V0.1R
1601
Grid side current L1
Int16A0.01R
1611
Grid side current L2
Int16A0.01R
1641
Inverter output current L1
Int16A0.01R
1651
Inverter output current L2
Int16A0.01R
1671
Grid side L1 power
Int16W1R
1681
Grid side L2 power
Int16W1R
1691
Total power of grid side L1-L2
> 0 = buying, < 0 = selling.
Int16W1R
1721
Grid external total power
Sum of the external CT readings (registers 170 and 171).
Int16W1R
1731
Inverter output L1 power
Int16W1R
1741
Inverter output L2 power
Int16W1R
1751
Inverter output total power
Int16W1R
1781
Load side total power
Int16W1R
1811
Generator port voltage L1-L2
UInt16V0.1R
1821
Battery temperature
Real value of offset + 1000: raw 1200 = 20.0 degC.
UInt16°C0.1R
1831
Battery voltage
Raw 4100 = 41.0 V.
UInt16V0.01R
1841
Battery state of charge
UInt16%1R
1861
PV1 input power
Int16W1R
1871
PV2 input power
Int16W1R
1881
PV3 input power
Applies to the 15K only.
Int16W1R
1891
PV4 input power
Int16W1R
1901
Battery output power
Signed; positive = discharging.
Int16W1R
1911
Battery output current
Int16A0.01R
1921
Load frequency
UInt16Hz0.01R
1931
Inverter output frequency
UInt16Hz0.01R
1941
Grid side relay status
1 = open (disconnected), 2 = closed.
UInt16-1R
1951
Generator side relay status
Low 4 bits: 0 open, 1 closed, 2 no connection, 3 closed when the generator is on.
UInt16-1R
1961
Generator relay frequency
UInt16Hz0.01R

Read this device live with Modbus Connect, free for Windows, macOS and Linux

Related guides

Notes

Source: Sol-Ark "Modbus RTU Protocol, Sol-Ark Hybrid Inverters: 5k, 8k, 12k, 15k", V1.4 (2023-10-13, added the 15K and the total-energy registers). The vendor document is public, but sol-ark.com did not list it in the rendered or indexed document library, so it was read from the public mirror https://github.com/chuyskywalker/solark-esphome/blob/main/Modbus%20Sol-Ark%20V1.4%20(Public%20Release).pdf. Fixed interface settings from the document: RS-485, 9600 bps, no parity, 8 data bits, 1 stop bit, and "The inverter's Slave ID is 0x01. This cannot be changed." The map is read-only (function code 0x03 only); the vendor states it does not support third-party Modbus, that the inverter must have "BMS Lithium Batt" set to 00, and that it cannot be used at the same time as RS-485 battery communication. Addresses are the decimal wire addresses: the document's own example reads address 107 as PDU 0x006B. 32-bit values carry the low word at the lower address (63/64, 72/73, 74/75, 81/82, 85/86, 96/97), so the seed declares word order LowFirst. Deliberate omissions: the total grid buy power pair at 78 (low word) and 80 (high word) - register 79 (grid frequency) sits between the two halves, so it cannot be expressed as one 32-bit row without overlapping a register; the serial-number block at 3-7, whose ten ASCII bytes are documented across addresses whose byte-to-register mapping the document leaves open; registers 153/155/156/162/163/170/171/176/177/179/180, whose labels wrap across two PDF rows and could not be paired with their address without guessing; and the fault-code tables, which are descriptions and not registers.