Observium_CE/includes/discovery/sensors/baytech-mib-403-1.inc.php

92 lines
4.8 KiB
PHP

<?php
/**
* Observium
*
* This file is part of Observium.
*
* @package observium
* @subpackage discovery
* @copyright (C) Adam Armstrong
*
*/
$modulecurrentmax = 160;
$oids = snmpwalk_cache_oid($device, "sBTAModulesRPCEntry", [], 'Baytech-MIB-403-1');
$count = safe_count($oids);
$scale = 0.1;
print_debug_vars($oids);
foreach ($oids as $index => $entry) {
$descr = ($count > 1 ? "Module $index" : "Module");
// Current
if (is_numeric($entry['sBTAModulesRPCCurrent']) && $entry['sBTAModulesRPCCurrent'] > -1) {
$oid = '.1.3.6.1.4.1.4779.1.3.5.2.1.4.' . $index;
$value = $entry['sBTAModulesRPCCurrent'];
// $options = array('limit_high' => (isset($entry['sBTAModulesRPCCurrentAlarmThreshold']) && $entry['sBTAModulesRPCCurrentAlarmThreshold'] > -3000 ? $entry['sBTAModulesRPCCurrentAlarmThreshold'] * 0.1 : NULL),
$options = ['limit_high' => $modulecurrentmax * $scale,
'limit_low' => (isset($entry['sBTAModulesRPCLowCurrentThreshold']) && $entry['sBTAModulesRPCLowCurrentThreshold'] > -3000 ? $entry['sBTAModulesRPCLowCurrentThreshold'] * 0.1 : NULL)];
$options['rename_rrd'] = "baytech-sBTAModulesRPCCurrent.$index";
discover_sensor_ng($device, 'current', $mib, 'sBTAModulesRPCCurrent', $oid, $index, $descr . ' Current', $scale, $value, $options);
}
// Voltage
if (is_numeric($entry['sBTAModulesRPCVoltage']) && $entry['sBTAModulesRPCVoltage'] != -2000000) {
$oid = '.1.3.6.1.4.1.4779.1.3.5.2.1.6.' . $index;
$value = $entry['sBTAModulesRPCVoltage'];
$options = ['limit_high' => (isset($entry['sBTAModulesRPCOverVoltageThreshold']) && $entry['sBTAModulesRPCOverVoltageThreshold'] > -3000 ? $entry['sBTAModulesRPCOverVoltageThreshold'] * 0.1 : NULL),
'limit_low' => (isset($entry['sBTAModulesRPCUnderVoltageThreshold']) && $entry['sBTAModulesRPCUnderVoltageThreshold'] > -3000 ? $entry['sBTAModulesRPCUnderVoltageThreshold'] * 0.1 : NULL)];
$options['rename_rrd'] = "baytech-sBTAModulesRPCVoltage.$index";
discover_sensor_ng($device, 'voltage', $mib, 'sBTAModulesRPCVoltage', $oid, $index, $descr . ' Voltage', $scale, $value, $options);
}
// Power
if (is_numeric($entry['sBTAModulesRPCPower']) && $entry['sBTAModulesRPCPower'] != -2000000) {
$oid = '.1.3.6.1.4.1.4779.1.3.5.2.1.7.' . $index;
$value = $entry['sBTAModulesRPCPower'];
$options = ['limit_high' => (isset($entry['NOTSUPPORTED']) && $entry['NOTSUPPORTED'] > -3000 ? $entry['NOTSUPPORTED'] : 3328),
'limit_low' => (isset($entry['NOTSUPPORTED']) && $entry['NOTSUPPORTED'] > -3000 ? $entry['NOTSUPPORTED'] : 0)];
$options['rename_rrd'] = "baytech-sBTAModulesRPCPower.$index";
discover_sensor_ng($device, 'power', $mib, 'sBTAModulesRPCPower', $oid, $index, $descr . ' Power', 1, $value, $options);
}
// Temperature
if (is_numeric($entry['sBTAModulesRPCTemperature']) && $entry['sBTAModulesRPCTemperature'] > -1000000) {
$oid = '.1.3.6.1.4.1.4779.1.3.5.2.1.8.' . $index;
$value = $entry['sBTAModulesRPCTemperature'];
$options = ['limit_high' => (isset($entry['sBTAModulesRPCOverTempThreshold']) && $entry['sBTAModulesRPCOverTempThreshold'] > -3000 ? $entry['sBTAModulesRPCOverTempThreshold'] * 0.1 : NULL),
'limit_low' => (isset($entry['NOTSUPPORTED']) && $entry['NOTSUPPORTED'] > -3000 ? $entry['NOTSUPPORTED'] * 0.1 : NULL)];
$options['rename_rrd'] = "baytech-sBTAModulesRPCTemperature.$index";
discover_sensor_ng($device, 'temperature', $mib, 'sBTAModulesRPCTemperature', $oid, $index, $descr, $scale, $value, $options);
}
}
$oids = snmpwalk_cache_oid($device, "sBTAModulesRPCBreakersEntry", [], 'Baytech-MIB-403-1');
$count = safe_count($oids);
$scale = 0.1;
print_debug_vars($oids);
foreach ($oids as $index => $entry) {
$module = $entry['sBTAModulesRPCBreakersModulesIndex'];
$breaker = $entry['sBTAModulesRPCBreakersBreakersIndex'];
$descr = "Breaker $module.$breaker";
// Current
if (is_numeric($entry['sBTAModulesRPCBreakersCurrent']) && $entry['sBTAModulesRPCBreakersCurrent'] > -1) {
$oid = ".1.3.6.1.4.1.4779.1.3.5.9.1.4.$module.$breaker";
$value = $entry['sBTAModulesRPCBreakersCurrent'];
$options = ['limit_high' => (isset($entry['sBTAModulesRPCBreakersCurrentAlarmThreshold']) && $entry['sBTAModulesRPCBreakersCurrentAlarmThreshold'] > -3000 ? $entry['sBTAModulesRPCBreakersCurrentAlarmThreshold'] * 0.1 : NULL),
'limit_low' => 0];
$options['rename_rrd'] = "baytech-sBTAModulesRPCBreakersCurrent.$module.$breaker";
discover_sensor_ng($device, 'current', $mib, 'sBTAModulesRPCBreakersCurrent', $oid, "$module.$breaker", $descr . ' Current', $scale, $value, $options);
}
}
// EOF