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:
Mikael Sipilainen
2018-10-17 19:22:01 +03:00
committed by Neil Lathwood
parent 4e5a0fa4d7
commit 7d5035da25
9 changed files with 3340 additions and 174 deletions

View File

@@ -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
);
}
}