mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
refactor: rfc1628 sensor tidy up (#7341)
* refactor: rfc1628 tidy up reduce the amount of snmp calls * Did not finish re-writing rfc1628 load * fix type in bypass power oid * remove testing changes
This commit is contained in:
committed by
Neil Lathwood
parent
838f91a18a
commit
39804b047d
@@ -3,22 +3,23 @@
|
||||
// RFC1628 UPS
|
||||
echo 'RFC1628 ';
|
||||
|
||||
$oids = snmp_walk($device, '.1.3.6.1.2.1.33.1.2.4', '-Osqn', 'UPS-MIB');
|
||||
d_echo($oids."\n");
|
||||
$value = snmp_get($device, 'upsEstimatedChargeRemaining.0', '-OvqU', 'UPS-MIB');
|
||||
|
||||
$oids = trim($oids);
|
||||
foreach (explode("\n", $oids) as $data) {
|
||||
$data = trim($data);
|
||||
if ($data) {
|
||||
list($oid,$descr) = explode(' ', $data, 2);
|
||||
$split_oid = explode('.', $oid);
|
||||
$current_id = $split_oid[(count($split_oid) - 1)];
|
||||
$current_oid = ".1.3.6.1.2.1.33.1.2.4.$current_id";
|
||||
$current = snmp_get($device, $current_oid, '-O vq');
|
||||
$descr = 'Battery charge remaining'.(count(explode("\n", $oids)) == 1 ? '' : ' '.($current_id + 1));
|
||||
$type = 'rfc1628';
|
||||
$index = (500 + $current_id);
|
||||
|
||||
discover_sensor($valid['sensor'], 'charge', $device, $current_oid, $index, $type, $descr, 1, 1, 15, 50, null, 101, $current);
|
||||
}
|
||||
if (is_numeric($value)) {
|
||||
discover_sensor(
|
||||
$valid['sensor'],
|
||||
'charge',
|
||||
$device,
|
||||
'.1.3.6.1.2.1.33.1.2.4.0',
|
||||
500,
|
||||
'rfc1628',
|
||||
'Battery charge remaining',
|
||||
1,
|
||||
1,
|
||||
15,
|
||||
50,
|
||||
null,
|
||||
101,
|
||||
$value
|
||||
);
|
||||
}
|
||||
|
||||
@@ -2,80 +2,109 @@
|
||||
|
||||
echo 'RFC1628 ';
|
||||
|
||||
$oids = snmp_walk($device, '.1.3.6.1.2.1.33.1.2.6', '-Osqn', 'UPS-MIB');
|
||||
d_echo($oids."\n");
|
||||
$battery_current = snmp_get($device, 'upsBatteryCurrent.0', '-OqvU', 'UPS-MIB');
|
||||
|
||||
$oids = trim($oids);
|
||||
foreach (explode("\n", $oids) as $data) {
|
||||
$data = trim($data);
|
||||
if ($data) {
|
||||
list($oid,$descr) = explode(' ', $data, 2);
|
||||
$split_oid = explode('.', $oid);
|
||||
$current_id = $split_oid[(count($split_oid) - 1)];
|
||||
$current_oid = ".1.3.6.1.2.1.33.1.2.6.$current_id";
|
||||
$divisor = get_device_divisor($device, $pre_cache['poweralert_serial'], 'current', $current_oid);
|
||||
$current = (snmp_get($device, $current_oid, '-O vq') / $divisor);
|
||||
$descr = 'Battery'.(count(explode("\n", $oids)) == 1 ? '' : ' '.($current_id + 1));
|
||||
$type = 'rfc1628';
|
||||
$index = (500 + $current_id);
|
||||
if (is_numeric($battery_current)) {
|
||||
$oid = '.1.3.6.1.2.1.33.1.2.6.0';
|
||||
$divisor = get_device_divisor($device, $pre_cache['poweralert_serial'], 'current', $oid);
|
||||
|
||||
discover_sensor($valid['sensor'], 'current', $device, $current_oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $current);
|
||||
}
|
||||
discover_sensor(
|
||||
$valid['sensor'],
|
||||
'current',
|
||||
$device,
|
||||
$oid,
|
||||
500,
|
||||
'rfc1628',
|
||||
'Battery',
|
||||
$divisor,
|
||||
1,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
$battery_current / $divisor
|
||||
);
|
||||
}
|
||||
|
||||
$oids = trim(snmp_walk($device, '.1.3.6.1.2.1.33.1.4.3.0', '-OsqnU'));
|
||||
d_echo($oids."\n");
|
||||
|
||||
list($unused,$numPhase) = explode(' ', $oids);
|
||||
for ($i = 1; $i <= $numPhase; $i++) {
|
||||
$current_oid = ".1.3.6.1.2.1.33.1.4.4.1.3.$i";
|
||||
$descr = 'Output';
|
||||
if ($numPhase > 1) {
|
||||
$descr .= " Phase $i";
|
||||
$output_current = snmpwalk_group($device, 'upsOutputCurrent', 'UPS-MIB');
|
||||
foreach ($output_current as $index => $data) {
|
||||
$oid = ".1.3.6.1.2.1.33.1.4.4.1.3.$index";
|
||||
$divisor = get_device_divisor($device, $pre_cache['poweralert_serial'], 'current', $oid);
|
||||
$descr = 'Output';
|
||||
if (count($output_current) > 1) {
|
||||
$descr .= " Phase $index";
|
||||
}
|
||||
|
||||
$divisor = get_device_divisor($device, $pre_cache['poweralert_serial'], 'current', $current_oid);
|
||||
$current = (snmp_get($device, $current_oid, '-Oqv') / $divisor);
|
||||
$type = 'rfc1628';
|
||||
$index = $i;
|
||||
|
||||
discover_sensor($valid['sensor'], 'current', $device, $current_oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $current);
|
||||
discover_sensor(
|
||||
$valid['sensor'],
|
||||
'current',
|
||||
$device,
|
||||
$oid,
|
||||
$index,
|
||||
'rfc1628',
|
||||
$descr,
|
||||
$divisor,
|
||||
1,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
$data['upsOutputCurrent'] / $divisor
|
||||
);
|
||||
}
|
||||
|
||||
$oids = trim(snmp_walk($device, '.1.3.6.1.2.1.33.1.3.2.0', '-OsqnU'));
|
||||
d_echo($oids."\n");
|
||||
|
||||
list($unused,$numPhase) = explode(' ', $oids);
|
||||
for ($i = 1; $i <= $numPhase; $i++) {
|
||||
$current_oid = ".1.3.6.1.2.1.33.1.3.3.1.4.$i";
|
||||
$descr = 'Input';
|
||||
if ($numPhase > 1) {
|
||||
$descr .= " Phase $i";
|
||||
$input_current = snmpwalk_group($device, 'upsInputCurrent', 'UPS-MIB');
|
||||
foreach ($input_current as $index => $data) {
|
||||
$oid = ".1.3.6.1.2.1.33.1.3.3.1.4.$index";
|
||||
$divisor = get_device_divisor($device, $pre_cache['poweralert_serial'], 'current', $oid);
|
||||
$descr = 'Input';
|
||||
if (count($input_current) > 1) {
|
||||
$descr .= " Phase $index";
|
||||
}
|
||||
|
||||
$divisor = get_device_divisor($device, $pre_cache['poweralert_serial'], 'current', $current_oid);
|
||||
$current = (snmp_get($device, $current_oid, '-Oqv') / $divisor);
|
||||
$type = 'rfc1628';
|
||||
$index = (100 + $i);
|
||||
|
||||
discover_sensor($valid['sensor'], 'current', $device, $current_oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $current);
|
||||
discover_sensor(
|
||||
$valid['sensor'],
|
||||
'current',
|
||||
$device,
|
||||
$oid,
|
||||
100 + $index,
|
||||
'rfc1628',
|
||||
$descr,
|
||||
$divisor,
|
||||
1,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
$data['upsInputCurrent'] / $divisor
|
||||
);
|
||||
}
|
||||
|
||||
$oids = trim(snmp_walk($device, '.1.3.6.1.2.1.33.1.5.2.0', '-OsqnU'));
|
||||
d_echo($oids."\n");
|
||||
|
||||
list($unused,$numPhase) = explode(' ', $oids);
|
||||
for ($i = 1; $i <= $numPhase; $i++) {
|
||||
$current_oid = ".1.3.6.1.2.1.33.1.5.3.1.3.$i";
|
||||
$descr = 'Bypass';
|
||||
if ($numPhase > 1) {
|
||||
$descr .= " Phase $i";
|
||||
$bypass_current = snmpwalk_group($device, 'upsBypassCurrent', 'UPS-MIB');
|
||||
foreach ($bypass_current as $index => $data) {
|
||||
$oid = ".1.3.6.1.2.1.33.1.5.3.1.3.$index";
|
||||
$divisor = get_device_divisor($device, $pre_cache['poweralert_serial'], 'current', $oid);
|
||||
$descr = 'Bypass';
|
||||
if (count($bypass_current) > 1) {
|
||||
$descr .= " Phase $index";
|
||||
}
|
||||
|
||||
$divisor = get_device_divisor($device, $pre_cache['poweralert_serial'], 'current', $current_oid);
|
||||
$current = (snmp_get($device, $current_oid, '-Oqv') / $divisor);
|
||||
$type = 'rfc1628';
|
||||
$index = (200 + $i);
|
||||
|
||||
discover_sensor($valid['sensor'], 'current', $device, $current_oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $current);
|
||||
discover_sensor(
|
||||
$valid['sensor'],
|
||||
'current',
|
||||
$device,
|
||||
$oid,
|
||||
200 + $index,
|
||||
'rfc1628',
|
||||
$descr,
|
||||
$divisor,
|
||||
1,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
$data['upsBypassCurrent'] / $divisor
|
||||
);
|
||||
}
|
||||
|
||||
unset($battery_current, $output_current, $input_current, $bypass_current);
|
||||
|
||||
@@ -2,42 +2,77 @@
|
||||
|
||||
echo 'RFC1628 ';
|
||||
|
||||
$oids = trim(snmp_walk($device, '.1.3.6.1.2.1.33.1.3.2.0', '-OsqnU'));
|
||||
d_echo($oids."\n");
|
||||
|
||||
list($unused,$numPhase) = explode(' ', $oids);
|
||||
for ($i = 1; $i <= $numPhase; $i++) {
|
||||
$freq_oid = ".1.3.6.1.2.1.33.1.3.3.1.2.$i";
|
||||
$input_freq = snmpwalk_group($device, 'upsInputFrequency', 'UPS-MIB');
|
||||
foreach ($input_freq as $index => $data) {
|
||||
$freq_oid = ".1.3.6.1.2.1.33.1.3.3.1.2.$index";
|
||||
$divisor = get_device_divisor($device, $pre_cache['poweralert_serial'], 'frequency', $freq_oid);
|
||||
$descr = 'Input';
|
||||
if ($numPhase > 1) {
|
||||
$descr .= " Phase $i";
|
||||
if (count($input_freq) > 1) {
|
||||
$descr .= " Phase $index";
|
||||
}
|
||||
$divisor = get_device_divisor($device, $pre_cache['poweralert_serial'], 'frequency', $freq_oid);
|
||||
$current = (snmp_get($device, $freq_oid, '-Oqv') / $divisor);
|
||||
$type = 'rfc1628';
|
||||
|
||||
$index = '3.2.0.'.$i;
|
||||
discover_sensor($valid['sensor'], 'frequency', $device, $freq_oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $current);
|
||||
discover_sensor(
|
||||
$valid['sensor'],
|
||||
'frequency',
|
||||
$device,
|
||||
$freq_oid,
|
||||
"3.2.0.$index",
|
||||
'rfc1628',
|
||||
$descr,
|
||||
$divisor,
|
||||
1,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
$data['upsInputFrequency'] / $divisor
|
||||
);
|
||||
}
|
||||
|
||||
$freq_oid = '.1.3.6.1.2.1.33.1.4.2.0';
|
||||
$current_freq = snmp_get($device, $freq_oid, '-Oqv');
|
||||
if (is_numeric($current_freq)) {
|
||||
$descr = 'Output';
|
||||
$output_freq = snmp_get($device, 'upsOutputFrequency.0', '-OqvU', 'UPS-MIB');
|
||||
if (is_numeric($output_freq)) {
|
||||
$freq_oid = '.1.3.6.1.2.1.33.1.4.2.0';
|
||||
$divisor = get_device_divisor($device, $pre_cache['poweralert_serial'], 'frequency', $freq_oid);
|
||||
$type = 'rfc1628';
|
||||
$index = '4.2.0';
|
||||
|
||||
discover_sensor($valid['sensor'], 'frequency', $device, $freq_oid, $index, $type, $descr, $divisor, 1, null, null, null, null, $current_freq / $divisor);
|
||||
discover_sensor(
|
||||
$valid['sensor'],
|
||||
'frequency',
|
||||
$device,
|
||||
$freq_oid,
|
||||
'4.2.0',
|
||||
'rfc1628',
|
||||
'Output',
|
||||
$divisor,
|
||||
1,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
$output_freq / $divisor
|
||||
);
|
||||
}
|
||||
|
||||
$freq_oid = '.1.3.6.1.2.1.33.1.5.1.0';
|
||||
$current_freq = snmp_get($device, $freq_oid, '-Oqv');
|
||||
if (is_numeric($current_freq)) {
|
||||
$descr = 'Bypass';
|
||||
$bypass_freq = snmp_get($device, 'upsBypassFrequency.0', '-OqvU', 'UPS-MIB');
|
||||
if (is_numeric($bypass_freq)) {
|
||||
$freq_oid = '.1.3.6.1.2.1.33.1.5.1.0';
|
||||
$divisor = get_device_divisor($device, $pre_cache['poweralert_serial'], 'frequency', $freq_oid);
|
||||
$type = 'rfc1628';
|
||||
$index = '5.1.0';
|
||||
|
||||
discover_sensor($valid['sensor'], 'frequency', $device, $freq_oid, $index, $type, $descr, $divisor, 1, null, null, null, null, $current_freq / $divisor);
|
||||
discover_sensor(
|
||||
$valid['sensor'],
|
||||
'frequency',
|
||||
$device,
|
||||
$freq_oid,
|
||||
'5.1.0',
|
||||
'rfc1628',
|
||||
'Bypass',
|
||||
$divisor,
|
||||
1,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
$bypass_freq / $divisor
|
||||
);
|
||||
}
|
||||
|
||||
unset($input_freq, $output_freq, $bypass_freq);
|
||||
|
||||
@@ -2,23 +2,30 @@
|
||||
|
||||
echo 'RFC1628 ';
|
||||
|
||||
$oids = snmp_walk($device, '.1.3.6.1.2.1.33.1.4.4.1.5', '-Osqn', 'UPS-MIB');
|
||||
d_echo($oids."\n");
|
||||
$load_data = snmpwalk_group($device, 'upsOutputPercentLoad', 'UPS-MIB');
|
||||
|
||||
$oids = trim($oids);
|
||||
foreach (explode("\n", $oids) as $data) {
|
||||
$data = trim($data);
|
||||
if ($data) {
|
||||
list($oid,$descr) = explode(' ', $data, 2);
|
||||
$split_oid = explode('.', $oid);
|
||||
$current_id = $split_oid[(count($split_oid) - 1)];
|
||||
$current_oid = ".1.3.6.1.2.1.33.1.4.4.1.5.$current_id";
|
||||
$divisor = get_device_divisor($device, $pre_cache['poweralert_serial'], 'load', $current_oid);
|
||||
$current = (snmp_get($device, $current_oid, '-O vq') / $divisor);
|
||||
$descr = 'Percentage load'.(count(explode("\n", $oids)) == 1 ? '' : ' '.($current_id + 1));
|
||||
$type = 'rfc1628';
|
||||
$index = (500 + $current_id);
|
||||
|
||||
discover_sensor($valid['sensor'], 'load', $device, $current_oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $current);
|
||||
foreach ($load_data as $index => $data) {
|
||||
$load_oid = ".1.3.6.1.2.1.33.1.4.4.1.5.$index";
|
||||
$divisor = get_device_divisor($device, $pre_cache['poweralert_serial'], 'load', $load_oid);
|
||||
$descr = 'Percentage load';
|
||||
if (count($load_data) > 1) {
|
||||
$descr .= " $index";
|
||||
}
|
||||
|
||||
discover_sensor(
|
||||
$valid['sensor'],
|
||||
'load',
|
||||
$device,
|
||||
$load_oid,
|
||||
500 + $index,
|
||||
'rfc1628',
|
||||
$descr,
|
||||
$divisor,
|
||||
1,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
$data['upsOutputPercentLoad'] / $divisor
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,60 +1,81 @@
|
||||
<?php
|
||||
|
||||
echo("RFC1628 ");
|
||||
echo "RFC1628 ";
|
||||
|
||||
$oids = trim(snmp_walk($device, ".1.3.6.1.2.1.33.1.4.3.0", "-OsqnU"));
|
||||
d_echo($oids."\n");
|
||||
list($unused,$numPhase) = explode(' ', $oids);
|
||||
for ($i = 1; $i <= $numPhase; $i++) {
|
||||
$current_oid = ".1.3.6.1.2.1.33.1.4.4.1.4.$i";
|
||||
$descr = "Output";
|
||||
if ($numPhase > 1) {
|
||||
$descr .= " Phase $i";
|
||||
$output_power = snmpwalk_group($device, 'upsOutputPower', 'UPS-MIB');
|
||||
foreach ($output_power as $index => $data) {
|
||||
$descr = 'Output';
|
||||
if (count($output_power) > 1) {
|
||||
$descr .= " Phase $index";
|
||||
}
|
||||
$current = snmp_get($device, $current_oid, "-Oqv");
|
||||
$type = "rfc1628";
|
||||
$precision = 1;
|
||||
$index = 300+$i;
|
||||
|
||||
if (is_numeric($current)) {
|
||||
discover_sensor($valid['sensor'], 'power', $device, $current_oid, $index, $type, $descr, '1', '1', null, null, null, null, $current);
|
||||
}
|
||||
discover_sensor(
|
||||
$valid['sensor'],
|
||||
'power',
|
||||
$device,
|
||||
".1.3.6.1.2.1.33.1.4.4.1.4.$index",
|
||||
300+$index,
|
||||
"rfc1628",
|
||||
$descr,
|
||||
1,
|
||||
1,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
$data['upsOutputPower']
|
||||
);
|
||||
}
|
||||
|
||||
$oids = trim(snmp_walk($device, ".1.3.6.1.2.1.33.1.3.2.0", "-OsqnU"));
|
||||
d_echo($oids."\n");
|
||||
list($unused,$numPhase) = explode(' ', $oids);
|
||||
for ($i = 1; $i <= $numPhase; $i++) {
|
||||
$current_oid = ".1.3.6.1.2.1.33.1.3.3.1.5.$i";
|
||||
$descr = "Input";
|
||||
if ($numPhase > 1) {
|
||||
$descr .= " Phase $i";
|
||||
}
|
||||
$current = snmp_get($device, $current_oid, "-Oqv");
|
||||
$type = "rfc1628";
|
||||
$precision = 1;
|
||||
$index = 100+$i;
|
||||
|
||||
if (is_numeric($current)) {
|
||||
discover_sensor($valid['sensor'], 'power', $device, $current_oid, $index, $type, $descr, '1', '1', null, null, null, null, $current);
|
||||
$input_power = snmpwalk_group($device, 'upsInputTruePower', 'UPS-MIB');
|
||||
foreach ($input_power as $index => $data) {
|
||||
$descr = 'Input';
|
||||
if (count($input_power) > 1) {
|
||||
$descr .= " Phase $index";
|
||||
}
|
||||
|
||||
discover_sensor(
|
||||
$valid['sensor'],
|
||||
'power',
|
||||
$device,
|
||||
".1.3.6.1.2.1.33.1.3.3.1.5.$index",
|
||||
100+$index,
|
||||
"rfc1628",
|
||||
$descr,
|
||||
1,
|
||||
1,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
$data['upsInputTruePower']
|
||||
);
|
||||
}
|
||||
|
||||
$oids = trim(snmp_walk($device, ".1.3.6.1.2.1.33.1.5.2.0", "-OsqnU"));
|
||||
d_echo($oids."\n");
|
||||
list($unused,$numPhase) = explode(' ', $oids);
|
||||
for ($i = 1; $i <= $numPhase; $i++) {
|
||||
$current_oid = ".1.3.6.1.2.1.33.1.5.3.1.4.$i";
|
||||
$descr = "Bypass";
|
||||
if ($numPhase > 1) {
|
||||
$descr .= " Phase $i";
|
||||
$bypass_power = snmpwalk_group($device, 'upsBypassPower', 'UPS-MIB');
|
||||
foreach ($bypass_power as $index => $data) {
|
||||
$descr = 'Bypass';
|
||||
if (count($bypass_power) > 1) {
|
||||
$descr .= " Phase $index";
|
||||
}
|
||||
$current = snmp_get($device, $current_oid, "-Oqv");
|
||||
$type = "rfc1628";
|
||||
$precision = 1;
|
||||
$index = 200+$i;
|
||||
|
||||
if (is_numeric($current)) {
|
||||
discover_sensor($valid['sensor'], 'power', $device, $current_oid, $index, $type, $descr, '1', '1', null, null, null, null, $current);
|
||||
}
|
||||
discover_sensor(
|
||||
$valid['sensor'],
|
||||
'power',
|
||||
$device,
|
||||
".1.3.6.1.2.1.33.1.5.3.1.4.$index",
|
||||
200+$index,
|
||||
"rfc1628",
|
||||
$descr,
|
||||
1,
|
||||
1,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
$data['upsBypassPower']
|
||||
);
|
||||
}
|
||||
|
||||
unset($output_power, $input_power, $bypass_power);
|
||||
|
||||
@@ -4,36 +4,37 @@ echo 'RFC1628 ';
|
||||
|
||||
// Battery Status (Value : 1 unknown, 2 batteryNormal, 3 batteryLow, 4 batteryDepleted)
|
||||
$state = snmp_get($device, "upsBatteryStatus.0", "-Ovqe", 'UPS-MIB');
|
||||
$cur_oid = '.1.3.6.1.2.1.33.1.2.1.0';
|
||||
$index = '0';
|
||||
|
||||
if (is_numeric($state)) {
|
||||
//Create State Index
|
||||
$state_name = 'upsBatteryStatusState';
|
||||
$state_index_id = create_state_index($state_name);
|
||||
create_state_index(
|
||||
$state_name,
|
||||
array(
|
||||
array('value' => 1, 'generic' => 3, 'graph' => 0, 'descr' => 'Unknown'),
|
||||
array('value' => 2, 'generic' => 0, 'graph' => 0, 'descr' => 'Normal'),
|
||||
array('value' => 3, 'generic' => 2, 'graph' => 0, 'descr' => 'Low'),
|
||||
array('value' => 4, 'generic' => 2, 'graph' => 0, 'descr' => 'Depleted'),
|
||||
)
|
||||
);
|
||||
|
||||
//Create State Translation
|
||||
if ($state_index_id) {
|
||||
$states = array(
|
||||
array($state_index_id,'Unknown',0,1,3) ,
|
||||
array($state_index_id,'Normal',0,2,0) ,
|
||||
array($state_index_id,'Low',0,3,2) ,
|
||||
array($state_index_id,'Depleted',0,4,2) ,
|
||||
);
|
||||
foreach ($states as $value) {
|
||||
$insert = array(
|
||||
'state_index_id' => $value[0],
|
||||
'state_descr' => $value[1],
|
||||
'state_draw_graph' => $value[2],
|
||||
'state_value' => $value[3],
|
||||
'state_generic_value' => $value[4]
|
||||
);
|
||||
dbInsert($insert, 'state_translations');
|
||||
}
|
||||
}
|
||||
|
||||
//Discover Sensors
|
||||
discover_sensor($valid['sensor'], 'state', $device, $cur_oid, $index, $state_name, 'Battery Status', '1', '1', null, null, null, null, $state, 'snmp', $index);
|
||||
discover_sensor(
|
||||
$valid['sensor'],
|
||||
'state',
|
||||
$device,
|
||||
'.1.3.6.1.2.1.33.1.2.1.0',
|
||||
0,
|
||||
$state_name,
|
||||
'Battery Status',
|
||||
1,
|
||||
1,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
$state,
|
||||
'snmp',
|
||||
0
|
||||
);
|
||||
|
||||
//Create Sensor To State Index
|
||||
create_sensor_to_state_index($device, $state_name, $index);
|
||||
@@ -41,39 +42,40 @@ if (is_numeric($state)) {
|
||||
|
||||
// Output Source (Value : 1 other, 2 none, 3 normal, 4 bypass, 5 battery, 6 booster, 7 reducer)
|
||||
$state = snmp_get($device, "upsOutputSource.0", "-Ovqe", 'UPS-MIB');
|
||||
$cur_oid = '.1.3.6.1.2.1.33.1.4.1.0';
|
||||
$index = '0';
|
||||
|
||||
if (is_numeric($state)) {
|
||||
//Create State Index
|
||||
$state_name = 'upsOutputSourceState';
|
||||
$state_index_id = create_state_index($state_name);
|
||||
create_state_index(
|
||||
$state_name,
|
||||
array(
|
||||
array('value' => 1, 'generic' => 3, 'graph' => 0, 'descr' => 'Other'),
|
||||
array('value' => 2, 'generic' => 3, 'graph' => 0, 'descr' => 'None'),
|
||||
array('value' => 3, 'generic' => 0, 'graph' => 0, 'descr' => 'Normal'),
|
||||
array('value' => 4, 'generic' => 2, 'graph' => 0, 'descr' => 'Bypass'),
|
||||
array('value' => 5, 'generic' => 2, 'graph' => 0, 'descr' => 'Battery'),
|
||||
array('value' => 6, 'generic' => 2, 'graph' => 0, 'descr' => 'Booster'),
|
||||
array('value' => 7, 'generic' => 2, 'graph' => 0, 'descr' => 'Reducer'),
|
||||
)
|
||||
);
|
||||
|
||||
//Create State Translation
|
||||
if ($state_index_id) {
|
||||
$states = array(
|
||||
array($state_index_id,'Other',0,1,3) ,
|
||||
array($state_index_id,'None',0,2,3) ,
|
||||
array($state_index_id,'Normal',0,3,0) ,
|
||||
array($state_index_id,'Bypass',0,4,2) ,
|
||||
array($state_index_id,'Battery',0,5,2) ,
|
||||
array($state_index_id,'Booster',0,6,2) ,
|
||||
array($state_index_id,'Reducer',0,7,2) ,
|
||||
);
|
||||
foreach ($states as $value) {
|
||||
$insert = array(
|
||||
'state_index_id' => $value[0],
|
||||
'state_descr' => $value[1],
|
||||
'state_draw_graph' => $value[2],
|
||||
'state_value' => $value[3],
|
||||
'state_generic_value' => $value[4]
|
||||
);
|
||||
dbInsert($insert, 'state_translations');
|
||||
}
|
||||
}
|
||||
|
||||
//Discover Sensors
|
||||
discover_sensor($valid['sensor'], 'state', $device, $cur_oid, $index, $state_name, 'Output Source', '1', '1', null, null, null, null, $state, 'snmp', $index);
|
||||
discover_sensor(
|
||||
$valid['sensor'],
|
||||
'state',
|
||||
$device,
|
||||
'.1.3.6.1.2.1.33.1.4.1.0',
|
||||
0,
|
||||
$state_name,
|
||||
'Output Source',
|
||||
1,
|
||||
1,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
$state,
|
||||
'snmp',
|
||||
0
|
||||
);
|
||||
|
||||
//Create Sensor To State Index
|
||||
create_sensor_to_state_index($device, $state_name, $index);
|
||||
|
||||
@@ -1,23 +1,25 @@
|
||||
<?php
|
||||
|
||||
$oids = snmp_walk($device, '.1.3.6.1.2.1.33.1.2.7', '-Osqn', 'UPS-MIB');
|
||||
d_echo($oids."\n");
|
||||
echo 'RFC1628 ';
|
||||
|
||||
$oids = trim($oids);
|
||||
if ($oids) {
|
||||
echo 'RFC1628 Battery Temperature ';
|
||||
$battery_temp = snmp_get($device, 'upsBatteryTemperature.0', '-OqvU', 'UPS-MIB');
|
||||
if (is_numeric($battery_temp)) {
|
||||
discover_sensor(
|
||||
$valid['sensor'],
|
||||
'temperature',
|
||||
$device,
|
||||
'.1.3.6.1.2.1.33.1.2.7.0',
|
||||
0,
|
||||
'rfc1628',
|
||||
'Battery',
|
||||
1,
|
||||
1,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
$battery_temp
|
||||
);
|
||||
}
|
||||
|
||||
foreach (explode("\n", $oids) as $data) {
|
||||
$data = trim($data);
|
||||
if ($data) {
|
||||
list($oid,$descr) = explode(' ', $data, 2);
|
||||
$split_oid = explode('.', $oid);
|
||||
$temperature_id = $split_oid[(count($split_oid) - 1)];
|
||||
$temperature_oid = ".1.3.6.1.2.1.33.1.2.7.$temperature_id";
|
||||
$temperature = snmp_get($device, $temperature_oid, '-Ovq');
|
||||
$descr = 'Battery'.(count(explode("\n", $oids)) == 1 ? '' : ' '.($temperature_id + 1));
|
||||
|
||||
discover_sensor($valid['sensor'], 'temperature', $device, $temperature_oid, $temperature_id, 'rfc1628', $descr, '1', '1', null, null, null, null, $temperature);
|
||||
}
|
||||
}
|
||||
unset($battery_temp);
|
||||
|
||||
@@ -2,85 +2,108 @@
|
||||
|
||||
echo 'RFC1628 ';
|
||||
|
||||
$oids = snmp_walk($device, '.1.3.6.1.2.1.33.1.2.5', '-Osqn', 'UPS-MIB');
|
||||
d_echo($oids."\n");
|
||||
|
||||
$oids = trim($oids);
|
||||
foreach (explode("\n", $oids) as $data) {
|
||||
$data = trim($data);
|
||||
if ($data) {
|
||||
list($oid,$descr) = explode(' ', $data, 2);
|
||||
$split_oid = explode('.', $oid);
|
||||
$volt_id = $split_oid[(count($split_oid) - 1)];
|
||||
$volt_oid = ".1.3.6.1.2.1.33.1.2.5.$volt_id";
|
||||
$divisor = get_device_divisor($device, $pre_cache['poweralert_serial'], 'voltage', $volt_oid);
|
||||
|
||||
$volt = (snmp_get($device, $volt_oid, '-O vq') / $divisor);
|
||||
$descr = 'Battery'.(count(explode("\n", $oids)) == 1 ? '' : ' '.($volt_id + 1));
|
||||
$type = 'rfc1628';
|
||||
$index = '1.2.5.'.$volt_id;
|
||||
|
||||
discover_sensor($valid['sensor'], 'voltage', $device, $volt_oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $volt);
|
||||
}
|
||||
}
|
||||
|
||||
$oids = trim(snmp_walk($device, '.1.3.6.1.2.1.33.1.4.3.0', '-OsqnU'));
|
||||
d_echo($oids."\n");
|
||||
|
||||
list($unused,$numPhase) = explode(' ', $oids);
|
||||
for ($i = 1; $i <= $numPhase; $i++) {
|
||||
$volt_oid = ".1.3.6.1.2.1.33.1.4.4.1.2.$i";
|
||||
$descr = 'Output';
|
||||
if ($numPhase > 1) {
|
||||
$descr .= " Phase $i";
|
||||
}
|
||||
|
||||
$type = 'rfc1628';
|
||||
$battery_volts = snmp_get($device, 'upsBatteryVoltage.0', '-OqvU', 'UPS-MIB');
|
||||
if (is_numeric($battery_volts)) {
|
||||
$volt_oid = '.1.3.6.1.2.1.33.1.2.5.0';
|
||||
$divisor = get_device_divisor($device, $pre_cache['poweralert_serial'], 'voltage', $volt_oid);
|
||||
|
||||
$current = (snmp_get($device, $volt_oid, '-Oqv') / $divisor);
|
||||
$index = $i;
|
||||
|
||||
discover_sensor($valid['sensor'], 'voltage', $device, $volt_oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $current);
|
||||
discover_sensor(
|
||||
$valid['sensor'],
|
||||
'voltage',
|
||||
$device,
|
||||
$volt_oid,
|
||||
'1.2.5.0',
|
||||
'rfc1628',
|
||||
'Battery',
|
||||
$divisor,
|
||||
1,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
$battery_volts / $divisor
|
||||
);
|
||||
}
|
||||
|
||||
$oids = trim(snmp_walk($device, '.1.3.6.1.2.1.33.1.3.2.0', '-OsqnU'));
|
||||
d_echo($oids."\n");
|
||||
|
||||
list($unused,$numPhase) = explode(' ', $oids);
|
||||
for ($i = 1; $i <= $numPhase; $i++) {
|
||||
$volt_oid = ".1.3.6.1.2.1.33.1.3.3.1.3.$i";
|
||||
$descr = 'Input';
|
||||
if ($numPhase > 1) {
|
||||
$descr .= " Phase $i";
|
||||
$output_volts = snmpwalk_group($device, 'upsOutputVoltage', 'UPS-MIB');
|
||||
foreach ($output_volts as $index => $data) {
|
||||
$volt_oid = ".1.3.6.1.2.1.33.1.4.4.1.2.$index";
|
||||
$divisor = get_device_divisor($device, $pre_cache['poweralert_serial'], 'voltage', $volt_oid);
|
||||
$descr = 'Output';
|
||||
if (count($output_volts) > 1) {
|
||||
$descr .= " Phase $index";
|
||||
}
|
||||
|
||||
$type = 'rfc1628';
|
||||
$divisor = get_device_divisor($device, $pre_cache['poweralert_serial'], 'voltage', $volt_oid);
|
||||
|
||||
$current = (snmp_get($device, $volt_oid, '-Oqv') / $divisor);
|
||||
|
||||
$index = (100 + $i);
|
||||
|
||||
discover_sensor($valid['sensor'], 'voltage', $device, $volt_oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $current);
|
||||
discover_sensor(
|
||||
$valid['sensor'],
|
||||
'voltage',
|
||||
$device,
|
||||
$volt_oid,
|
||||
$index,
|
||||
'rfc1628',
|
||||
$descr,
|
||||
$divisor,
|
||||
1,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
$data['upsOutputVoltage'] / $divisor
|
||||
);
|
||||
}
|
||||
|
||||
$oids = trim(snmp_walk($device, '.1.3.6.1.2.1.33.1.5.2.0', '-OsqnU'));
|
||||
d_echo($oids."\n");
|
||||
|
||||
list($unused,$numPhase) = explode(' ', $oids);
|
||||
for ($i = 1; $i <= $numPhase; $i++) {
|
||||
$volt_oid = ".1.3.6.1.2.1.33.1.5.3.1.2.$i";
|
||||
$descr = 'Bypass';
|
||||
if ($numPhase > 1) {
|
||||
$descr .= " Phase $i";
|
||||
$input_volts = snmpwalk_group($device, 'upsInputVoltage', 'UPS-MIB');
|
||||
foreach ($input_volts as $index => $data) {
|
||||
$volt_oid = ".1.3.6.1.2.1.33.1.3.3.1.3.$index";
|
||||
$divisor = get_device_divisor($device, $pre_cache['poweralert_serial'], 'voltage', $volt_oid);
|
||||
$descr = 'Input';
|
||||
if (count($input_volts) > 1) {
|
||||
$descr .= " Phase $index";
|
||||
}
|
||||
|
||||
$type = 'rfc1628';
|
||||
$divisor = get_device_divisor($device, $pre_cache['poweralert_serial'], 'voltage', $volt_oid);
|
||||
|
||||
$current = (snmp_get($device, $volt_oid, '-Oqv') / $divisor);
|
||||
$index = (200 + $i);
|
||||
|
||||
discover_sensor($valid['sensor'], 'voltage', $device, $volt_oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $current);
|
||||
discover_sensor(
|
||||
$valid['sensor'],
|
||||
'voltage',
|
||||
$device,
|
||||
$volt_oid,
|
||||
100 + $index,
|
||||
'rfc1628',
|
||||
$descr,
|
||||
$divisor,
|
||||
1,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
$data['upsInputVoltage'] / $divisor
|
||||
);
|
||||
}
|
||||
|
||||
$bypass_volts = snmpwalk_group($device, 'upsBypassVoltage', 'UPS-MIB');
|
||||
foreach ($bypass_volts as $index => $data) {
|
||||
$volt_oid = ".1.3.6.1.2.1.33.1.5.3.1.2.$index";
|
||||
$divisor = get_device_divisor($device, $pre_cache['poweralert_serial'], 'voltage', $volt_oid);
|
||||
$descr = 'Bypass';
|
||||
if (count($bypass_volts) > 1) {
|
||||
$descr .= " Phase $index";
|
||||
}
|
||||
|
||||
discover_sensor(
|
||||
$valid['sensor'],
|
||||
'voltage',
|
||||
$device,
|
||||
$volt_oid,
|
||||
200 + $index,
|
||||
'rfc1628',
|
||||
$descr,
|
||||
$divisor,
|
||||
1,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
$data['upsBypassVoltage'] / $divisor
|
||||
);
|
||||
}
|
||||
|
||||
unset($input_volts, $output_volts, $battery_volts, $bypass_volts);
|
||||
|
||||
Reference in New Issue
Block a user