{
  "spec_version": 1,
  "slug": "solaredge-inverter",
  "manufacturer": "SolarEdge",
  "model": "Single / three phase inverter with SetApp (SunSpec)",
  "category": "Solar inverter",
  "supplier_url": "https://www.solaredge.com/en/support",
  "default_configuration": {
    "protocol": "modbus_tcp",
    "port": 502,
    "unit_id": 1,
    "addressing": "zero_based",
    "byte_order": "BigEndian",
    "word_order": "HighFirst"
  },
  "coils": [],
  "discrete_inputs": [],
  "input_registers": [],
  "holding_registers": [
    {
      "address": 40000,
      "count": 2,
      "name": "SunSpec identifier (\"SunS\")",
      "data_type": "UInt32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0x53756E53."
    },
    {
      "address": 40002,
      "count": 1,
      "name": "SunSpec model ID (common)",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "1 = common model."
    },
    {
      "address": 40003,
      "count": 1,
      "name": "SunSpec common model length",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "65 registers follow."
    },
    {
      "address": 40004,
      "count": 16,
      "name": "Manufacturer",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "\"SolarEdge\"."
    },
    {
      "address": 40020,
      "count": 16,
      "name": "Model",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Inverter model, e.g. \"SE5000\"."
    },
    {
      "address": 40044,
      "count": 8,
      "name": "Firmware version",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "CPU software version with leading zeroes, e.g. \"0002.0611\"."
    },
    {
      "address": 40052,
      "count": 16,
      "name": "Serial number",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 40068,
      "count": 1,
      "name": "Modbus unit ID",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "The inverter's own Modbus address."
    },
    {
      "address": 40069,
      "count": 1,
      "name": "SunSpec model ID (inverter)",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "101 = single phase, 102 = split phase, 103 = three phase. SolarEdge uses the int+SF models; the float models 111-113 are not provided."
    },
    {
      "address": 40070,
      "count": 1,
      "name": "SunSpec inverter model length",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "50 registers follow."
    },
    {
      "address": 40071,
      "count": 1,
      "name": "AC current, total",
      "data_type": "UInt16",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Raw value; apply A_SF at 40075."
    },
    {
      "address": 40072,
      "count": 1,
      "name": "AC current, phase A",
      "data_type": "UInt16",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 40073,
      "count": 1,
      "name": "AC current, phase B",
      "data_type": "UInt16",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 40074,
      "count": 1,
      "name": "AC current, phase C",
      "data_type": "UInt16",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 40075,
      "count": 1,
      "name": "AC current scale factor (A_SF)",
      "data_type": "Int16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Engineering value = raw x 10^SF."
    },
    {
      "address": 40079,
      "count": 1,
      "name": "AC voltage, phase A-N",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 40080,
      "count": 1,
      "name": "AC voltage, phase B-N",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 40081,
      "count": 1,
      "name": "AC voltage, phase C-N",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 40082,
      "count": 1,
      "name": "AC voltage scale factor (V_SF)",
      "data_type": "Int16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Engineering value = raw x 10^SF."
    },
    {
      "address": 40083,
      "count": 1,
      "name": "AC active power",
      "data_type": "Int16",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Raw value; apply W_SF at 40084."
    },
    {
      "address": 40084,
      "count": 1,
      "name": "AC power scale factor (W_SF)",
      "data_type": "Int16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Engineering value = raw x 10^SF."
    },
    {
      "address": 40085,
      "count": 1,
      "name": "AC frequency",
      "data_type": "UInt16",
      "units": "Hz",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Raw value; apply Hz_SF at 40086."
    },
    {
      "address": 40086,
      "count": 1,
      "name": "AC frequency scale factor (Hz_SF)",
      "data_type": "Int16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Engineering value = raw x 10^SF."
    },
    {
      "address": 40087,
      "count": 1,
      "name": "AC apparent power",
      "data_type": "Int16",
      "units": "VA",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Raw value; apply VA_SF at 40088."
    },
    {
      "address": 40088,
      "count": 1,
      "name": "AC apparent power scale factor (VA_SF)",
      "data_type": "Int16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Engineering value = raw x 10^SF."
    },
    {
      "address": 40089,
      "count": 1,
      "name": "AC reactive power",
      "data_type": "Int16",
      "units": "var",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Raw value; apply VAr_SF at 40090."
    },
    {
      "address": 40090,
      "count": 1,
      "name": "AC reactive power scale factor (VAr_SF)",
      "data_type": "Int16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Engineering value = raw x 10^SF."
    },
    {
      "address": 40091,
      "count": 1,
      "name": "Power factor",
      "data_type": "Int16",
      "units": "%",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Raw value; apply PF_SF at 40092."
    },
    {
      "address": 40092,
      "count": 1,
      "name": "Power factor scale factor (PF_SF)",
      "data_type": "Int16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Engineering value = raw x 10^SF."
    },
    {
      "address": 40093,
      "count": 2,
      "name": "AC lifetime energy",
      "data_type": "UInt32",
      "units": "Wh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Raw value; apply WH_SF at 40095. Divide by 1000 for kWh."
    },
    {
      "address": 40095,
      "count": 1,
      "name": "AC lifetime energy scale factor (WH_SF)",
      "data_type": "Int16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Engineering value = raw x 10^SF."
    },
    {
      "address": 40096,
      "count": 1,
      "name": "DC current",
      "data_type": "UInt16",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Raw value; apply DCA_SF at 40097. Only one DC input is reported; per-string data needs the SolarEdge monitoring platform."
    },
    {
      "address": 40097,
      "count": 1,
      "name": "DC current scale factor (DCA_SF)",
      "data_type": "Int16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Engineering value = raw x 10^SF."
    },
    {
      "address": 40098,
      "count": 1,
      "name": "DC voltage",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Raw value; apply DCV_SF at 40099."
    },
    {
      "address": 40099,
      "count": 1,
      "name": "DC voltage scale factor (DCV_SF)",
      "data_type": "Int16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Engineering value = raw x 10^SF."
    },
    {
      "address": 40100,
      "count": 1,
      "name": "DC power",
      "data_type": "Int16",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Raw value; apply DCW_SF at 40101."
    },
    {
      "address": 40101,
      "count": 1,
      "name": "DC power scale factor (DCW_SF)",
      "data_type": "Int16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Engineering value = raw x 10^SF."
    },
    {
      "address": 40102,
      "count": 1,
      "name": "Cabinet temperature",
      "data_type": "Int16",
      "units": "°C",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Raw value; apply Tmp_SF at 40106."
    },
    {
      "address": 40103,
      "count": 1,
      "name": "Heat sink temperature",
      "data_type": "Int16",
      "units": "°C",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Raw value; apply Tmp_SF at 40106."
    },
    {
      "address": 40106,
      "count": 1,
      "name": "Temperature scale factor (Tmp_SF)",
      "data_type": "Int16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Engineering value = raw x 10^SF."
    },
    {
      "address": 40107,
      "count": 1,
      "name": "Inverter operating state",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "1 = Off, 2 = Sleeping, 3 = Starting, 4 = MPPT (producing), 5 = Throttled, 6 = Shutting down, 7 = Fault, 8 = Standby."
    },
    {
      "address": 40109,
      "count": 2,
      "name": "Inverter events 1",
      "data_type": "UInt32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "SunSpec model 101-103 Evt1 bit field."
    },
    {
      "address": 40121,
      "count": 1,
      "name": "SunSpec model ID (meter common)",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "1 = SunSpec common model. Present only when a SolarEdge energy meter is enabled."
    },
    {
      "address": 40122,
      "count": 1,
      "name": "Meter common model length",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "65 registers follow."
    },
    {
      "address": 40123,
      "count": 16,
      "name": "Meter manufacturer",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 40139,
      "count": 16,
      "name": "Meter model",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 40155,
      "count": 8,
      "name": "Meter option",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Connection type, e.g. \"Export+Import\" or \"Production\"."
    },
    {
      "address": 40163,
      "count": 8,
      "name": "Meter version",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 40171,
      "count": 16,
      "name": "Meter serial number",
      "data_type": "Ascii",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 40187,
      "count": 1,
      "name": "Meter Modbus unit ID",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 40188,
      "count": 1,
      "name": "SunSpec model ID (meter)",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "201 = single phase, 202 = split phase, 203 = three phase wye, 204 = three phase delta."
    },
    {
      "address": 40189,
      "count": 1,
      "name": "SunSpec meter model length",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 40190,
      "count": 1,
      "name": "AC current, total",
      "data_type": "Int16",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Raw value; apply A_SF at 40194."
    },
    {
      "address": 40191,
      "count": 1,
      "name": "AC current, phase A",
      "data_type": "Int16",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 40192,
      "count": 1,
      "name": "AC current, phase B",
      "data_type": "Int16",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 40193,
      "count": 1,
      "name": "AC current, phase C",
      "data_type": "Int16",
      "units": "A",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 40194,
      "count": 1,
      "name": "Meter current scale factor (A_SF)",
      "data_type": "Int16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Engineering value = raw x 10^SF."
    },
    {
      "address": 40195,
      "count": 1,
      "name": "AC voltage, line to neutral (average)",
      "data_type": "Int16",
      "units": "V",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Raw value; apply V_SF at 40203."
    },
    {
      "address": 40203,
      "count": 1,
      "name": "Meter voltage scale factor (V_SF)",
      "data_type": "Int16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Engineering value = raw x 10^SF."
    },
    {
      "address": 40204,
      "count": 1,
      "name": "AC frequency",
      "data_type": "Int16",
      "units": "Hz",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Raw value; apply Hz_SF at 40205."
    },
    {
      "address": 40205,
      "count": 1,
      "name": "Meter frequency scale factor (Hz_SF)",
      "data_type": "Int16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Engineering value = raw x 10^SF."
    },
    {
      "address": 40206,
      "count": 1,
      "name": "AC active power, total",
      "data_type": "Int16",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Raw value; apply W_SF at 40210. Positive = import from the grid."
    },
    {
      "address": 40210,
      "count": 1,
      "name": "Meter power scale factor (W_SF)",
      "data_type": "Int16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Engineering value = raw x 10^SF."
    },
    {
      "address": 40216,
      "count": 1,
      "name": "AC reactive power, total",
      "data_type": "Int16",
      "units": "var",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 40221,
      "count": 1,
      "name": "Power factor (average)",
      "data_type": "Int16",
      "units": "%",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Raw value; apply PF_SF at 40225."
    },
    {
      "address": 40225,
      "count": 1,
      "name": "Meter power factor scale factor (PF_SF)",
      "data_type": "Int16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Engineering value = raw x 10^SF."
    },
    {
      "address": 40226,
      "count": 2,
      "name": "Total exported energy",
      "data_type": "UInt32",
      "units": "Wh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Raw value; apply TotWh_SF at 40242."
    },
    {
      "address": 40234,
      "count": 2,
      "name": "Total imported energy",
      "data_type": "UInt32",
      "units": "Wh",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Raw value; apply TotWh_SF at 40242."
    },
    {
      "address": 40242,
      "count": 1,
      "name": "Meter energy scale factor (TotWh_SF)",
      "data_type": "Int16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Engineering value = raw x 10^SF."
    },
    {
      "address": 61441,
      "count": 1,
      "name": "Active power limit (Power Control)",
      "data_type": "UInt16",
      "units": "%",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "SolarEdge power control register 0xF001: site active power limit in % of the inverter's rated power. Takes effect only in a grid-code/power-control configuration and must be committed with register 61696."
    },
    {
      "address": 61696,
      "count": 1,
      "name": "Commit power control settings",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Register 0xF100: write 1 to commit the values written to the power control registers."
    }
  ],
  "combined_registers": [],
  "notes": "SolarEdge inverters speak SunSpec Modbus TCP on port 502, unit ID 1. Modbus TCP must be enabled with SetApp (Communication -> LAN -> Modbus TCP) or, on inverters with an LCD, from the Communication menu; only one Modbus leader may talk to the inverter at a time, and SolarEdge recommends keeping the monitoring connection in parallel. The SunSpec map starts at base address 40000: common model at 40000, inverter model 101/102/103 at 40069 and, when an energy meter is installed, the meter's own common block at 40121 and its meter model 201-204 at 40188. A second and third meter follow at 40295 and 40469 (add 50 registers for 2-unit and 70 for 3-unit Synergy inverters). SolarEdge uses the integer-with-scale-factor (int+SF) models, so every measurement has a paired scale factor register: engineering value = raw x 10^SF, and the scale factors are chosen by the inverter rather than fixed. Reading a meter requires the meter to be enabled; the meter type is in the meter model ID. The vendor power control registers at 61441/61696 are only meaningful with a grid-code configuration and are documented in SolarEdge's power control application note, not in the SunSpec document. Points the inverter does not implement read as 0xFFFF (uint16, enum16), 0x8000 (int16) or 0xFFFFFFFF (acc32), so filter those values. Addresses are the base-0 (wire) addresses of the technical note. Source: SolarEdge \"Inverters - SunSpec Logging - Technical Note\" (version 3.0) together with the SunSpec models."
}
