sensors

SNMP Voltage, Current & Power OIDs (ENTITY-SENSOR)

The SNMP OIDs for electrical sensors — voltsDC, voltsAC, amperes, watts and hertz via ENTITY-SENSOR-MIB, with scale handling and PDU/UPS power notes.

By the SNMP Monitoring team · Reviewed July 2026

Volts, amps and watts all come out of one place in standard SNMP — the ENTITY-SENSOR-MIB — separated only by the sensor's type. Read entPhySensorType and it tells you whether the reading is voltsDC, voltsAC, amperes, watts or hertz; read entPhySensorValue and apply the scale, and you have a real electrical number. This page is the paste-ready reference for all of them, plus where per-outlet and UPS power data live (spoiler: their own MIBs).

The "how do I alert on a sagging rail or a failed PSU" side is on the twins: monitor voltage and monitor power supply. Hubs: sensors, all OIDs.

ENTITY-SENSOR electrical types

Every electrical reading is a row in the generic sensor table at 1.3.6.1.2.1.99.1.1.1, distinguished by entPhySensorType:

QuantityentPhySensorTypeUnit
DC voltagevoltsDCVolts (often scaled milli)
AC voltagevoltsACVolts
CurrentamperesAmps (often scaled milli)
PowerwattsWatts
FrequencyhertzHz

All share the same columns: the value at entPhySensorValue (1.3.6.1.2.1.99.1.1.1.4), the multiplier at entPhySensorScale (.2), decimal places at entPhySensorPrecision (.3), and status at entPhySensorOperStatus (.5). So the method to read a voltage is identical to reading a wattage — only the type differs.

Applying scale

Electrical values lean on scale harder than most, because voltage and current are frequently reported in milli units. The decode:

  1. Read entPhySensorType (.1) to know the quantity and base unit.
  2. Read entPhySensorScale (.2) — the SI multiplier (milli, units, kilo…).
  3. Read entPhySensorPrecision (.3) — decimal places.
  4. Read entPhySensorValue (.4) — the raw integer.
  5. Apply both: the real value = entPhySensorValue × 10^(−precision), then interpreted in the scale's unit.

Worked case: a voltsDC sensor reads 12000 at scale milli → 12000 mV = 12.000 V. Get the scale wrong and a 12 V rail reads as 12,000 V or 0.012 V — both obviously nonsense, which is your cue that the scale wasn't applied. Current behaves the same way; a 2500 at scale milli amperes is 2.5 A.

PDU & UPS power OIDs

The generic ENTITY-SENSOR table covers board-level electrical sensors, but two common power sources have their own homes:

  • PDU per-outlet current and energy live in vendor PDU MIBs under 1.3.6.1.4.1 — per-outlet amps, per-phase load, and cumulative kWh energy are vendor objects, not standard ones. See PDU OIDs.
  • UPS input/output voltage, current and load live in the standard UPS-MIB at 1.3.6.1.2.1.33 — a dedicated MIB with its own input and output groups. See UPS OIDs.

So "what's my per-outlet draw" is a PDU-MIB question and "what's my UPS output load" is a UPS-MIB question — neither is in the ENTITY-SENSOR table. Knowing which MIB owns which electrical value saves a lot of fruitless walking.

Worth spelling out why the electrical world is split across three homes, because it trips people up. ENTITY-SENSOR is deliberately generic — it describes "a sensor of type watts reading N" without knowing or caring whether that sensor is on a line card, a PSU, or a fan controller. That generality is great for board-level rails but useless for the relationships a PDU or UPS cares about: which outlet, which phase, which battery bank, energy accumulated over time. Those relationships need a purpose-built table, which is exactly what the PDU vendor MIBs and the UPS-MIB provide. So the rule of thumb is about structure, not just location: reach for ENTITY-SENSOR when you want a raw electrical reading off a component, and reach for the device MIB when you need that reading in the context of an outlet, a phase, or a battery. Mixing them up — trying to find per-outlet amps in ENTITY-SENSOR, say — is the most common reason a power-monitoring walk comes back empty.

