{
 "manufacturer": "SolarEdge",
 "manufacturer_slug": "solaredge",
 "model": "SolarEdge inverters (SunSpec logging)",
 "model_slug": "sunspec-inverter",
 "short_model": "SolarEdge SunSpec",
 "aliases": [
  "SE5000",
  "Synergy",
  "SolarEdge SunSpec"
 ],
 "equipment_type": "Solar inverter",
 "applies_to": "SolarEdge single-, split- and three-phase inverters with SunSpec enabled (SolarEdge Go/SetApp units, or LCD units on firmware 3.xxxx+); meter 1 at the non-Synergy default base.",
 "summary": "SolarEdge inverters expose a read-only SunSpec map: the common block at 40000, inverter model 101/102/103 at 40069, and up to three SolarEdge-connected meter blocks after it. Every measurement is an integer paired with a signed power-of-ten scale-factor register. This map covers identity and the 16-bit inverter AC/DC measurements, operating state and the 16-bit vendor status code, plus meter 1 currents, voltages, frequency and power; 32-bit registers are left out because the note contradicts itself on their word order.",
 "transport": [
  "RTU",
  "TCP"
 ],
 "defaults": {
  "unit_id": 1,
  "baud": 115200,
  "parity": "None",
  "data_bits": 8,
  "stop_bits": 1,
  "tcp_port": 1502
 },
 "addressing": {
  "convention": "0-based",
  "note": "The source prints two columns for every register: 'base 0' (Modbus protocol address) and 'base 1' (PLC address). 'documented' holds the base-0 value, which goes on the wire unchanged: the SunSpec marker is requested at 40000, and the same register is listed as 40001 in the base-1 column."
 },
 "default_word_order": null,
 "firmware": "Technical note v3.3; the note restricts I_Status_Vendor (40108) to firmware up to 3.19.xx.",
 "source": {
  "title": "Technical Note - SolarEdge Inverters - SunSpec Logging",
  "doc_number": "Version 3.3",
  "revision_date": "2026-10",
  "url": "https://knowledge-center.solaredge.com/sites/kc/files/sunspec-implementation-technical-note.pdf",
  "pages": "pp. 14-20 (common + inverter model), pp. 23-32 (meter flags, meter base table, meter 1), pp. 46-47 Appendix A (encoding)"
 },
 "notes": [
  "All registers are read with function 03; the note describes this SunSpec map as read-only monitoring data.",
  "Value = raw x 10^SF, where SF is the signed int16 named in scale_factor_ref. Read a value and its SF in the same request so they belong to the same sample.",
  "Word order: the meter section of the note says registers are big-endian with the most significant part first, but Appendix A states, for communicating with SolarEdge devices in general, that 32-bit values use little-endian word order (with a big-endian copy at +0x800). The appendix does not limit that statement to the proprietary registers, so every 32-bit register is left out: C_SunSpec_ID 40000, I_AC_Energy_WH 40093, I_Status_Vendor4 40119, meter 1 real-energy counters 40226-40240, apparent-energy totals 40243/40251 and M_Events 40293. Their scale-factor registers (40095, 40242, 40259) are kept.",
  "I_AC_Energy_WH_SF (40095) is typed uint16 in this note although SunSpec scale factors are signed int16; the published type is kept. Its energy register is not listed (see word order).",
  "The note attaches a footnote to I_AC_VoltageAN/BN/CN reading 'Supported only in split-phase configurations'; the same footnote marker also appears on the status table. These registers may be unimplemented on some grid setups.",
  "On the inverter table the footnote 'use this field for versions up to 3.19.XX' is attached to I_Status_Vendor (40108) and also to I_AC_PF and I_AC_PF_SF (40091-40092).",
  "Left out: Multiple MPPT extension model 160 (from 40121, Synergy three-phase inverters only, firmware 4.13+). On Synergy units it occupies the addresses where meter 1 sits on other inverters, and the meter blocks move by +50 (2-unit) or +70 (3-unit).",
  "Left out: meter line-to-line voltages 40199-40202 (the note says SolarEdge meters do not report L-L voltage over SunSpec), per-phase meter VA/var/PF, per-phase apparent energies and the reactive-energy quadrant counters 40260-40292.",
  "Meters 2 and 3 repeat the meter 1 layout at base 40295 and 40469 (base 0, default). Only enabled meters are readable and they are packed in order, so if meters 1 and 3 are enabled, meter 3 appears in the meter 2 slot.",
  "The meter overview text mentions DID 4 or 5, while the register table lists 201-204; the table values are used here.",
  "Active/reactive power control (curtailment) is documented in SolarEdge's separate Power Control document and is not part of this map."
 ],
 "registers": [
  {
   "table": "holding_register",
   "address": 40002,
   "documented": "40002",
   "name": "C_SunSpec_DID",
   "description": "Common model ID, always 1.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40003,
   "documented": "40003",
   "name": "C_SunSpec_Length",
   "description": "Common block length, 65.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "registers",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40004,
   "documented": "40004",
   "name": "C_Manufacturer",
   "description": "Reads SolarEdge.",
   "data_type": "STRING",
   "length": 16,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40020,
   "documented": "40020",
   "name": "C_Model",
   "description": "Inverter model, e.g. SE5000.",
   "data_type": "STRING",
   "length": 16,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40044,
   "documented": "40044",
   "name": "C_Version",
   "description": "CPU firmware version with leading zeroes.",
   "data_type": "STRING",
   "length": 8,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40052,
   "documented": "40052",
   "name": "C_SerialNumber",
   "description": "Inverter serial number.",
   "data_type": "STRING",
   "length": 16,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40068,
   "documented": "40068",
   "name": "C_DeviceAddress",
   "description": "Configured Modbus unit ID of this inverter.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40069,
   "documented": "40069",
   "name": "C_SunSpec_DID",
   "description": "Inverter model ID, tells the phase type.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": {
    "101": "Single phase",
    "102": "Split phase",
    "103": "Three phase"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40070,
   "documented": "40070",
   "name": "C_SunSpec_Length",
   "description": "Inverter model block length, 50.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "registers",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40071,
   "documented": "40071",
   "name": "I_AC_Current",
   "description": "Total AC output current.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40075
   },
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40072,
   "documented": "40072",
   "name": "I_AC_CurrentA",
   "description": "Phase A AC current.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40075
   },
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40073,
   "documented": "40073",
   "name": "I_AC_CurrentB",
   "description": "Phase B AC current.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40075
   },
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40074,
   "documented": "40074",
   "name": "I_AC_CurrentC",
   "description": "Phase C AC current.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40075
   },
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40075,
   "documented": "40075",
   "name": "I_AC_Current_SF",
   "description": "Power-of-ten scale factor for the AC current registers.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40076,
   "documented": "40076",
   "name": "I_AC_VoltageAB",
   "description": "Line-to-line voltage A-B.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40082
   },
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40077,
   "documented": "40077",
   "name": "I_AC_VoltageBC",
   "description": "Line-to-line voltage B-C.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40082
   },
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40078,
   "documented": "40078",
   "name": "I_AC_VoltageCA",
   "description": "Line-to-line voltage C-A.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40082
   },
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40079,
   "documented": "40079",
   "name": "I_AC_VoltageAN",
   "description": "Phase A to neutral voltage (footnoted in source, see notes).",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40082
   },
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40080,
   "documented": "40080",
   "name": "I_AC_VoltageBN",
   "description": "Phase B to neutral voltage (footnoted in source, see notes).",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40082
   },
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40081,
   "documented": "40081",
   "name": "I_AC_VoltageCN",
   "description": "Phase C to neutral voltage (footnoted in source, see notes).",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40082
   },
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40082,
   "documented": "40082",
   "name": "I_AC_Voltage_SF",
   "description": "Scale factor shared by all six AC voltage registers.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40083,
   "documented": "40083",
   "name": "I_AC_Power",
   "description": "AC active output power.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40084
   },
   "units": "W",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40084,
   "documented": "40084",
   "name": "I_AC_Power_SF",
   "description": "Scale factor for AC power.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40085,
   "documented": "40085",
   "name": "I_AC_Frequency",
   "description": "Grid frequency.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40086
   },
   "units": "Hz",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40086,
   "documented": "40086",
   "name": "I_AC_Frequency_SF",
   "description": "Scale factor for frequency.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40087,
   "documented": "40087",
   "name": "I_AC_VA",
   "description": "AC apparent power.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40088
   },
   "units": "VA",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40088,
   "documented": "40088",
   "name": "I_AC_VA_SF",
   "description": "Scale factor for apparent power.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40089,
   "documented": "40089",
   "name": "I_AC_VAR",
   "description": "AC reactive power.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40090
   },
   "units": "var",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40090,
   "documented": "40090",
   "name": "I_AC_VAR_SF",
   "description": "Scale factor for reactive power.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40091,
   "documented": "40091",
   "name": "I_AC_PF",
   "description": "Power factor in percent.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40092
   },
   "units": "%",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40092,
   "documented": "40092",
   "name": "I_AC_PF_SF",
   "description": "Scale factor for power factor.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40095,
   "documented": "40095",
   "name": "I_AC_Energy_WH_SF",
   "description": "Scale factor for lifetime energy; typed uint16 in this source.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40096,
   "documented": "40096",
   "name": "I_DC_Current",
   "description": "DC input current.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40097
   },
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40097,
   "documented": "40097",
   "name": "I_DC_Current_SF",
   "description": "Scale factor for DC current.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40098,
   "documented": "40098",
   "name": "I_DC_Voltage",
   "description": "DC input voltage.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40099
   },
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40099,
   "documented": "40099",
   "name": "I_DC_Voltage_SF",
   "description": "Scale factor for DC voltage.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40100,
   "documented": "40100",
   "name": "I_DC_Power",
   "description": "DC input power.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40101
   },
   "units": "W",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40101,
   "documented": "40101",
   "name": "I_DC_Power_SF",
   "description": "Scale factor for DC power.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40103,
   "documented": "40103",
   "name": "I_Temp_Sink",
   "description": "Heat sink temperature.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40106
   },
   "units": "°C",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40106,
   "documented": "40106",
   "name": "I_Temp_SF",
   "description": "Scale factor for heat sink temperature.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40107,
   "documented": "40107",
   "name": "I_Status",
   "description": "Inverter operating state.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": {
    "1": "Off",
    "2": "Sleeping (night mode)",
    "3": "Grid monitoring / wake-up",
    "4": "Producing (MPPT)",
    "5": "Producing, curtailed",
    "6": "Shutting down",
    "7": "Fault",
    "8": "Maintenance / setup"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40108,
   "documented": "40108",
   "name": "I_Status_Vendor",
   "description": "SolarEdge state/error code; source says use for firmware up to 3.19.xx.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40121,
   "documented": "40121",
   "name": "Meter 1 C_SunSpec_DID",
   "description": "Common block ID of meter 1, value 1.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40122,
   "documented": "40122",
   "name": "Meter 1 C_SunSpec_Length",
   "description": "Meter common block length, 65.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "registers",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40123,
   "documented": "40123",
   "name": "Meter 1 C_Manufacturer",
   "description": "Meter manufacturer.",
   "data_type": "STRING",
   "length": 16,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40139,
   "documented": "40139",
   "name": "Meter 1 C_Model",
   "description": "Meter model.",
   "data_type": "STRING",
   "length": 16,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40155,
   "documented": "40155",
   "name": "Meter 1 C_Option",
   "description": "Meter role, e.g. Export+Import, Production, Consumption.",
   "data_type": "STRING",
   "length": 8,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40163,
   "documented": "40163",
   "name": "Meter 1 C_Version",
   "description": "Meter version.",
   "data_type": "STRING",
   "length": 8,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40171,
   "documented": "40171",
   "name": "Meter 1 C_SerialNumber",
   "description": "Meter serial number.",
   "data_type": "STRING",
   "length": 16,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40187,
   "documented": "40187",
   "name": "Meter 1 C_DeviceAddress",
   "description": "Modbus ID of the inverter hosting the meter.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40188,
   "documented": "40188",
   "name": "Meter 1 C_SunSpec_DID",
   "description": "Meter model ID, tells the meter wiring type.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": {
    "201": "Single phase (AN or AB)",
    "202": "Split single phase (ABN)",
    "203": "Wye three phase (ABCN)",
    "204": "Delta three phase (ABC)"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40189,
   "documented": "40189",
   "name": "Meter 1 C_SunSpec_Length",
   "description": "Meter model block length.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "registers",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40190,
   "documented": "40190",
   "name": "Meter 1 M_AC_Current",
   "description": "Sum of active-phase currents.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40194
   },
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40191,
   "documented": "40191",
   "name": "Meter 1 M_AC_Current_A",
   "description": "Phase A current.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40194
   },
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40192,
   "documented": "40192",
   "name": "Meter 1 M_AC_Current_B",
   "description": "Phase B current.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40194
   },
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40193,
   "documented": "40193",
   "name": "Meter 1 M_AC_Current_C",
   "description": "Phase C current.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40194
   },
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40194,
   "documented": "40194",
   "name": "Meter 1 M_AC_Current_SF",
   "description": "Scale factor for meter currents.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40195,
   "documented": "40195",
   "name": "Meter 1 M_AC_Voltage_LN",
   "description": "Average line-to-neutral voltage of active phases.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40203
   },
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40196,
   "documented": "40196",
   "name": "Meter 1 M_AC_Voltage_AN",
   "description": "Phase A to neutral voltage.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40203
   },
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40197,
   "documented": "40197",
   "name": "Meter 1 M_AC_Voltage_BN",
   "description": "Phase B to neutral voltage.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40203
   },
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40198,
   "documented": "40198",
   "name": "Meter 1 M_AC_Voltage_CN",
   "description": "Phase C to neutral voltage.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40203
   },
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40203,
   "documented": "40203",
   "name": "Meter 1 M_AC_Voltage_SF",
   "description": "Scale factor for meter voltages.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40204,
   "documented": "40204",
   "name": "Meter 1 M_AC_Freq",
   "description": "Frequency measured by the meter.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40205
   },
   "units": "Hz",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40205,
   "documented": "40205",
   "name": "Meter 1 M_AC_Freq_SF",
   "description": "Scale factor for meter frequency.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40206,
   "documented": "40206",
   "name": "Meter 1 M_AC_Power",
   "description": "Total real power, sum of active phases; sign convention per IEEE 1459.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40210
   },
   "units": "W",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40207,
   "documented": "40207",
   "name": "Meter 1 M_AC_Power_A",
   "description": "Phase A real power.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40210
   },
   "units": "W",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40208,
   "documented": "40208",
   "name": "Meter 1 M_AC_Power_B",
   "description": "Phase B real power.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40210
   },
   "units": "W",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40209,
   "documented": "40209",
   "name": "Meter 1 M_AC_Power_C",
   "description": "Phase C real power.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40210
   },
   "units": "W",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40210,
   "documented": "40210",
   "name": "Meter 1 M_AC_Power_SF",
   "description": "Scale factor for meter real power.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40211,
   "documented": "40211",
   "name": "Meter 1 M_AC_VA",
   "description": "Total apparent power.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40215
   },
   "units": "VA",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40215,
   "documented": "40215",
   "name": "Meter 1 M_AC_VA_SF",
   "description": "Scale factor for meter apparent power.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40216,
   "documented": "40216",
   "name": "Meter 1 M_AC_VAR",
   "description": "Total reactive power.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40220
   },
   "units": "var",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40220,
   "documented": "40220",
   "name": "Meter 1 M_AC_VAR_SF",
   "description": "Scale factor for meter reactive power.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40221,
   "documented": "40221",
   "name": "Meter 1 M_AC_PF",
   "description": "Average power factor of active phases.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40225
   },
   "units": "%",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40225,
   "documented": "40225",
   "name": "Meter 1 M_AC_PF_SF",
   "description": "Scale factor for meter power factor.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40242,
   "documented": "40242",
   "name": "Meter 1 M_Energy_W_SF",
   "description": "Scale factor for real energy counters.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40259,
   "documented": "40259",
   "name": "Meter 1 M_Energy_VA_SF",
   "description": "Scale factor for apparent energy counters.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  }
 ],
 "integration": {
  "summary": "Enable Modbus TCP (LAN only) or set RS485-1 to the SunSpec (Non-SE Logger) protocol, then read 40069-40108 with function 03 at unit ID 1. Check that 40069 reads 101, 102 or 103 to confirm the addressing, then decode each value with its scale-factor register.",
  "minimum_registers": [
   {
    "table": "holding_register",
    "address": 40069,
    "why": "Inverter model ID (101/102/103) - proves the addressing is right"
   },
   {
    "table": "holding_register",
    "address": 40083,
    "why": "AC output power"
   },
   {
    "table": "holding_register",
    "address": 40084,
    "why": "AC power scale factor"
   },
   {
    "table": "holding_register",
    "address": 40085,
    "why": "Grid frequency"
   },
   {
    "table": "holding_register",
    "address": 40086,
    "why": "Frequency scale factor"
   },
   {
    "table": "holding_register",
    "address": 40107,
    "why": "Operating state"
   },
   {
    "table": "holding_register",
    "address": 40206,
    "why": "Meter 1 total real power (grid import/export)"
   },
   {
    "table": "holding_register",
    "address": 40210,
    "why": "Meter 1 power scale factor"
   }
  ],
  "enable": "SolarEdge Go / SetApp: Commissioning > Site Communication > Modbus TCP > Enable (port 1502 by default), or RS485-1 > Protocol > SunSpec (Non-SE Logger) with a unique Device ID 1-247. LCD inverters: Communication > LAN Conf > Modbus TCP (port 502 by default), or the RS485-1 Conf menu. Modbus TCP is off from the factory.",
  "watchdog": "No SunSpec communication watchdog is described. The note gives a 2-minute idle time for the Modbus TCP server and advises sending a request within that window to keep the connection open.",
  "quirks": [
   "Off-by-one trap: the note prints both columns. Request 40000 (base 0) for the SunSpec marker; a tool that subtracts 1 from 40001-style numbers must start from the base-1 column, never from the base-0 one, or every register is one late and SFs are misread.",
   "Every value has its own scale-factor register (raw x 10^SF); SFs can change, so read them together with the values.",
   "32-bit values (SunS marker, lifetime energy, meter energy counters, Vendor4 status, meter events) are not listed: the note says big-endian in one place and little-endian word order in another. Reading 40000-40001 on site (0x5375 0x6E53 = high word first) shows which applies before you decode any 32-bit value.",
   "On Synergy three-phase inverters model 160 sits at 40121 and the meter blocks move by +50 or +70 registers."
  ],
  "setup": [
   "TCP: LAN cable only (Wi-Fi is not supported for Modbus TCP); the inverter on Ethernet answers at unit ID 1; default port 1502 on SolarEdge Go/SetApp units and 502 on LCD units, both configurable.",
   "RTU: RS485, 115200 bps 8N1 by default, adjustable 9600-115200 bps; each inverter needs a unique Device ID 1-247 and the logger's ID must differ from all of them.",
   "A follower inverter cannot talk to a SolarEdge leader and a third-party logger on the same RS485 bus; use the second RS485 port or a Commercial Gateway.",
   "After enabling TCP the LCD status shows Init for about 10 s before Ready."
  ],
  "gotchas": [
   "Only one Modbus TCP client and only one Modbus leader (RTU or TCP) are supported at a time - a second logger or home-automation integration will lock out the first.",
   "Unsupported registers return the SunSpec NOT_IMPLEMENTED value; unsupported meter accumulators may read 0.",
   "Appendix B quotes read/write response times under 0.5 s, measured on three-phase commercial SetApp inverters (firmware 4.13.5xx and later)."
  ]
 },
 "page": "https://easymodbus.com/modbus-register-maps/solaredge/sunspec-inverter",
 "address_note": "address = 0-based Modbus wire (PDU) address; documented = as printed in the source.",
 "note": "Re-typed from the manufacturer's public documentation (see source) and verified against it. Registers vary by firmware and options; verify against the live device before writing."
}
