mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Updated Os netagent2 3phase support (#9175)
* netagent2 - 3Phase UPS support
* Revert "netagent2 - 3Phase UPS support"
This reverts commit 7900bc5bc0.
* OS netagent feature update - 3 phase support
* OS netagent2 update - 3phase support code cleanup
* OS netagent2 update - 3phase support code cleanup 2
* Netagent2 - Add status unknown to smoke and water states.
* NetAgent2 - changed detection method like murrant suggested.
* netagent2 - XPPC-MIB - 3 phase states support
* Added json test data
This commit is contained in:
committed by
Neil Lathwood
parent
4e5a0fa4d7
commit
7d5035da25
@@ -21,36 +21,147 @@
|
||||
* @link http://librenms.org
|
||||
* @copyright 2016 Tony Murray
|
||||
* @author Tony Murray <murraytony@gmail.com>
|
||||
* 3 Phase support extension
|
||||
* @copyright 2018 Mikael Sipilainen
|
||||
* @author Mikael Sipilainen <mikael.sipilainen@gmail.com>
|
||||
*/
|
||||
|
||||
$load_oid = '.1.3.6.1.4.1.935.1.1.1.4.2.3.0';
|
||||
$output_load = snmp_get($device, $load_oid, '-Oqv');
|
||||
// Detect type of UPS (Signle-Phase/3 Phase)
|
||||
# Number of input lines
|
||||
$upsInputNumLines_oid = '.1.3.6.1.2.1.33.1.3.2.0';
|
||||
$in_phaseNum = snmp_get($device, $upsInputNumLines_oid, '-Oqv');
|
||||
|
||||
if (!empty($output_load) || $output_load == 0) {
|
||||
$type = 'netagent2';
|
||||
$index = 0;
|
||||
$limit = 100;
|
||||
$warnlimit = 80;
|
||||
$lowlimit = 0;
|
||||
$lowwarnlimit = null;
|
||||
$divisor = 1;
|
||||
$load = $output_load / $divisor;
|
||||
$descr = 'Output load';
|
||||
// Single-phase system
|
||||
if ($in_phaseNum == '1') {
|
||||
$load_oid = '.1.3.6.1.4.1.935.1.1.1.4.2.3.0';
|
||||
$output_load = snmp_get($device, $load_oid, '-Oqv');
|
||||
|
||||
discover_sensor(
|
||||
$valid['sensor'],
|
||||
'load',
|
||||
$device,
|
||||
$load_oid,
|
||||
$index,
|
||||
$type,
|
||||
$descr,
|
||||
$divisor,
|
||||
'1',
|
||||
$lowlimit,
|
||||
$lowwarnlimit,
|
||||
$warnlimit,
|
||||
$limit,
|
||||
$load
|
||||
);
|
||||
if (!empty($output_load) || $output_load == 0) {
|
||||
$type = 'netagent2';
|
||||
$index = 0;
|
||||
$limit = 100;
|
||||
$warnlimit = 80;
|
||||
$lowlimit = 0;
|
||||
$lowwarnlimit = null;
|
||||
$divisor = 1;
|
||||
$load = $output_load / $divisor;
|
||||
$descr = 'Output load';
|
||||
|
||||
discover_sensor(
|
||||
$valid['sensor'],
|
||||
'load',
|
||||
$device,
|
||||
$load_oid,
|
||||
$index,
|
||||
$type,
|
||||
$descr,
|
||||
$divisor,
|
||||
'1',
|
||||
$lowlimit,
|
||||
$lowwarnlimit,
|
||||
$warnlimit,
|
||||
$limit,
|
||||
$load
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// 3 phase system
|
||||
if ($in_phaseNum == '3') {
|
||||
// Output L1
|
||||
$load_oid = '.1.3.6.1.4.1.935.1.1.1.8.3.5.0';
|
||||
$output_load = snmp_get($device, $load_oid, '-Oqv');
|
||||
|
||||
if (!empty($output_load) || $output_load == 0) {
|
||||
$type = 'netagent2';
|
||||
$index = 0;
|
||||
$limit = 100;
|
||||
$warnlimit = 80;
|
||||
$lowlimit = 0;
|
||||
$lowwarnlimit = null;
|
||||
$divisor = 10;
|
||||
$load = $output_load / $divisor;
|
||||
$descr = 'Out L1 (R)';
|
||||
|
||||
discover_sensor(
|
||||
$valid['sensor'],
|
||||
'load',
|
||||
$device,
|
||||
$load_oid,
|
||||
$index,
|
||||
$type,
|
||||
$descr,
|
||||
$divisor,
|
||||
'1',
|
||||
$lowlimit,
|
||||
$lowwarnlimit,
|
||||
$warnlimit,
|
||||
$limit,
|
||||
$load
|
||||
);
|
||||
}
|
||||
// Output L2
|
||||
$load_oid = '.1.3.6.1.4.1.935.1.1.1.8.3.6.0';
|
||||
$output_load = snmp_get($device, $load_oid, '-Oqv');
|
||||
|
||||
if (!empty($output_load) || $output_load == 0) {
|
||||
$type = 'netagent2';
|
||||
$index = 1;
|
||||
$limit = 100;
|
||||
$warnlimit = 80;
|
||||
$lowlimit = 0;
|
||||
$lowwarnlimit = null;
|
||||
$divisor = 10;
|
||||
$load = $output_load / $divisor;
|
||||
$descr = 'Out L2 (S)';
|
||||
|
||||
discover_sensor(
|
||||
$valid['sensor'],
|
||||
'load',
|
||||
$device,
|
||||
$load_oid,
|
||||
$index,
|
||||
$type,
|
||||
$descr,
|
||||
$divisor,
|
||||
'1',
|
||||
$lowlimit,
|
||||
$lowwarnlimit,
|
||||
$warnlimit,
|
||||
$limit,
|
||||
$load
|
||||
);
|
||||
}
|
||||
// L3 output
|
||||
$load_oid = '.1.3.6.1.4.1.935.1.1.1.8.3.7.0';
|
||||
$output_load = snmp_get($device, $load_oid, '-Oqv');
|
||||
|
||||
if (!empty($output_load) || $output_load == 0) {
|
||||
$type = 'netagent2';
|
||||
$index = 2;
|
||||
$limit = 100;
|
||||
$warnlimit = 80;
|
||||
$lowlimit = 0;
|
||||
$lowwarnlimit = null;
|
||||
$divisor = 10;
|
||||
$load = $output_load / $divisor;
|
||||
$descr = 'Out L3 (T)';
|
||||
|
||||
discover_sensor(
|
||||
$valid['sensor'],
|
||||
'load',
|
||||
$device,
|
||||
$load_oid,
|
||||
$index,
|
||||
$type,
|
||||
$descr,
|
||||
$divisor,
|
||||
'1',
|
||||
$lowlimit,
|
||||
$lowwarnlimit,
|
||||
$warnlimit,
|
||||
$limit,
|
||||
$load
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user