Worked snmpwalk example

Walk the sensor table and pick out the electrical entries:

snmpwalk -v2c -c <RO_string> <host> 1.3.6.1.2.1.99.1.1.1
ENTITY-SENSOR-MIB::entPhySensorType.50 = INTEGER: voltsDC(4)
ENTITY-SENSOR-MIB::entPhySensorScale.50 = INTEGER: milli(8)
ENTITY-SENSOR-MIB::entPhySensorValue.50 = INTEGER: 12040
ENTITY-SENSOR-MIB::entPhySensorType.51 = INTEGER: watts(6)
ENTITY-SENSOR-MIB::entPhySensorValue.51 = INTEGER: 210

Sensor .50 is a 12 V rail reading 12040 mV = 12.040 V; sensor .51 is a power draw of 210 W. <RO_string> is a placeholder — allowlist the sensor prefix you poll and keep live communities out of committed scripts.

snmpwalk output of voltsDC and watts ENTITY-SENSOR values

Vendor power OIDs

Beyond ENTITY-SENSOR, many platforms expose richer, labelled electrical objects through their enterprise MIBs under 1.3.6.1.4.1 — named rails, per-PSU wattage, energy accumulators. These differ per device, so this reference doesn't fabricate a leaf; learn the ENTITY-SENSOR pattern here and pull the exact labelled objects from the device pages for your hardware. Walk the tree and confirm the type and scale before trusting any vendor electrical OID.

How to monitor power & voltage (how-to)

Reference stops here. The alerting logic — rail tolerance bands, brownout detection, PSU redundancy loss — is on the twins: monitor voltage and monitor power supply. Related references: PDU OIDs, UPS OIDs, the OID catalog, and glossary.

Frequently asked questions

What OID is voltage in SNMP?

Voltage is an ENTITY-SENSOR-MIB sensor typed voltsDC or voltsAC, with the reading in entPhySensorValue (1.3.6.1.2.1.99.1.1.1.4). Apply entPhySensorScale (.2) — voltage is commonly reported in millivolts, so a raw 12000 at scale milli is 12.000 V. UPS input/output voltages are in the UPS-MIB instead.

What OID is power in watts?

Power is an ENTITY-SENSOR sensor typed watts, read from the same entPhySensorValue column with its scale applied. For per-outlet or per-PSU wattage and cumulative energy (kWh), look to the vendor PDU MIB or the platform's enterprise MIB rather than the generic sensor table.

Where is per-outlet current in SNMP?

In the PDU's vendor MIB under 1.3.6.1.4.1, not in a standard table. Per-outlet amps, per-phase load and cumulative energy are vendor-specific objects — see the PDU OIDs reference and the vendor's MIB for the exact leaves.

How do I apply the sensor scale?

Read entPhySensorScale and entPhySensorPrecision alongside the value, then compute entPhySensorValue × 10^(−precision) and interpret it in the scale's unit. For a millivolt-scaled reading, that means dividing to volts — a 12040 at scale milli is 12.040 V.

Key takeaways

  • Volts, amps, watts, hertz all come from ENTITY-SENSOR — distinguished by entPhySensorType.
  • Value at entPhySensorValue (1.3.6.1.2.1.99.1.1.1.4); apply scale — electrical values are often milli.
  • voltsDC/voltsAC/amperes/watts/hertz all read the same way; only the type differs.
  • Per-outlet current/energy = PDU vendor MIB; UPS input/output = UPS-MIB (1.3.6.1.2.1.33).
  • Vendor rail/outlet leaves are device-specific — walk and confirm, don't fabricate.
  • Procedures: voltage how-to, PSU how-to; catalog: sensors/all.

Monitor it from outside the network

SNMP only tells you a box is healthy while something is still asking. ostr.io polls your endpoints externally and fires email + SMS alerts the moment a reading crosses your line — or the agent goes silent.