mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Use high precision OIDs for APC UPS sensors (#12594)
* Use high precision OIDs for APC UPS sensors * Force test re-run * Remove ifHighSpeed Co-authored-by: PipoCanaja <38363551+PipoCanaja@users.noreply.github.com> Co-authored-by: Tony Murray <murraytony@gmail.com>
This commit is contained in:
committed by
GitHub
parent
6b8b9fdb31
commit
ece914a06d
@@ -46,28 +46,46 @@ foreach (explode("\n", $oids) as $data) {
|
||||
}
|
||||
}
|
||||
|
||||
$oids = snmp_get($device, '.1.3.6.1.4.1.318.1.1.1.3.2.4.0', '-OsqnU', '');
|
||||
// upsHighPrecInputFrequency
|
||||
$oids = snmp_get($device, '.1.3.6.1.4.1.318.1.1.1.3.3.4.0', '-OsqnU', '');
|
||||
d_echo($oids . "\n");
|
||||
$divisor = 10;
|
||||
$index = '3.3.4.0';
|
||||
|
||||
if (! $oids) {
|
||||
// upsAdvInputFrequency, used in case high precision is not available
|
||||
$oids = snmp_get($device, '.1.3.6.1.4.1.318.1.1.1.3.2.4.0', '-OsqnU', '');
|
||||
d_echo($oids . "\n");
|
||||
$divisor = 1;
|
||||
$index = '3.2.4.0';
|
||||
}
|
||||
|
||||
if ($oids) {
|
||||
echo ' APC In ';
|
||||
[$oid,$current] = explode(' ', $oids);
|
||||
$divisor = 1;
|
||||
$type = 'apc';
|
||||
$index = '3.2.4.0';
|
||||
$descr = 'Input';
|
||||
discover_sensor($valid['sensor'], 'frequency', $device, $oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $current);
|
||||
discover_sensor($valid['sensor'], 'frequency', $device, $oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $current / $divisor);
|
||||
}
|
||||
|
||||
$oids = snmp_get($device, '.1.3.6.1.4.1.318.1.1.1.4.2.2.0', '-OsqnU', '');
|
||||
// upsHighPrecOutputFrequency
|
||||
$oids = snmp_get($device, '.1.3.6.1.4.1.318.1.1.1.4.3.2.0', '-OsqnU', '');
|
||||
d_echo($oids . "\n");
|
||||
$divisor = 10;
|
||||
$index = '4.3.2.0';
|
||||
|
||||
if (! $oids) {
|
||||
// upsAdvOutputFrequency, used in case high precision is not available
|
||||
$oids = snmp_get($device, '.1.3.6.1.4.1.318.1.1.1.4.2.2.0', '-OsqnU', '');
|
||||
d_echo($oids . "\n");
|
||||
$divisor = 1;
|
||||
$index = '4.2.2.0';
|
||||
}
|
||||
|
||||
if ($oids) {
|
||||
echo ' APC Out ';
|
||||
[$oid,$current] = explode(' ', $oids);
|
||||
$divisor = 1;
|
||||
$type = 'apc';
|
||||
$index = '4.2.2.0';
|
||||
$descr = 'Output';
|
||||
discover_sensor($valid['sensor'], 'frequency', $device, $oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $current);
|
||||
discover_sensor($valid['sensor'], 'frequency', $device, $oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $current / $divisor);
|
||||
}
|
||||
|
@@ -1,17 +1,25 @@
|
||||
<?php
|
||||
|
||||
$oids = snmp_get($device, '.1.3.6.1.4.1.318.1.1.1.2.2.2.0', '-OsqnU', '');
|
||||
// upsHighPrecBatteryTemperature
|
||||
$oids = snmp_get($device, '.1.3.6.1.4.1.318.1.1.1.2.3.2.0', '-OsqnU', '');
|
||||
d_echo($oids . "\n");
|
||||
$precision = 10;
|
||||
|
||||
if (! $oids) {
|
||||
// upsAdvBatteryTemperature, used in case high precision is not available
|
||||
$oids = snmp_get($device, '.1.3.6.1.4.1.318.1.1.1.2.2.2.0', '-OsqnU', '');
|
||||
d_echo($oids . "\n");
|
||||
$divisor = 1;
|
||||
}
|
||||
|
||||
if ($oids) {
|
||||
echo 'APC UPS Internal ';
|
||||
[$oid,$current] = explode(' ', $oids);
|
||||
$precision = 1;
|
||||
$sensorType = 'apc';
|
||||
$index = 0;
|
||||
$descr = 'Internal Temperature';
|
||||
|
||||
discover_sensor($valid['sensor'], 'temperature', $device, $oid, $index, $sensorType, $descr, '1', '1', null, null, null, null, $current);
|
||||
discover_sensor($valid['sensor'], 'temperature', $device, $oid, $index, $sensorType, $descr, $precision, '1', null, null, null, null, $current / $precision);
|
||||
}
|
||||
|
||||
// Environmental monitoring on UPSes etc
|
||||
|
@@ -2,17 +2,26 @@
|
||||
|
||||
// Battery Bus Voltage
|
||||
|
||||
$oids = snmp_get($device, '.1.3.6.1.4.1.318.1.1.1.2.2.8.0', '-OsqnU');
|
||||
// upsHighPrecBatteryActualVoltage
|
||||
$oids = snmp_get($device, '.1.3.6.1.4.1.318.1.1.1.2.3.4.0', '-OsqnU');
|
||||
$divisor = 10;
|
||||
$index = '2.3.4.0';
|
||||
d_echo($oids . "\n");
|
||||
|
||||
if (! $oids) {
|
||||
// upsAdvBatteryActualVoltage, used in case high precision is not available
|
||||
$oids = snmp_get($device, '.1.3.6.1.4.1.318.1.1.1.2.2.8.0', '-OsqnU', '');
|
||||
d_echo($oids . "\n");
|
||||
$divisor = 1;
|
||||
$index = '2.2.8.0';
|
||||
}
|
||||
|
||||
if ($oids) {
|
||||
echo ' Battery Bus ';
|
||||
[$oid,$current] = explode(' ', $oids);
|
||||
$divisor = 1;
|
||||
$type = 'apc';
|
||||
$index = '2.2.8.0';
|
||||
$descr = 'Battery Bus';
|
||||
discover_sensor($valid['sensor'], 'voltage', $device, $oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $current);
|
||||
discover_sensor($valid['sensor'], 'voltage', $device, $oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $current / $divisor);
|
||||
}
|
||||
unset($oids);
|
||||
|
||||
@@ -91,27 +100,43 @@ if ($phasecount > 1) {
|
||||
}
|
||||
}
|
||||
}
|
||||
$oids = snmp_get($device, '.1.3.6.1.4.1.318.1.1.1.3.2.1.0', '-OsqnU');
|
||||
// upsHighPrecInputLineVoltage
|
||||
$oids = snmp_get($device, '.1.3.6.1.4.1.318.1.1.1.3.3.1.0', '-OsqnU');
|
||||
d_echo($oids . "\n");
|
||||
$divisor = 10;
|
||||
$index = '3.3.1.0';
|
||||
if (! $oids) {
|
||||
// upsAdvInputLineVoltage, used in case high precision is not available
|
||||
$oids = snmp_get($device, '.1.3.6.1.4.1.318.1.1.1.3.2.1.0', '-OsqnU', '');
|
||||
d_echo($oids . "\n");
|
||||
$divisor = 1;
|
||||
$index = '3.2.1.0';
|
||||
}
|
||||
if ($oids) {
|
||||
echo ' APC In ';
|
||||
[$oid,$current] = explode(' ', $oids);
|
||||
$divisor = 1;
|
||||
$type = 'apc';
|
||||
$index = '3.2.1.0';
|
||||
$descr = 'Input';
|
||||
discover_sensor($valid['sensor'], 'voltage', $device, $oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $current);
|
||||
discover_sensor($valid['sensor'], 'voltage', $device, $oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $current / $divisor);
|
||||
}
|
||||
$oids = snmp_get($device, '.1.3.6.1.4.1.318.1.1.1.4.2.1.0', '-OsqnU');
|
||||
// upsHighPrecOutputVoltage
|
||||
$oids = snmp_get($device, '.1.3.6.1.4.1.318.1.1.1.4.3.1.0', '-OsqnU');
|
||||
d_echo($oids . "\n");
|
||||
$divisor = 10;
|
||||
$index = '4.3.1.0';
|
||||
if (! $oids) {
|
||||
// upsAdvOutputVoltage, used in case high precision is not available
|
||||
$oids = snmp_get($device, '.1.3.6.1.4.1.318.1.1.1.4.2.1.0', '-OsqnU', '');
|
||||
d_echo($oids . "\n");
|
||||
$divisor = 1;
|
||||
$index = '4.2.1.0';
|
||||
}
|
||||
if ($oids) {
|
||||
echo ' APC Out ';
|
||||
[$oid,$current] = explode(' ', $oids);
|
||||
$divisor = 1;
|
||||
$type = 'apc';
|
||||
$index = '4.2.1.0';
|
||||
$descr = 'Output';
|
||||
discover_sensor($valid['sensor'], 'voltage', $device, $oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $current);
|
||||
discover_sensor($valid['sensor'], 'voltage', $device, $oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $current / $divisor);
|
||||
}
|
||||
// rPDUIdentDeviceLinetoLineVoltage
|
||||
$oids = snmp_get($device, '.1.3.6.1.4.1.318.1.1.12.1.15.0', '-OsqnU');
|
||||
|
Reference in New Issue
Block a user