{
  "spec_version": 1,
  "slug": "eaton-network-m2-ups",
  "manufacturer": "Eaton",
  "model": "5PX / 9PX / 9SX with Network-M2 (INDGW-M2) card",
  "category": "UPS",
  "supplier_url": "https://www.eaton.com/us/en-us/catalog/backup-power-ups-surge-it-power-distribution/eaton-gigabit-network-card---na/network-m2.html",
  "default_configuration": {
    "protocol": "modbus_tcp",
    "port": 502,
    "unit_id": 1,
    "addressing": "one_based",
    "byte_order": "BigEndian",
    "word_order": "HighFirst"
  },
  "coils": [],
  "discrete_inputs": [
    {
      "address": 1,
      "count": 1,
      "name": "On battery",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "TRUE if the UPS is on battery."
    },
    {
      "address": 10,
      "count": 1,
      "name": "On bypass",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "TRUE if the UPS is on bypass."
    },
    {
      "address": 11,
      "count": 1,
      "name": "System normal",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "TRUE if the UPS is operating normally."
    },
    {
      "address": 16,
      "count": 1,
      "name": "UPS off",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "TRUE if the UPS is no longer supplying power to the load."
    },
    {
      "address": 32,
      "count": 1,
      "name": "Static position switch",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "TRUE if the static switch is on."
    },
    {
      "address": 33,
      "count": 1,
      "name": "Critical bus breaker",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "TRUE if the critical bus breaker is closed."
    },
    {
      "address": 34,
      "count": 1,
      "name": "Bypass breaker",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "TRUE if the bypass breaker is closed."
    },
    {
      "address": 35,
      "count": 1,
      "name": "Backfeed breaker",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "TRUE if the backfeed breaker is closed."
    },
    {
      "address": 36,
      "count": 1,
      "name": "Bypass input power",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "TRUE if the bypass input power is available."
    },
    {
      "address": 37,
      "count": 1,
      "name": "Maintenance isolation breaker (MIB)",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "TRUE if the MIB is closed."
    },
    {
      "address": 38,
      "count": 1,
      "name": "Maintenance bypass breaker (MBB)",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "TRUE if the MBB is closed."
    },
    {
      "address": 39,
      "count": 1,
      "name": "Maintenance bypass input (MBP)",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "TRUE if the MBP has input power."
    },
    {
      "address": 112,
      "count": 1,
      "name": "Rectifier status",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "TRUE if the rectifier is on."
    },
    {
      "address": 113,
      "count": 1,
      "name": "Rectifier input status",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "TRUE if rectifier input is present."
    },
    {
      "address": 114,
      "count": 1,
      "name": "Bypass status",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "TRUE if bypass is on."
    },
    {
      "address": 115,
      "count": 1,
      "name": "Bypass input status",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "TRUE if bypass input voltage is out of limits."
    },
    {
      "address": 116,
      "count": 1,
      "name": "Input circuit breaker status (CB1)",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "TRUE if CB1 is closed."
    },
    {
      "address": 117,
      "count": 1,
      "name": "Battery disconnect status",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "TRUE if the battery disconnect is closed."
    },
    {
      "address": 118,
      "count": 1,
      "name": "Inverter disconnect status",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "TRUE if the UPS is online and the inverter is supplying power."
    },
    {
      "address": 119,
      "count": 1,
      "name": "Inverter status",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "TRUE if the inverter is on."
    },
    {
      "address": 120,
      "count": 1,
      "name": "UPM normal",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "TRUE if the UPM is normal."
    },
    {
      "address": 121,
      "count": 1,
      "name": "UPM on battery",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "TRUE if the UPM is on battery."
    },
    {
      "address": 122,
      "count": 1,
      "name": "UPM bypass (off line)",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "TRUE if the UPM is offline."
    },
    {
      "address": 123,
      "count": 1,
      "name": "UPM notice",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "TRUE if there is a UPM warning advisory."
    },
    {
      "address": 124,
      "count": 1,
      "name": "UPM alarm",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "TRUE if there is a UPM major alarm."
    },
    {
      "address": 241,
      "count": 1,
      "name": "Emergency shutdown (EPO) command",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "TRUE if an emergency power-off command was issued."
    },
    {
      "address": 249,
      "count": 1,
      "name": "Bypass not available",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "TRUE if the bypass input voltage is not available for transfer."
    },
    {
      "address": 250,
      "count": 1,
      "name": "Rectifier breaker open",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "TRUE if the rectifier/charger breaker is open."
    },
    {
      "address": 251,
      "count": 1,
      "name": "Battery contactor open",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "TRUE if the battery contactor/breaker is open."
    },
    {
      "address": 252,
      "count": 1,
      "name": "Inverter contactor open",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "TRUE if the inverter output contactor/breaker is open."
    },
    {
      "address": 253,
      "count": 1,
      "name": "Bypass breaker open",
      "data_type": "Binary",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "TRUE if the bypass breaker is open."
    }
  ],
  "input_registers": [
    {
      "address": 1,
      "count": 1,
      "name": "Output voltage A-B",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "RMS voltage measured at the output of the UPS, phase to phase."
    },
    {
      "address": 2,
      "count": 1,
      "name": "Output voltage B-C",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 3,
      "count": 1,
      "name": "Output voltage C-A",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 4,
      "count": 1,
      "name": "Input voltage A-B",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "RMS voltage measured at the utility input of the UPS, phase to phase."
    },
    {
      "address": 5,
      "count": 1,
      "name": "Input voltage B-C",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 6,
      "count": 1,
      "name": "Input voltage C-A",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 7,
      "count": 1,
      "name": "Inverter voltage A-B",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "RMS voltage measured at the output of the inverter, phase to phase."
    },
    {
      "address": 8,
      "count": 1,
      "name": "Inverter voltage B-C",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 9,
      "count": 1,
      "name": "Inverter voltage C-A",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 10,
      "count": 1,
      "name": "Bypass voltage A-B",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "RMS voltage measured at the bypass input, phase to phase."
    },
    {
      "address": 11,
      "count": 1,
      "name": "Bypass voltage B-C",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 12,
      "count": 1,
      "name": "Bypass voltage C-A",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 19,
      "count": 1,
      "name": "Input current phase A",
      "data_type": "UInt16",
      "units": "A",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "RMS input phase current."
    },
    {
      "address": 20,
      "count": 1,
      "name": "Input current phase B",
      "data_type": "UInt16",
      "units": "A",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 21,
      "count": 1,
      "name": "Input current phase C",
      "data_type": "UInt16",
      "units": "A",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 22,
      "count": 1,
      "name": "Output true power",
      "data_type": "UInt16",
      "units": "kW",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Output active power."
    },
    {
      "address": 23,
      "count": 1,
      "name": "Input true power",
      "data_type": "UInt16",
      "units": "kW",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Input active power."
    },
    {
      "address": 24,
      "count": 1,
      "name": "Output apparent power",
      "data_type": "UInt16",
      "units": "kVA",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 25,
      "count": 1,
      "name": "Input apparent power",
      "data_type": "UInt16",
      "units": "kVA",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 26,
      "count": 1,
      "name": "Output power factor",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R",
      "description": "Dimensionless 0.00-1.00; values outside that range mean unknown."
    },
    {
      "address": 27,
      "count": 1,
      "name": "Input power factor",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 0.01,
      "offset": 0,
      "access": "R",
      "description": "Dimensionless 0.00-1.00; values outside that range mean unknown."
    },
    {
      "address": 28,
      "count": 1,
      "name": "Output frequency",
      "data_type": "UInt16",
      "units": "Hz",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 29,
      "count": 1,
      "name": "Input frequency",
      "data_type": "UInt16",
      "units": "Hz",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 30,
      "count": 1,
      "name": "Inverter frequency",
      "data_type": "UInt16",
      "units": "Hz",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 31,
      "count": 1,
      "name": "Bypass frequency",
      "data_type": "UInt16",
      "units": "Hz",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 32,
      "count": 1,
      "name": "DC link voltage",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "DC voltage from rectifier to inverter (service measure)."
    },
    {
      "address": 33,
      "count": 1,
      "name": "Battery current",
      "data_type": "UInt16",
      "units": "A",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Battery current; discharge current is a negative reading."
    },
    {
      "address": 34,
      "count": 1,
      "name": "Battery voltage",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Battery DC voltage."
    },
    {
      "address": 35,
      "count": 1,
      "name": "Battery charge remaining",
      "data_type": "UInt16",
      "units": "%",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Percentage of useful stored energy remaining (0% is fully discharged)."
    },
    {
      "address": 36,
      "count": 1,
      "name": "Battery time remaining",
      "data_type": "UInt16",
      "units": "min",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Estimated minutes until DC undervoltage for the current load and state of charge."
    },
    {
      "address": 37,
      "count": 1,
      "name": "Battery charge time",
      "data_type": "UInt16",
      "units": "min",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Estimated minutes required to fully charge the battery."
    },
    {
      "address": 54,
      "count": 1,
      "name": "Bypass voltage phase A",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Bypass input voltage, phase to neutral."
    },
    {
      "address": 55,
      "count": 1,
      "name": "Bypass voltage phase B",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 56,
      "count": 1,
      "name": "Bypass voltage phase C",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 57,
      "count": 1,
      "name": "Input voltage phase A",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Utility input voltage, phase to neutral."
    },
    {
      "address": 58,
      "count": 1,
      "name": "Input voltage phase B",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 59,
      "count": 1,
      "name": "Input voltage phase C",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 63,
      "count": 1,
      "name": "Ambient temperature",
      "data_type": "UInt16",
      "units": "°C",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 64,
      "count": 1,
      "name": "Heatsink temperature",
      "data_type": "UInt16",
      "units": "°C",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "At the main power unit (normally the inverter)."
    },
    {
      "address": 65,
      "count": 1,
      "name": "Power supply temperature",
      "data_type": "UInt16",
      "units": "°C",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Rectifier, charger, boost converter or control power supply."
    },
    {
      "address": 66,
      "count": 1,
      "name": "Load current phase A",
      "data_type": "UInt16",
      "units": "A",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Output RMS phase current (may be estimated from inverter output)."
    },
    {
      "address": 67,
      "count": 1,
      "name": "Load current phase B",
      "data_type": "UInt16",
      "units": "A",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 68,
      "count": 1,
      "name": "Load current phase C",
      "data_type": "UInt16",
      "units": "A",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 78,
      "count": 1,
      "name": "Battery temperature",
      "data_type": "UInt16",
      "units": "°C",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 79,
      "count": 1,
      "name": "Output voltage phase A",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Output voltage to the load, phase to neutral."
    },
    {
      "address": 80,
      "count": 1,
      "name": "Output voltage phase B",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 81,
      "count": 1,
      "name": "Output voltage phase C",
      "data_type": "UInt16",
      "units": "V",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 82,
      "count": 1,
      "name": "Neutral current",
      "data_type": "UInt16",
      "units": "A",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "RMS current in the output neutral line."
    },
    {
      "address": 83,
      "count": 1,
      "name": "Output power phase A",
      "data_type": "UInt16",
      "units": "kW",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 84,
      "count": 1,
      "name": "Output power phase B",
      "data_type": "UInt16",
      "units": "kW",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    },
    {
      "address": 85,
      "count": 1,
      "name": "Output power phase C",
      "data_type": "UInt16",
      "units": "kW",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R"
    }
  ],
  "holding_registers": [],
  "combined_registers": [],
  "notes": "UPS with the Eaton Gigabit Network Card (Network-M2 / INDGW-M2), which runs the Modbus/TCP server on port 502; the card is available for the 5PX, 9PX and 9SX families and for larger three-phase UPSs. Values come from the Eaton Master Modbus Register Map (document 164201391 Rev F): status bits are input status (function 02, 1xxxx numbering) and meters are input registers (function 04, 3xxxx numbering). Register numbers in this file are the supplier's 1-based register numbers, so register 1 is 30001 (wire address 0). All meter values are integers with the documented scale applied (/10 or /100). The master map is generic: the document warns that not all registers apply to all UPS models. This seed lists the core status bits and the output/input/battery meters; the bar-chart and service-only registers, the UPM 1-8 LED banks, the outlet/group alarm bits and the ESS/high-efficiency bit (input status register 4, which is 'Reserved' in Rev D of the master map and only appears as a named bit in the newer Rev F that is not publicly reachable) are left out."
}
