SunSpec Alliance Inverter 101/102/103 (integer, scale factors) Modbus register map
Generic SunSpec Modbus inverter model with integer values with scale factor registers. Used by many inverters (SolarEdge, Fronius, SMA, Kostal and others); the model and its position are set by each device
- Official
- 69 registers
- Modbus TCP and RTU
- Revision 2 · 2026-11-10
- Identity: firmware, serial number
Official: Written from the manufacturer's documentation, but not tested on a device yet. Check the map against the manufacturer's documentation before you write to a live device. Tested it? Report a test.
Communication
- Protocol
- Modbus TCP and RTU
- Unit ID
- 1
- TCP port
- 502
- Serial
- 9600 8E1 · 9600 baud, 8 data bits, even parity, 1 stop bit defaults
- Byte / word order
- ABCD · bytes big-endian, words high first
- Addresses
- 0-based
Connection values are defaults: the device may be configured differently.
Map
- Registers
- 69 holding registers
- Groups
- 9
- Translation tables
- 1
- Revision
- 2 · 2026-11-10
- Added
- ()
- File
- maps/sunspec-alliance/inverter-101-103.mbmap.json · 14 KB · history
- SHA-256
- e66d4c126183abde42b7e597de0e65be190099555697de1188e78edb5cf22c85
- Manufacturer
- sunspec.org
Device identity
What a tool can read to check that this map fits the connected device (SPEC.md section 4.7). Registers with a role are read like any other register.
| Role | Register | Address | Type | Values |
|---|---|---|---|---|
| Firmware | Version | holding 40044 | string[8] | |
| Serial number | Serial number | holding 40052 | string[16] |
Sources and notes
- SunSpec Alliance information model definitions models 1, 101-103
Source: SunSpec Alliance, SunSpec information model definitions (github.com/sunspec/models), models 1, 101-103
- SunSpec Inverter 101/102/103 (integer, scale factors).
- The SunSpec chain starts at address 40000 ('SunS'), then the common block, then the inverter model.
- This map assumes a common block of 65 registers, so the inverter model starts at 40069 (as in SolarEdge inverters). A device with the 66-register common block of the specification starts it at 40070: read the Model ID row, which must show 101-103 or 111-113, to check.
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| HR | 40000 | string[2] | R | Reads SunS" on a SunSpec device" | |||
| HR | 40002 | uint16 | R | SunSpec ID | |||
| HR | 40003 | uint16 | R | SunSpec L | |||
| HR | 40004 | string[16] | R | SunSpec Mn | |||
| HR | 40020 | string[16] | R | SunSpec Md | |||
| HR | 40036 | string[8] | R | SunSpec Opt | |||
| HR | 40044 | string[8] | R | SunSpec Vr | |||
| HR | 40052 | string[16] | R | SunSpec SN | |||
| HR | 40068 | uint16 | R | SunSpec DA. This point is mandatory for all SunSpec RTU devices and, for those devices, they must support values from 1-247. | |||
| HR | 40069 | uint16 | R | SunSpec ID. 101/111 = single phase, 102/112 = split phase, 103/113 = three phase | |||
| HR | 40070 | uint16 | R | SunSpec L | |||
| HR | 40071 | uint16 | R | A | ×10^A_SF | SunSpec A. Sum of active phases | |
| HR | 40072 | uint16 | R | A | ×10^A_SF | SunSpec AphA. Connected Phase | |
| HR | 40073 | uint16 | R | A | ×10^A_SF | SunSpec AphB. Connected Phase | |
| HR | 40074 | uint16 | R | A | ×10^A_SF | SunSpec AphC. Connected Phase | |
| HR | 40075 | int16 | R | SunSpec A_SF | |||
| HR | 40076 | uint16 | R | V | ×10^V_SF | SunSpec PPVphAB | |
| HR | 40077 | uint16 | R | V | ×10^V_SF | SunSpec PPVphBC | |
| HR | 40078 | uint16 | R | V | ×10^V_SF | SunSpec PPVphCA | |
| HR | 40079 | uint16 | R | V | ×10^V_SF | SunSpec PhVphA | |
| HR | 40080 | uint16 | R | V | ×10^V_SF | SunSpec PhVphB | |
| HR | 40081 | uint16 | R | V | ×10^V_SF | SunSpec PhVphC | |
| HR | 40082 | int16 | R | SunSpec V_SF | |||
| HR | 40083 | int16 | R | W | ×10^W_SF | SunSpec W | |
| HR | 40084 | int16 | R | SunSpec W_SF | |||
| HR | 40085 | uint16 | R | Hz | ×10^Hz_SF | SunSpec Hz | |
| HR | 40086 | int16 | R | SunSpec Hz_SF | |||
| HR | 40087 | int16 | R | VA | ×10^VA_SF | SunSpec VA | |
| HR | 40088 | int16 | R | SunSpec VA_SF | |||
| HR | 40089 | int16 | R | var | ×10^VAr_SF | SunSpec VAr | |
| HR | 40090 | int16 | R | SunSpec VAr_SF | |||
| HR | 40091 | int16 | R | % | ×10^PF_SF | SunSpec PF | |
| HR | 40092 | int16 | R | SunSpec PF_SF | |||
| HR | 40093 | uint32 ABCD | R | Wh | ×10^WH_SF | SunSpec WH | |
| HR | 40095 | int16 | R | SunSpec WH_SF | |||
| HR | 40096 | uint16 | R | A | ×10^DCA_SF | SunSpec DCA | |
| HR | 40097 | int16 | R | SunSpec DCA_SF | |||
| HR | 40098 | uint16 | R | V | ×10^DCV_SF | SunSpec DCV | |
| HR | 40099 | int16 | R | SunSpec DCV_SF | |||
| HR | 40100 | int16 | R | W | ×10^DCW_SF | SunSpec DCW | |
| HR | 40101 | int16 | R | SunSpec DCW_SF | |||
| HR | 40102 | int16 | R | °C | ×10^Tmp_SF | SunSpec TmpCab | |
| HR | 40103 | int16 | R | °C | ×10^Tmp_SF | SunSpec TmpSnk | |
| HR | 40104 | int16 | R | °C | ×10^Tmp_SF | SunSpec TmpTrns | |
| HR | 40105 | int16 | R | °C | ×10^Tmp_SF | SunSpec TmpOt | |
| HR | 40106 | int16 | R | SunSpec Tmp_SF | |||
| HR | 40107 | uint16 | R | SunSpec St | |||
| HR | 40108 | uint16 | R | SunSpec StVnd | |||
| HR | 40110 | bool bit 0 | R | SunSpec Evt1 bit 0 | |||
| HR | 40110 | bool bit 1 | R | SunSpec Evt1 bit 1 | |||
| HR | 40110 | bool bit 2 | R | SunSpec Evt1 bit 2 | |||
| HR | 40110 | bool bit 3 | R | SunSpec Evt1 bit 3 | |||
| HR | 40110 | bool bit 4 | R | SunSpec Evt1 bit 4 | |||
| HR | 40110 | bool bit 5 | R | SunSpec Evt1 bit 5 | |||
| HR | 40110 | bool bit 6 | R | SunSpec Evt1 bit 6 | |||
| HR | 40110 | bool bit 7 | R | SunSpec Evt1 bit 7 | |||
| HR | 40110 | bool bit 8 | R | SunSpec Evt1 bit 8 | |||
| HR | 40110 | bool bit 9 | R | SunSpec Evt1 bit 9 | |||
| HR | 40110 | bool bit 10 | R | SunSpec Evt1 bit 10 | |||
| HR | 40110 | bool bit 11 | R | SunSpec Evt1 bit 11 | |||
| HR | 40110 | bool bit 12 | R | SunSpec Evt1 bit 12 | |||
| HR | 40110 | bool bit 13 | R | SunSpec Evt1 bit 13 | |||
| HR | 40110 | bool bit 14 | R | SunSpec Evt1 bit 14 | |||
| HR | 40110 | bool bit 15 | R | SunSpec Evt1 bit 15 | |||
| HR | 40111 | uint32 ABCD | R | SunSpec Evt2 | |||
| HR | 40113 | uint32 ABCD | R | SunSpec EvtVnd1 | |||
| HR | 40115 | uint32 ABCD | R | SunSpec EvtVnd2 | |||
| HR | 40117 | uint32 ABCD | R | SunSpec EvtVnd3 | |||
| HR | 40119 | uint32 ABCD | R | SunSpec EvtVnd4 |
No registers match
Try part of the name, an address (decimal or 0x hex) or clear the filters.
Help improve this map
- I tested it on a deviceReport whether it worked, even if you did not write the map.
- Suggest a correctionEdit the file on GitHub; it opens a pull request.
- Report a problemA wrong address, type, scale or byte order.
- Read the formatWhat each key of the file means (SPEC.md).