{
  "spec_version": 1,
  "slug": "sma-data-manager-m",
  "manufacturer": "SMA",
  "model": "Data Manager M / Data Manager M Lite / Data Manager L (EDMM-10, EDMM-US-10, EDMM-10.A, EDML-10)",
  "category": "Solar plant controller",
  "supplier_url": "https://www.sma.de/en/products/energy-management/data-manager-m-10",
  "default_configuration": {
    "protocol": "modbus_tcp",
    "port": 502,
    "unit_id": 2,
    "addressing": "zero_based",
    "byte_order": "BigEndian",
    "word_order": "HighFirst"
  },
  "coils": [],
  "discrete_inputs": [],
  "input_registers": [
    {
      "address": 30193,
      "count": 2,
      "name": "UTC system time",
      "data_type": "UInt32",
      "units": "s",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 30201,
      "count": 2,
      "name": "Current state of health (5-minute value): device status",
      "data_type": "UInt32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 30233,
      "count": 2,
      "name": "Accumulated connected power of the PV inverter",
      "data_type": "UInt32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 30775,
      "count": 2,
      "name": "Current PV feed-in active power on all line conductors",
      "data_type": "Int32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 30805,
      "count": 2,
      "name": "Reactive power on all line conductors",
      "data_type": "Int32",
      "units": "VAr",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 30845,
      "count": 2,
      "name": "Current battery state of charge",
      "data_type": "UInt32",
      "units": "%",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31235,
      "count": 2,
      "name": "Power limitation via digital input",
      "data_type": "UInt32",
      "units": "%",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31237,
      "count": 2,
      "name": "Setpoint of active power limitation P via analog input",
      "data_type": "UInt32",
      "units": "%",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31239,
      "count": 2,
      "name": "PV power limitation via communication",
      "data_type": "UInt32",
      "units": "%",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31241,
      "count": 2,
      "name": "PV power limitation via communication for direct marketing",
      "data_type": "UInt32",
      "units": "%",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31243,
      "count": 2,
      "name": "Maximum active power setpoint",
      "data_type": "UInt32",
      "units": "%",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31245,
      "count": 2,
      "name": "Internal PV power limitation",
      "data_type": "UInt32",
      "units": "%",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31249,
      "count": 2,
      "name": "Active power of system at PCC",
      "data_type": "Int32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31251,
      "count": 2,
      "name": "Reactive power of system at PCC",
      "data_type": "Int32",
      "units": "VAr",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31393,
      "count": 2,
      "name": "Current battery charge",
      "data_type": "UInt32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Sent as NaN when no battery inverter is installed in the system."
    },
    {
      "address": 31395,
      "count": 2,
      "name": "Current battery discharge",
      "data_type": "UInt32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Sent as NaN when no battery inverter is installed in the system."
    },
    {
      "address": 31503,
      "count": 2,
      "name": "Feed-in of power into grid, line conductor L1 at PCC",
      "data_type": "Int32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31505,
      "count": 2,
      "name": "Feed-in of power into grid, line conductor L2 at PCC",
      "data_type": "Int32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31507,
      "count": 2,
      "name": "Feed-in of power into grid, line conductor L3 at PCC",
      "data_type": "Int32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31509,
      "count": 2,
      "name": "Feed-in of reactive power into grid, line conductor L1 at PCC",
      "data_type": "Int32",
      "units": "VAr",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31511,
      "count": 2,
      "name": "Feed-in of reactive power into grid, line conductor L2 at PCC",
      "data_type": "Int32",
      "units": "VAr",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31513,
      "count": 2,
      "name": "Feed-in of reactive power into grid, line conductor L3 at PCC",
      "data_type": "Int32",
      "units": "VAr",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31515,
      "count": 2,
      "name": "System voltage, line conductor L1 - L2 at PCC",
      "data_type": "UInt32",
      "units": "V",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R",
      "description": "Sent as NaN when no power analyzer is connected."
    },
    {
      "address": 31517,
      "count": 2,
      "name": "System voltage, line conductor L2 - L3 at PCC",
      "data_type": "UInt32",
      "units": "V",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R",
      "description": "Sent as NaN when no power analyzer is connected."
    },
    {
      "address": 31519,
      "count": 2,
      "name": "System voltage, line conductor L3 - L1 at PCC",
      "data_type": "UInt32",
      "units": "V",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R",
      "description": "Sent as NaN when no power analyzer is connected."
    },
    {
      "address": 31521,
      "count": 2,
      "name": "Mean value of grid voltage L-N at PCC",
      "data_type": "UInt32",
      "units": "V",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R",
      "description": "Sent as NaN when no power analyzer is connected."
    },
    {
      "address": 31523,
      "count": 2,
      "name": "Mean value of grid voltage L-L at PCC",
      "data_type": "UInt32",
      "units": "V",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R",
      "description": "Sent as NaN when no power analyzer is connected."
    },
    {
      "address": 31525,
      "count": 2,
      "name": "Displacement power factor at PCC",
      "data_type": "Int32",
      "units": "",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R",
      "description": "Sent as NaN when no power analyzer is connected."
    },
    {
      "address": 31527,
      "count": 2,
      "name": "Grid frequency at PCC",
      "data_type": "UInt32",
      "units": "Hz",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R",
      "description": "Sent as NaN when no power analyzer is connected."
    },
    {
      "address": 31529,
      "count": 2,
      "name": "System voltage, line conductor L1 at PCC",
      "data_type": "UInt32",
      "units": "V",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31531,
      "count": 2,
      "name": "System voltage, line conductor L2 at PCC",
      "data_type": "UInt32",
      "units": "V",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31533,
      "count": 2,
      "name": "System voltage, line conductor L3 at PCC",
      "data_type": "UInt32",
      "units": "V",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31535,
      "count": 2,
      "name": "System current, line conductor L1 at PCC",
      "data_type": "Int32",
      "units": "A",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31537,
      "count": 2,
      "name": "System current, line conductor L2 at PCC",
      "data_type": "Int32",
      "units": "A",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31539,
      "count": 2,
      "name": "System current, line conductor L3 at PCC",
      "data_type": "Int32",
      "units": "A",
      "scale_factor": 0.001,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31545,
      "count": 2,
      "name": "Power value of the generating system when all generating units are in operation",
      "data_type": "UInt32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31547,
      "count": 2,
      "name": "Available active power of all inverters",
      "data_type": "UInt32",
      "units": "W",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 32185,
      "count": 2,
      "name": "Internal PV reactive power limitation",
      "data_type": "Int32",
      "units": "%",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R",
      "description": "Sent as NaN when no internal PV reactive power limitation is set."
    },
    {
      "address": 32187,
      "count": 2,
      "name": "Available underexcited reactive power",
      "data_type": "Int32",
      "units": "VAr",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 32189,
      "count": 2,
      "name": "Available overexcited reactive power",
      "data_type": "Int32",
      "units": "VAr",
      "scale_factor": 1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 32191,
      "count": 2,
      "name": "Theoretically available power output",
      "data_type": "UInt32",
      "units": "W",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R",
      "description": "Values marked * require the module-temperature, ambient-temperature and irradiation sensors to be configured and activated in the Data Manager."
    },
    {
      "address": 32193,
      "count": 2,
      "name": "Availability of generating system",
      "data_type": "UInt32",
      "units": "%",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Compliant with Pbinst/Pinst per VDE AR-N 4110 (Table C2)."
    },
    {
      "address": 32195,
      "count": 2,
      "name": "External active power limitation",
      "data_type": "UInt32",
      "units": "%",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R",
      "description": "Sent as NaN when the function is disabled."
    },
    {
      "address": 32197,
      "count": 2,
      "name": "Available underexcited reactive power",
      "data_type": "Int32",
      "units": "%",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 32199,
      "count": 2,
      "name": "Available overexcited reactive power",
      "data_type": "Int32",
      "units": "%",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 34609,
      "count": 2,
      "name": "Ambient temperature",
      "data_type": "Int32",
      "units": "°C",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Sensor input; requires a sensor configured and activated in the Data Manager."
    },
    {
      "address": 34615,
      "count": 2,
      "name": "Global wind speed (m/s)",
      "data_type": "UInt32",
      "units": "m/s",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 34621,
      "count": 2,
      "name": "PV module temperature",
      "data_type": "Int32",
      "units": "°C",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Sensor input; requires a sensor configured and activated in the Data Manager."
    },
    {
      "address": 34623,
      "count": 2,
      "name": "Total irradiation on the external irradiation sensor/pyranometer",
      "data_type": "UInt32",
      "units": "W/m²",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Sensor input; requires a sensor configured and activated in the Data Manager."
    },
    {
      "address": 34625,
      "count": 2,
      "name": "Ambient temperature (°F)",
      "data_type": "Int32",
      "units": "°F",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 34627,
      "count": 2,
      "name": "Ambient temperature (K)",
      "data_type": "Int32",
      "units": "K",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 34629,
      "count": 2,
      "name": "PV module temperature (°F)",
      "data_type": "Int32",
      "units": "°F",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 34631,
      "count": 2,
      "name": "PV module temperature (K)",
      "data_type": "Int32",
      "units": "K",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 34633,
      "count": 2,
      "name": "Global wind speed (km/h)",
      "data_type": "UInt32",
      "units": "km/h",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 34635,
      "count": 2,
      "name": "Global wind speed (mph)",
      "data_type": "UInt32",
      "units": "mph",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 34653,
      "count": 2,
      "name": "Digital input group 1 (status code)",
      "data_type": "UInt32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Bit-coded status of the four digital inputs: 311 = open; 2055 = DI1; 2056 = DI1 DI2; 2057 = DI1 DI2 DI3; 2058 = DI1 DI2 DI3 DI4; 2059 = DI1 DI2 DI4; 2060 = DI1 DI3; 2061 = DI1 DI3 DI4; 2062 = DI1 DI4; 2063 = DI2; 2064 = DI2 DI3; 2065 = DI2 DI3 DI4; 2066 = DI2 DI4; 2067 = DI3; 2068 = DI3 DI4; 2069 = DI4."
    }
  ],
  "holding_registers": [
    {
      "address": 40018,
      "count": 2,
      "name": "Quick shut-down of the inverters",
      "data_type": "UInt32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Writable; 311 = standby, 1467 = start, 1749 = full stop (AC and DC sides)."
    },
    {
      "address": 40493,
      "count": 1,
      "name": "Direct marketer: active power setpoint P",
      "data_type": "Int16",
      "units": "%",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "RW",
      "description": "Writable; -100 % to -1 % = load, 0 % = no active power, above 0 % up to 100 % = generator."
    },
    {
      "address": 41167,
      "count": 2,
      "name": "Manually set active power limit for the entire system",
      "data_type": "UInt32",
      "units": "%",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "RW",
      "description": "Writable; limits the entire system."
    }
  ],
  "combined_registers": [],
  "notes": "Source: SMA Solar Technology AG \"SMA Modbus Interface - SMA Data Manager\", technical information EDMx-Modbus-TI-en-16, version 1.6, status 2022-03-09, vendor-hosted at https://files.sma.de/downloads/EDMx-Modbus-TI-en-16.pdf. Valid for EDML-10 (Data Manager L), EDMM-10 / EDMM-US-10 (Data Manager M) and EDMM-10.A (Data Manager M Lite). The document describes three unit IDs: 1 = the communication product's identity, 2 = the system (plant) and 3-247 = the managed devices; this seed stores the unit-2 system table and sets unit_id 2, port 502 (section 3.5). ADR values are the decimal wire addresses, so addressing is zero_based. The document lists function codes 0x03 and 0x04 without assigning one to the tables; as in the library's other SMA seeds, the 30xxx measured values are stored as input registers and the 40xxx parameters as holding registers. Word order HighFirst follows the SMA profile (32-bit values high word first). Deliberate omissions: every U64 row (30513 total grid feed-in, 30517 daily grid feed-in, 31397/31401 battery charge/discharge) because the app has no 64-bit integer; the unit-1 identity block (30001-30193) and unit 1's own UTC row; the unit 3-247 device parameters, which belong to the inverter entries; and the EDMM-10.A note that all listed points may answer NaN on the M Lite. Sensor values (34609-34635) require the sensors to be configured and activated in the Data Manager; the PCC voltage, current and power-factor rows require a power analyzer. 30193 UTC system time appears in both the unit-1 and unit-2 tables and is kept once."
}
