{
 "manufacturer": "Fronius",
 "manufacturer_slug": "fronius",
 "model": "Symo / Primo / Galvo / Symo Hybrid via Datamanager (SunSpec int+SF)",
 "model_slug": "datamanager-sunspec-int-sf",
 "short_model": "Fronius Datamanager int+SF",
 "aliases": [
  "Fronius Symo",
  "Fronius Primo",
  "Fronius Galvo",
  "Fronius Symo Hybrid",
  "Fronius IG Plus",
  "Datamanager 2.0"
 ],
 "equipment_type": "Solar inverter",
 "applies_to": "Fronius inverters read through a Fronius Datamanager (1.0/2.0 card or Hybridmanager) with SunSpec Model Type set to int+SF; model 124 present on Symo Hybrid.",
 "summary": "The Fronius Datamanager publishes each connected inverter as a SunSpec device (unit ID = inverter number) over Modbus TCP, and over RTU on Datamanager 2.0. With the int+SF model type the inverter model is 101/102/103 followed by nameplate, settings, status, immediate controls, multiple-MPPT and storage models. This map covers the 16-bit measurements, state, ratings and every writable control register.",
 "transport": [
  "TCP",
  "RTU"
 ],
 "defaults": {
  "unit_id": null,
  "baud": null,
  "parity": null,
  "data_bits": null,
  "stop_bits": null,
  "tcp_port": 502
 },
 "addressing": {
  "convention": "1-based",
  "note": "Fronius numbers registers from 1 (SunSpec base register 40001) and says to send the register number minus one: register 40001 is requested at address 40000 (0x9C40). The manual's RTU example reads register 40005 with address bytes 9C 44. Fronius registers 212-217 follow the same rule (212 -> 211)."
 },
 "default_word_order": null,
 "firmware": "Register map archive version 1.1.7-0 (int+SF map with Symo Hybrid model 124); manual 42,0410,2049 rev. 033-24022026.",
 "source": {
  "title": "Fronius Datamanager Modbus TCP & RTU (operating instructions) + Inverter_Register_Map_Int&SF_v1.0_with_SYMOHYBRID_MODEL_124.xlsx",
  "doc_number": "42,0410,2049 (033-24022026)",
  "revision_date": "2026-02",
  "url": "https://www.fronius.com/en/~/downloads/Solar%20Energy/Operating%20Instructions/42,0410,2049.pdf",
  "pages": "PDF English part pp. 62-92 (addressing p. 67-69, unavailable values p. 70, scale factors p. 72-73, settings p. 74-78, models p. 79-92); register table = XLSX sheet 'Complete Map' in https://www.fronius.com/en/~/downloads/Solar%20Energy/Operating%20Instructions/SE_EI_Modbus_Sunspec_Maps_State_Codes_Events_EN.zip"
 },
 "notes": [
  "Register table comes from Fronius' official XLSX in the 'Modbus Sunspec Maps, State Codes and Events' ZIP (same download page as the PDF); behaviour and settings come from the PDF.",
  "All addresses here assume SunSpec Model Type = int+SF. With the default float setting the inverter model is 111-113 and every later model starts 10 registers higher (e.g. nameplate 40131 instead of 40121).",
  "Fronius warns the map is dynamic: the correct method is to walk the SunSpec model chain from 40001 (ID, L) and use offsets. The fixed addresses below are the published layout for a single inverter.",
  "Word order: neither the PDF nor the XLSX states the order of 32/64-bit values, so every 32/64-bit register is left out: SID 40001-40002, WH lifetime energy 40094-40095, Evt1/Evt2/EvtVnd1-4 40110-40121, ActWh 40187-40190, StActCtl 40217-40218, Tms 40223-40224, model 160 Evt/DCWH/Tms, and site totals F_Site_Power/Energy 500-513. The SID is documented as 0x53756E53 'SunS', which suggests high word first, but this is not stated.",
  "Registers marked 'Not supported' in the XLSX are left out (temperatures, VMax/VMin, quadrant 2/3 ratings, ride-through, Ris, StorAval, InBatV, and similar).",
  "Unsupported values read as: int16 0x8000, uint16/enum16/bitfield16 0xFFFF, sunssf 0x8000. Some 'supported' points also return these, e.g. phase B/C on single-phase inverters, DCA/DCV on multi-input inverters (use model 160).",
  "The XLSX notes that WH (lifetime energy) may be imprecise; ActWh in model 122 is the alternative (both 32/64-bit, omitted here).",
  "Access is taken from the XLSX R/W column. VAMax (40157) and WMaxLimPct_RmpTms (40236) are marked RW but list only function code 0x03; the PDF says writes to unsupported RmpTms are ignored (ramp supported from Datamanager 3.13.3-2 / Hybridmanager 1.11.3-2).",
  "Model 124 (storage) is only meaningful on Fronius Symo Hybrid with battery.",
  "The PDF describes PVConn bit 1 as 'responsive'; the XLSX calls it 'Available'. The XLSX wording is used.",
  "Energy meters (Fronius Smart Meter) are published at unit ID 240-244 with their own common block and meter model 201-203 starting again at 40001; they are not part of this inverter map."
 ],
 "registers": [
  {
   "table": "holding_register",
   "address": 211,
   "documented": "212",
   "name": "F_Delete_Data",
   "description": "Write 0xFFFF to erase ratings stored for this inverter.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 212,
   "documented": "213",
   "name": "F_Store_Data",
   "description": "Write 0xFFFF to permanently store nameplate/settings ratings of all inverters.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 213,
   "documented": "214",
   "name": "F_Active_State_Code",
   "description": "Fronius state code currently shown by the 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": 214,
   "documented": "215",
   "name": "F_Reset_All_Event_Flags",
   "description": "Write 0xFFFF to clear event flags and the active state code.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 215,
   "documented": "216",
   "name": "F_ModelType",
   "description": "Selects float or int+SF models; write 1 or 2, then 6 to confirm.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "RW",
   "values": {
    "1": "Float models (111-113 / 211-213)",
    "2": "Integer + SF models (101-103 / 201-203)"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 216,
   "documented": "217",
   "name": "F_Storage_Restrictions_View_Mode",
   "description": "Whether model 124 reports local (Modbus) or system-wide storage limits.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "RW",
   "values": {
    "0": "Local (default)",
    "1": "Global"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40002,
   "documented": "40003",
   "name": "Common ID",
   "description": "Model ID of this block.",
   "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": "40004",
   "name": "Common L",
   "description": "Length of this block in registers.",
   "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": "40005",
   "name": "Mn",
   "description": "Manufacturer name, reads Fronius.",
   "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": "40021",
   "name": "Md",
   "description": "Inverter model name.",
   "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": 40036,
   "documented": "40037",
   "name": "Opt",
   "description": "Options string (Datamanager firmware on Datamanager units).",
   "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": 40044,
   "documented": "40045",
   "name": "Vr",
   "description": "Inverter software 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": 40052,
   "documented": "40053",
   "name": "SN",
   "description": "Serial number (may fall back to a controller ID).",
   "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": "40069",
   "name": "DA",
   "description": "Modbus device address (unit ID).",
   "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": "40070",
   "name": "Inverter ID",
   "description": "Model ID of this block.",
   "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": "40071",
   "name": "Inverter L",
   "description": "Length of this block in registers.",
   "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": "40072",
   "name": "A",
   "description": "Total 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": 40072,
   "documented": "40073",
   "name": "AphA",
   "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": "40074",
   "name": "AphB",
   "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": "40075",
   "name": "AphC",
   "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": "40076",
   "name": "A_SF",
   "description": "Scale factor (power of ten) for A.",
   "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": "40077",
   "name": "PPVphAB",
   "description": "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": "40078",
   "name": "PPVphBC",
   "description": "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": "40079",
   "name": "PPVphCA",
   "description": "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": "40080",
   "name": "PhVphA",
   "description": "Phase A to neutral voltage.",
   "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": "40081",
   "name": "PhVphB",
   "description": "Phase B to neutral voltage.",
   "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": "40082",
   "name": "PhVphC",
   "description": "Phase C to neutral voltage.",
   "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": "40083",
   "name": "V_SF",
   "description": "Scale factor (power of ten) for V.",
   "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": "40084",
   "name": "W",
   "description": "AC active 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": "40085",
   "name": "W_SF",
   "description": "Scale factor (power of ten) for W.",
   "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": "40086",
   "name": "Hz",
   "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": "40087",
   "name": "Hz_SF",
   "description": "Scale factor (power of ten) for Hz.",
   "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": "40088",
   "name": "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": "40089",
   "name": "VA_SF",
   "description": "Scale factor (power of ten) for VA.",
   "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": "40090",
   "name": "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": "40091",
   "name": "VAr_SF",
   "description": "Scale factor (power of ten) for VAr.",
   "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": "40092",
   "name": "PF",
   "description": "Power factor.",
   "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": "40093",
   "name": "PF_SF",
   "description": "Scale factor (power of ten) for PF.",
   "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": "40096",
   "name": "WH_SF",
   "description": "Scale factor (power of ten) for WH.",
   "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": 40096,
   "documented": "40097",
   "name": "DCA",
   "description": "DC input current (single-input units only).",
   "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": "40098",
   "name": "DCA_SF",
   "description": "Scale factor (power of ten) for DCA.",
   "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": "40099",
   "name": "DCV",
   "description": "DC input voltage (single-input units only).",
   "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": "40100",
   "name": "DCV_SF",
   "description": "Scale factor (power of ten) for DCV.",
   "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": "40101",
   "name": "DCW",
   "description": "Total 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": "40102",
   "name": "DCW_SF",
   "description": "Scale factor (power of ten) for DCW.",
   "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": "40108",
   "name": "St",
   "description": "SunSpec operating state.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": {
    "1": "Off",
    "2": "Sleeping (auto shutdown)",
    "3": "Starting",
    "4": "Producing normally (MPPT)",
    "5": "Throttled (power reduction)",
    "6": "Shutting down",
    "7": "Fault",
    "8": "Standby"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40108,
   "documented": "40109",
   "name": "StVnd",
   "description": "Fronius operating state, including codes 9-13.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": {
    "1": "Off",
    "2": "Sleeping (auto shutdown)",
    "3": "Starting",
    "4": "Producing normally (MPPT)",
    "5": "Throttled (power reduction)",
    "6": "Shutting down",
    "7": "Fault",
    "8": "Standby",
    "9": "No Solar Net bus init",
    "10": "No communication with inverter",
    "11": "Solar Net overcurrent",
    "12": "Bootloader (updating)",
    "13": "AFCI event (arc detected)"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40121,
   "documented": "40122",
   "name": "Nameplate ID",
   "description": "Model ID of this block.",
   "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": "40123",
   "name": "Nameplate L",
   "description": "Length of this block in registers.",
   "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": "40124",
   "name": "DERTyp",
   "description": "Device type; 4 = PV device.",
   "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": 40124,
   "documented": "40125",
   "name": "WRtg",
   "description": "Rated continuous active power.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40125
   },
   "units": "W",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40125,
   "documented": "40126",
   "name": "WRtg_SF",
   "description": "Scale factor (power of ten) for WRtg.",
   "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": 40126,
   "documented": "40127",
   "name": "VARtg",
   "description": "Rated apparent power.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40127
   },
   "units": "VA",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40127,
   "documented": "40128",
   "name": "VARtg_SF",
   "description": "Scale factor (power of ten) for VARtg.",
   "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": 40128,
   "documented": "40129",
   "name": "VArRtgQ1",
   "description": "Rated reactive power, quadrant 1.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40132
   },
   "units": "var",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40131,
   "documented": "40132",
   "name": "VArRtgQ4",
   "description": "Rated reactive power, quadrant 4.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40132
   },
   "units": "var",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40132,
   "documented": "40133",
   "name": "VArRtg_SF",
   "description": "Scale factor (power of ten) for VArRtg.",
   "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": 40133,
   "documented": "40134",
   "name": "ARtg",
   "description": "Rated AC current.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40134
   },
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40134,
   "documented": "40135",
   "name": "ARtg_SF",
   "description": "Scale factor (power of ten) for ARtg.",
   "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": 40135,
   "documented": "40136",
   "name": "PFRtgQ1",
   "description": "Minimum power factor capability, quadrant 1.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40139
   },
   "units": "cos()",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40138,
   "documented": "40139",
   "name": "PFRtgQ4",
   "description": "Minimum power factor capability, quadrant 4.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40139
   },
   "units": "cos()",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40139,
   "documented": "40140",
   "name": "PFRtg_SF",
   "description": "Scale factor (power of ten) for PFRtg.",
   "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": 40140,
   "documented": "40141",
   "name": "WHRtg",
   "description": "Rated storage energy.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40141
   },
   "units": "Wh",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40141,
   "documented": "40142",
   "name": "WHRtg_SF",
   "description": "Scale factor (power of ten) for WHRtg.",
   "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": 40144,
   "documented": "40145",
   "name": "MaxChaRte",
   "description": "Maximum battery charge power.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40145
   },
   "units": "W",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40145,
   "documented": "40146",
   "name": "MaxChaRte_SF",
   "description": "Scale factor (power of ten) for MaxChaRte.",
   "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": 40146,
   "documented": "40147",
   "name": "MaxDisChaRte",
   "description": "Maximum battery discharge power.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40147
   },
   "units": "W",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40147,
   "documented": "40148",
   "name": "MaxDisChaRte_SF",
   "description": "Scale factor (power of ten) for MaxDisChaRte.",
   "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": 40149,
   "documented": "40150",
   "name": "Settings ID",
   "description": "Model ID of this block.",
   "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": 40150,
   "documented": "40151",
   "name": "Settings L",
   "description": "Length of this block in registers.",
   "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": 40151,
   "documented": "40152",
   "name": "WMax",
   "description": "Maximum active power setting.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40171
   },
   "units": "W",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40152,
   "documented": "40153",
   "name": "VRef",
   "description": "Reference voltage at the grid connection point.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40172
   },
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40153,
   "documented": "40154",
   "name": "VRefOfs",
   "description": "Voltage offset between grid connection point and inverter.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40173
   },
   "units": "V",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40156,
   "documented": "40157",
   "name": "VAMax",
   "description": "Maximum apparent power setting.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40175
   },
   "units": "VA",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40157,
   "documented": "40158",
   "name": "VARMaxQ1",
   "description": "Reactive power limit, quadrant 1.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40176
   },
   "units": "var",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40160,
   "documented": "40161",
   "name": "VARMaxQ4",
   "description": "Reactive power limit, quadrant 4.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40176
   },
   "units": "var",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40162,
   "documented": "40163",
   "name": "PFMinQ1",
   "description": "Minimum power factor setting, quadrant 1.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40178
   },
   "units": "cos()",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40165,
   "documented": "40166",
   "name": "PFMinQ4",
   "description": "Minimum power factor setting, quadrant 4.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40178
   },
   "units": "cos()",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40171,
   "documented": "40172",
   "name": "WMax_SF",
   "description": "Scale factor (power of ten) for WMax.",
   "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": 40172,
   "documented": "40173",
   "name": "VRef_SF",
   "description": "Scale factor (power of ten) for VRef.",
   "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": 40173,
   "documented": "40174",
   "name": "VRefOfs_SF",
   "description": "Scale factor (power of ten) for VRefOfs.",
   "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": 40175,
   "documented": "40176",
   "name": "VAMax_SF",
   "description": "Scale factor (power of ten) for VAMax.",
   "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": 40176,
   "documented": "40177",
   "name": "VARMax_SF",
   "description": "Scale factor (power of ten) for VARMax.",
   "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": 40178,
   "documented": "40179",
   "name": "PFMin_SF",
   "description": "Scale factor (power of ten) for PFMin.",
   "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": 40181,
   "documented": "40182",
   "name": "Status ID",
   "description": "Model ID of this block.",
   "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": 40182,
   "documented": "40183",
   "name": "Status L",
   "description": "Length of this block in registers.",
   "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": 40183,
   "documented": "40184",
   "name": "PVConn",
   "description": "PV inverter connection status bits.",
   "data_type": "BITMAP16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": {
    "0": "Connected",
    "1": "Available",
    "2": "Operating",
    "3": "Test"
   },
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40184,
   "documented": "40185",
   "name": "StorConn",
   "description": "Storage connection status bits.",
   "data_type": "BITMAP16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": {
    "0": "Connected",
    "1": "Available",
    "2": "Operating",
    "3": "Test"
   },
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40185,
   "documented": "40186",
   "name": "ECPConn",
   "description": "Grid feed-in status.",
   "data_type": "BITMAP16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": {
    "0": "Connected to grid (feeding)"
   },
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40218,
   "documented": "40219",
   "name": "TmSrc",
   "description": "",
   "data_type": "STRING",
   "length": 4,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40227,
   "documented": "40228",
   "name": "Controls ID",
   "description": "Model ID of this block.",
   "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": 40228,
   "documented": "40229",
   "name": "Controls L",
   "description": "Length of this block in registers.",
   "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": 40229,
   "documented": "40230",
   "name": "Conn_WinTms",
   "description": "Random start window for connect/disconnect commands.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "Secs",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40230,
   "documented": "40231",
   "name": "Conn_RvrtTms",
   "description": "Fallback timer for the connect/disconnect command; 0 = no fallback.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "Secs",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40231,
   "documented": "40232",
   "name": "Conn",
   "description": "Write 0 for standby (no feed-in), 1 to resume feed-in.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "RW",
   "values": {
    "0": "Disconnected (standby)",
    "1": "Connected (feeding grid)"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40232,
   "documented": "40233",
   "name": "WMaxLimPct",
   "description": "Active power limit as percent of WMax.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40250
   },
   "units": "% WMax",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40233,
   "documented": "40234",
   "name": "WMaxLimPct_WinTms",
   "description": "Random start window for the power limit.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "Secs",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40234,
   "documented": "40235",
   "name": "WMaxLimPct_RvrtTms",
   "description": "Fallback timer for the power limit; restarts on every Modbus message, 0 = none.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "Secs",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40235,
   "documented": "40236",
   "name": "WMaxLimPct_RmpTms",
   "description": "Ramp time to the new power limit.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "Secs",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40236,
   "documented": "40237",
   "name": "WMaxLim_Ena",
   "description": "Starts (1) or ends (0) the power limit.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "RW",
   "values": {
    "0": "Disabled",
    "1": "Enabled"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40237,
   "documented": "40238",
   "name": "OutPFSet",
   "description": "Fixed power factor setpoint (signed, see sign convention).",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40251
   },
   "units": "cos()",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40238,
   "documented": "40239",
   "name": "OutPFSet_WinTms",
   "description": "Random start window for the power factor setpoint.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "Secs",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40239,
   "documented": "40240",
   "name": "OutPFSet_RvrtTms",
   "description": "Fallback timer for the power factor setpoint; 0 = none.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "Secs",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40240,
   "documented": "40241",
   "name": "OutPFSet_RmpTms",
   "description": "Ramp time to the new power factor.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "Secs",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40241,
   "documented": "40242",
   "name": "OutPFSet_Ena",
   "description": "Starts (1) or ends (0) the fixed power factor mode.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "RW",
   "values": {
    "0": "Disabled",
    "1": "Enabled"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40243,
   "documented": "40244",
   "name": "VArMaxPct",
   "description": "Fixed reactive power as percent of VArMax.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40252
   },
   "units": "% VArMax",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40245,
   "documented": "40246",
   "name": "VArPct_WinTms",
   "description": "Random start window for the reactive power setpoint.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "Secs",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40246,
   "documented": "40247",
   "name": "VArPct_RvrtTms",
   "description": "Fallback timer for the reactive power setpoint; 0 = none.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "Secs",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40247,
   "documented": "40248",
   "name": "VArPct_RmpTms",
   "description": "Ramp time to the new reactive power value.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "Secs",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40248,
   "documented": "40249",
   "name": "VArPct_Mod",
   "description": "Reactive power limit mode (read-only).",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": {
    "2": "VAr limit as % of VArMax"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40249,
   "documented": "40250",
   "name": "VArPct_Ena",
   "description": "Starts (1) or ends (0) the fixed reactive power mode.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "RW",
   "values": {
    "0": "Disabled",
    "1": "Enabled"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40250,
   "documented": "40251",
   "name": "WMaxLimPct_SF",
   "description": "Scale factor (power of ten) for WMaxLimPct.",
   "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": 40251,
   "documented": "40252",
   "name": "OutPFSet_SF",
   "description": "Scale factor (power of ten) for OutPFSet.",
   "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": 40252,
   "documented": "40253",
   "name": "VArPct_SF",
   "description": "Scale factor (power of ten) for VArPct.",
   "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": 40253,
   "documented": "40254",
   "name": "MPPT ID",
   "description": "Model ID of this block.",
   "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": 40254,
   "documented": "40255",
   "name": "MPPT L",
   "description": "Length of this block in registers.",
   "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": 40255,
   "documented": "40256",
   "name": "MPPT DCA_SF",
   "description": "Scale factor (power of ten) for DCA.",
   "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": 40256,
   "documented": "40257",
   "name": "MPPT DCV_SF",
   "description": "Scale factor (power of ten) for DCV.",
   "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": 40257,
   "documented": "40258",
   "name": "MPPT DCW_SF",
   "description": "Scale factor (power of ten) for DCW.",
   "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": 40258,
   "documented": "40259",
   "name": "MPPT DCWH_SF",
   "description": "Scale factor (power of ten) for DCWH.",
   "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": 40261,
   "documented": "40262",
   "name": "N",
   "description": "Number of DC inputs reported in this model.",
   "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": 40263,
   "documented": "40264",
   "name": "1_ID",
   "description": "Input number 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": 40264,
   "documented": "40265",
   "name": "1_IDStr",
   "description": "Label of DC input 1.",
   "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": 40272,
   "documented": "40273",
   "name": "1_DCA",
   "description": "DC current of input 1.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40255
   },
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40273,
   "documented": "40274",
   "name": "1_DCV",
   "description": "DC voltage of input 1.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40256
   },
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40274,
   "documented": "40275",
   "name": "1_DCW",
   "description": "DC power of input 1.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40257
   },
   "units": "W",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40280,
   "documented": "40281",
   "name": "1_DCSt",
   "description": "",
   "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": 40283,
   "documented": "40284",
   "name": "2_ID",
   "description": "Input number 2.",
   "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": 40284,
   "documented": "40285",
   "name": "2_IDStr",
   "description": "Label of DC input 2.",
   "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": 40292,
   "documented": "40293",
   "name": "2_DCA",
   "description": "DC current of input 2.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40255
   },
   "units": "A",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40293,
   "documented": "40294",
   "name": "2_DCV",
   "description": "DC voltage of input 2.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40256
   },
   "units": "V",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40294,
   "documented": "40295",
   "name": "2_DCW",
   "description": "DC power of input 2.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40257
   },
   "units": "W",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40300,
   "documented": "40301",
   "name": "2_DCSt",
   "description": "",
   "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": 40303,
   "documented": "40304",
   "name": "Storage ID",
   "description": "Model ID of this block.",
   "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": 40304,
   "documented": "40305",
   "name": "Storage L",
   "description": "Length of this block in registers.",
   "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": 40305,
   "documented": "40306",
   "name": "WchaMax",
   "description": "Reference power for InWRte/OutWRte.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40321
   },
   "units": "W",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40306,
   "documented": "40307",
   "name": "WchaGra",
   "description": "Maximum charge ramp.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40322
   },
   "units": "% WChaMax/sec",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40307,
   "documented": "40308",
   "name": "WdisChaGra",
   "description": "Maximum discharge ramp.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40322
   },
   "units": "% WChaMax/sec",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40308,
   "documented": "40309",
   "name": "StorCtl_Mod",
   "description": "Activates the charge and/or discharge limit window.",
   "data_type": "BITMAP16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "RW",
   "values": null,
   "bits": {
    "0": "Charge limit (InWRte) active",
    "1": "Discharge limit (OutWRte) active"
   },
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40310,
   "documented": "40311",
   "name": "MinRsvPct",
   "description": "Minimum battery reserve, percent of capacity.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40324
   },
   "units": "% WChaMax",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40311,
   "documented": "40312",
   "name": "ChaState",
   "description": "Battery state of charge.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40325
   },
   "units": "% AhrRtg",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40314,
   "documented": "40315",
   "name": "ChaSt",
   "description": "Battery operating status.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "R",
   "values": {
    "1": "Off",
    "2": "Empty",
    "3": "Discharging",
    "4": "Charging",
    "5": "Full",
    "6": "Holding",
    "7": "Testing"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40315,
   "documented": "40316",
   "name": "OutWRte",
   "description": "Discharge limit, percent of WChaMax; negative forces charging.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40328
   },
   "units": "% WChaMax",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40316,
   "documented": "40317",
   "name": "InWRte",
   "description": "Charge limit, percent of WChaMax; negative forces discharging.",
   "data_type": "INT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": {
    "table": "holding_register",
    "address": 40328
   },
   "units": "% WChaMax",
   "access": "RW",
   "values": null,
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40320,
   "documented": "40321",
   "name": "ChaGriSet",
   "description": "Allows or blocks battery charging from the grid.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "",
   "access": "RW",
   "values": {
    "0": "PV only (grid charging disabled)",
    "1": "Grid charging enabled"
   },
   "bits": null,
   "offset": 0
  },
  {
   "table": "holding_register",
   "address": 40321,
   "documented": "40322",
   "name": "WchaMax_SF",
   "description": "Scale factor (power of ten) for WchaMax.",
   "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": 40322,
   "documented": "40323",
   "name": "WchaDisChaGra_SF",
   "description": "Scale factor (power of ten) for WchaDisChaGra.",
   "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": 40324,
   "documented": "40325",
   "name": "MinRsvPct_SF",
   "description": "Scale factor (power of ten) for MinRsvPct.",
   "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": 40325,
   "documented": "40326",
   "name": "ChaState_SF",
   "description": "Scale factor (power of ten) for ChaState.",
   "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": 40328,
   "documented": "40329",
   "name": "InOutWRte_SF",
   "description": "Scale factor (power of ten) for InOutWRte.",
   "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": 40329,
   "documented": "40330",
   "name": "End ID",
   "description": "End-of-map marker, reads 0xFFFF.",
   "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": 40330,
   "documented": "40331",
   "name": "End L",
   "description": "End block length, reads 0.",
   "data_type": "UINT16",
   "length": 1,
   "word_order": null,
   "scale": 1,
   "scale_factor_ref": null,
   "units": "Registers",
   "access": "R",
   "values": null,
   "bits": null,
   "offset": 0
  }
 ],
 "integration": {
  "summary": "Enable 'Data output via Modbus' = tcp in the Datamanager web UI, choose SunSpec Model Type int+SF, and poll unit ID = inverter number (inverter 00 = 100) on port 502. Read registers 40070-40109 (wire addresses 40069-40108) in one request and scale each value with its _SF register.",
  "minimum_registers": [
   {
    "table": "holding_register",
    "address": 40069,
    "why": "Inverter model ID (101/102/103) - confirms int+SF layout"
   },
   {
    "table": "holding_register",
    "address": 40083,
    "why": "AC power"
   },
   {
    "table": "holding_register",
    "address": 40084,
    "why": "AC power scale factor"
   },
   {
    "table": "holding_register",
    "address": 40107,
    "why": "Operating state"
   },
   {
    "table": "holding_register",
    "address": 40232,
    "why": "Active power limit %"
   },
   {
    "table": "holding_register",
    "address": 40236,
    "why": "Enable/disable the power limit"
   },
   {
    "table": "holding_register",
    "address": 40250,
    "why": "Power limit scale factor"
   }
  ],
  "enable": "Datamanager web interface > Settings > Modbus: set 'Data output via Modbus' to tcp (or rtu on Datamanager 2.0, factory default rtu there), pick SunSpec Model Type int+SF, and tick 'Inverter control via Modbus' to allow writes to models 123/124. 'Limit control' can restrict write access to listed IP addresses. Turning Modbus output off cancels any active Modbus control commands.",
  "watchdog": "Each control in model 123 has a *_RvrtTms fallback timer (0-28800 s) that restarts with every Modbus message received; when it expires the control ends and the next-priority control (e.g. dynamic power reduction) takes over. RvrtTms = 0 (default) means the setting stays until disabled.",
  "quirks": [
   "Off-by-one: tables print SunSpec register numbers from 40001; request number minus one (40001 -> 40000).",
   "Changing int+SF/float (web UI or F_ModelType 216) shifts every model after the inverter model by 10 registers; F_ModelType needs the value 6 written immediately after, or it reverts.",
   "Scale factors are not fixed even if a value is listed - read them; they can change with firmware.",
   "Writes to read-only or unsupported registers are silently ignored (no exception); invalid values return exception 3.",
   "Power factor sign follows EEI: negative when over-excited (Q1), positive when under-excited (Q4)."
  ],
  "setup": [
   "Unit ID = inverter number set on the inverter display; inverter number 00 maps to unit ID 100. String Controls start at the String Control offset (default 101); Smart Meters at 240-244; Sensor Cards at 245-247.",
   "TCP port defaults to 502 (port 80 not allowed).",
   "RTU is only on Datamanager 2.0 and cannot be used when a Modbus energy meter is configured; baud and parity are set in the web UI. The Datamanager has no bias resistors.",
   "Demo mode in the web UI returns fixed data for commissioning a master without live inverters."
  ],
  "gotchas": [
   "Use a response timeout of at least 10 s with several inverters on Solar Net, query sequentially, and keep to 6 inverters per Datamanager.",
   "To change an active power limit, write the new WMaxLimPct and then re-write WMaxLim_Ena = 1; all five registers 40233-40237 may be written in one FC16 request.",
   "Event flags can stay latched; write 0xFFFF to F_Reset_All_Event_Flags (215) to clear them."
  ]
 },
 "page": "https://easymodbus.com/modbus-register-maps/fronius/datamanager-sunspec-int-sf",
 "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."
}
