diff --git a/includes/discovery/current/apc.inc.php b/includes/discovery/current/apc.inc.php index 7e3181699..38055b89e 100644 --- a/includes/discovery/current/apc.inc.php +++ b/includes/discovery/current/apc.inc.php @@ -177,7 +177,6 @@ if ($device['os'] == "apc") $oid_array = array( array('HighPrecOid' => 'upsHighPrecOutputCurrent', 'AdvOid' => 'upsAdvOutputCurrent', 'type' => 'apc', 'index' => 0, 'descr' => 'Current Drawn', 'divisor' => 10, 'mib' => '+PowerNet-MIB'), - array('HighPrecOid' => 'upsHighPrecOutputLoad', 'AdvOid' => 'upsAdvOutputLoad', 'type' => 'apc', 'index' => 0, 'descr' => 'Current Load', 'divisor' => 10, 'mib' => '+PowerNet-MIB'), ); foreach ($oid_array as $item) { $low_limit = NULL; diff --git a/includes/discovery/load.inc.php b/includes/discovery/load.inc.php new file mode 100644 index 000000000..579a69c26 --- /dev/null +++ b/includes/discovery/load.inc.php @@ -0,0 +1,15 @@ + diff --git a/includes/discovery/load/apc.inc.php b/includes/discovery/load/apc.inc.php new file mode 100644 index 000000000..033287246 --- /dev/null +++ b/includes/discovery/load/apc.inc.php @@ -0,0 +1,43 @@ + 'upsHighPrecOutputLoad', 'AdvOid' => 'upsAdvOutputLoad', 'type' => 'apc', 'index' => 0, 'descr' => 'Current Load', 'divisor' => 10, 'mib' => '+PowerNet-MIB'), + ); + foreach ($oid_array as $item) { + $low_limit = NULL; + $low_limit_warn = NULL; + $warn_limit = NULL; + $high_limit = NULL; + $oids = snmp_get($device, $item['HighPrecOid'].'.'.$item['index'], "-OsqnU", $item['mib']); + if (empty($oids)) { + $oids = snmp_get($device, $item['AdvOid'].'.'.$item['index'], "-OsqnU", $item['mib']); + $current_oid = $item['AdvOid']; + } else { + $current_oid = $item['HighPrecOid']; + } + if (!empty($oids)) { + if ($debug) { + print_r($oids); + } + $oids = trim($oids); + if ($oids) { + echo $item['type'] . ' ' . $item['mib'] . ' UPS'; + } + if (stristr($current_oid, "HighPrec")) { + $current = $oids / $item['divisor']; + } else { + $current = $oids; + $item['divisor'] = 1; + } + discover_sensor($valid['sensor'], 'load', $device, $current_oid.'.'.$item['index'], $current_oid.'.'.$item['index'], $item['type'], $item['descr'], $item['divisor'], 1, $low_limit, $low_limit_warn, $warn_limit, $high_limit, $current); + } + } +} + +?> diff --git a/includes/discovery/sensors.inc.php b/includes/discovery/sensors.inc.php index dcde6cb06..7c8b04aef 100644 --- a/includes/discovery/sensors.inc.php +++ b/includes/discovery/sensors.inc.php @@ -18,5 +18,6 @@ include("includes/discovery/current.inc.php"); include("includes/discovery/power.inc.php"); include("includes/discovery/fanspeeds.inc.php"); include("includes/discovery/charge.inc.php"); +include("includes/discovery/load.inc.php"); ?> diff --git a/includes/polling/sensors.inc.php b/includes/polling/sensors.inc.php index 0979f8c3f..50d916e8e 100644 --- a/includes/polling/sensors.inc.php +++ b/includes/polling/sensors.inc.php @@ -21,7 +21,9 @@ $supported_sensors = array('current' => 'A', 'voltage' => 'V', 'temperature' => 'C', 'dbm' => 'dBm', - 'charge' => '%'); + 'charge' => '%', + 'load' => '%' + ); foreach ($supported_sensors as $sensor_type => $sensor_unit) {