From 5de5d9c251a6197eb7125466940e9c614795b901 Mon Sep 17 00:00:00 2001 From: mchasteen Date: Wed, 25 Feb 2015 16:59:08 -0700 Subject: [PATCH] Added support for non-high precision APC UPS devices. Tested with APC UPS 8000XL. --- includes/discovery/charge/apc.inc.php | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/includes/discovery/charge/apc.inc.php b/includes/discovery/charge/apc.inc.php index 85e7443d7..dce0c298e 100644 --- a/includes/discovery/charge/apc.inc.php +++ b/includes/discovery/charge/apc.inc.php @@ -5,9 +5,10 @@ if ($device['os'] == "apc") $oids = snmp_get($device, "1.3.6.1.4.1.318.1.1.1.2.3.1.0", "-OsqnU", ""); if ($debug) { echo($oids."\n"); } + // Try High-Precision First if ($oids) { - echo("APC UPS Battery Charge"); + echo("APC UPS Battery Charge High Precision"); $type = "apc"; list($oid,$current) = explode(' ',$oids); @@ -22,8 +23,29 @@ if ($device['os'] == "apc") $descr = "Battery Charge"; discover_sensor($valid['sensor'], 'charge', $device, $current_oid, $index, $sensorType, $descr, $precision, '1', $lowlimit, $warnlimit, NULL, $limit , $current_val); - } + } else { // Try to just get capacity + $oids = snmp_get($device, "1.3.6.1.4.1.318.1.1.1.2.2.1.0", "-OsqnU", ""); + if ($debug) { echo($oids."\n"); } + if ($oids) + { + echo("APC UPS Battery Charge"); + $type = "apc"; + list($oid,$current) = explode(' ',$oids); + + $precision = 1; + $sensorType = "apc"; + $current_oid = "1.3.6.1.4.1.318.1.1.1.2.2.1.0"; + $index = 0; + $current_val = $current; + $limit = 100; + $lowlimit = 0; + $warnlimit = 10; + $descr = "Battery Charge"; + + discover_sensor($valid['sensor'], 'charge', $device, $current_oid, $index, $sensorType, $descr, $precision, '1', $lowlimit, $warnlimit, NULL, $limit , $current_val); + } + } } ?>