mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
add new MGE MIB, detect humidity and temperature sensors on UPS - patch by RobJE
git-svn-id: http://www.observium.org/svn/observer/trunk@3048 61d68cd4-352d-0410-923a-c4978735b2b8
This commit is contained in:
69
includes/discovery/humidity/mgeups.inc.php
Normal file
69
includes/discovery/humidity/mgeups.inc.php
Normal file
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
|
||||
global $debug;
|
||||
|
||||
if ($device['os'] == "mgeups")
|
||||
{
|
||||
# blatently copyied from APC
|
||||
|
||||
echo("MGE UPS External ");
|
||||
|
||||
# Environmental monitoring on UPSes etc
|
||||
# FIXME upsmgConfigEnvironmentTable and upsmgEnvironmentSensorTable are used but there are others ...
|
||||
$mge_env_data = snmpwalk_cache_oid($device, "upsmgConfigEnvironmentTable", array(), "MG-SNMP-UPS-MIB");
|
||||
$mge_env_data = snmpwalk_cache_oid($device, "upsmgEnvironmentSensorTable", $mge_env_data, "MG-SNMP-UPS-MIB");
|
||||
|
||||
/*
|
||||
upsmgConfigSensorIndex.1 = 1
|
||||
upsmgConfigSensorName.1 = "Environment sensor"
|
||||
upsmgConfigTemperatureLow.1 = 5
|
||||
upsmgConfigTemperatureHigh.1 = 40
|
||||
upsmgConfigTemperatureHysteresis.1 = 2
|
||||
upsmgConfigHumidityLow.1 = 5
|
||||
upsmgConfigHumidityHigh.1 = 90
|
||||
upsmgConfigHumidityHysteresis.1 = 5
|
||||
upsmgConfigInput1Name.1 = "Input #1"
|
||||
upsmgConfigInput1ClosedLabel.1 = "closed"
|
||||
upsmgConfigInput1OpenLabel.1 = "open"
|
||||
upsmgConfigInput2Name.1 = "Input #2"
|
||||
upsmgConfigInput2ClosedLabel.1 = "closed"
|
||||
upsmgConfigInput2OpenLabel.1 = "open"
|
||||
|
||||
upsmgEnvironmentIndex.1 = 1
|
||||
upsmgEnvironmentComFailure.1 = no
|
||||
upsmgEnvironmentTemperature.1 = 287
|
||||
upsmgEnvironmentTemperatureLow.1 = no
|
||||
upsmgEnvironmentTemperatureHigh.1 = no
|
||||
upsmgEnvironmentHumidity.1 = 17
|
||||
upsmgEnvironmentHumidityLow.1 = no
|
||||
upsmgEnvironmentHumidityHigh.1 = no
|
||||
upsmgEnvironmentInput1State.1 = open
|
||||
upsmgEnvironmentInput2State.1 = open
|
||||
*/
|
||||
|
||||
foreach (array_keys($mge_env_data) as $index)
|
||||
{
|
||||
$descr = $mge_env_data[$index]['upsmgConfigSensorName'];
|
||||
$current = $mge_env_data[$index]['upsmgEnvironmentHumidity'];
|
||||
$sensorType = 'mge';
|
||||
$oid = '.1.3.6.1.4.1.705.1.8.7.1.6.' . $index;
|
||||
$low_limit = $mge_env_data[$index]['upsmgConfigHumidityLow'];
|
||||
$high_limit = $mge_env_data[$index]['upsmgConfigHumidityHigh'];
|
||||
$hysteresis = $mge_env_data[$index]['upsmgConfigHumidityHysteresis'];
|
||||
|
||||
# FIXME warninglevels might need some other calculation in stead of hysteresis
|
||||
$low_warn_limit = $low_limit + $hysteresis;
|
||||
$high_warn_limit = $high_limit - $hysteresis;
|
||||
|
||||
if ($debug) { echo("low_limit : $low_limit\nlow_warn_limit : $low_warn_limit\nhigh_warn_limit : $high_warn_limit\nhigh_limit : $high_limit\n"); }
|
||||
|
||||
if ($current != 0)
|
||||
{
|
||||
# Humidity = 0 -> Sensor not available
|
||||
# FIXME true for MGE as wel as APC?
|
||||
discover_sensor($valid['sensor'], 'humidity', $device, $oid, $index, $sensorType, $descr, '1', '1', $low_limit, $low_warn_limit, $high_warn_limit, $high_limit , $current);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
64
includes/discovery/temperatures/mgeups.inc.php
Normal file
64
includes/discovery/temperatures/mgeups.inc.php
Normal file
@@ -0,0 +1,64 @@
|
||||
<?php
|
||||
|
||||
global $debug;
|
||||
|
||||
if ($device['os'] == "mgeups")
|
||||
{
|
||||
# blatently copyied from APC
|
||||
|
||||
echo("MGE UPS External ");
|
||||
|
||||
# Environmental monitoring on UPSes etc
|
||||
# FIXME upsmgConfigEnvironmentTable and upsmgEnvironmentSensorTable are used but there are others ...
|
||||
$mge_env_data = snmpwalk_cache_oid($device, "upsmgConfigEnvironmentTable", array(), "MG-SNMP-UPS-MIB");
|
||||
$mge_env_data = snmpwalk_cache_oid($device, "upsmgEnvironmentSensorTable", $mge_env_data, "MG-SNMP-UPS-MIB");
|
||||
|
||||
/*
|
||||
upsmgConfigSensorIndex.1 = 1
|
||||
upsmgConfigSensorName.1 = "Environment sensor"
|
||||
upsmgConfigTemperatureLow.1 = 5
|
||||
upsmgConfigTemperatureHigh.1 = 40
|
||||
upsmgConfigTemperatureHysteresis.1 = 2
|
||||
upsmgConfigHumidityLow.1 = 5
|
||||
upsmgConfigHumidityHigh.1 = 90
|
||||
upsmgConfigHumidityHysteresis.1 = 5
|
||||
upsmgConfigInput1Name.1 = "Input #1"
|
||||
upsmgConfigInput1ClosedLabel.1 = "closed"
|
||||
upsmgConfigInput1OpenLabel.1 = "open"
|
||||
upsmgConfigInput2Name.1 = "Input #2"
|
||||
upsmgConfigInput2ClosedLabel.1 = "closed"
|
||||
upsmgConfigInput2OpenLabel.1 = "open"
|
||||
|
||||
upsmgEnvironmentIndex.1 = 1
|
||||
upsmgEnvironmentComFailure.1 = no
|
||||
upsmgEnvironmentTemperature.1 = 287
|
||||
upsmgEnvironmentTemperatureLow.1 = no
|
||||
upsmgEnvironmentTemperatureHigh.1 = no
|
||||
upsmgEnvironmentHumidity.1 = 17
|
||||
upsmgEnvironmentHumidityLow.1 = no
|
||||
upsmgEnvironmentHumidityHigh.1 = no
|
||||
upsmgEnvironmentInput1State.1 = open
|
||||
upsmgEnvironmentInput2State.1 = open
|
||||
*/
|
||||
|
||||
foreach (array_keys($mge_env_data) as $index)
|
||||
{
|
||||
$descr = $mge_env_data[$index]['upsmgConfigSensorName'];
|
||||
$current = $mge_env_data[$index]['upsmgEnvironmentTemperature'];
|
||||
$sensorType = 'mge';
|
||||
$oid = '.1.3.6.1.4.1.705.1.8.7.1.3.' . $index;
|
||||
$low_limit = $mge_env_data[$index]['upsmgConfigTemperatureLow'];
|
||||
$high_limit = $mge_env_data[$index]['upsmgConfigTemperatureHigh'];
|
||||
$hysteresis = $mge_env_data[$index]['upsmgConfigTemperatureHysteresis'];
|
||||
|
||||
# FIXME warninglevels might need some other calculation in stead of hysteresis
|
||||
$low_warn_limit = $low_limit + $hysteresis;
|
||||
$high_warn_limit = $high_limit - $hysteresis;
|
||||
|
||||
if ($debug) { echo("low_limit : $low_limit\nlow_warn_limit : $low_warn_limit\nhigh_warn_limit : $high_warn_limit\nhigh_limit : $high_limit\n"); }
|
||||
|
||||
discover_sensor($valid['sensor'], 'temperature', $device, $oid, $index, $sensorType, $descr, '10', '1', $low_limit, $low_warn_limit, $high_warn_limit, $high_limit , $current/10);
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
10551
mibs/MG-SNMP-UPS-MIB
10551
mibs/MG-SNMP-UPS-MIB
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user