93 lines
4.6 KiB
PHP
93 lines
4.6 KiB
PHP
<?php
|
|
/**
|
|
* Observium
|
|
*
|
|
* This file is part of Observium.
|
|
*
|
|
* @package observium
|
|
* @subpackage discovery
|
|
* @copyright (C) Adam Armstrong
|
|
*
|
|
*/
|
|
|
|
$oids = snmpwalk_cache_bare_oid($device, 'bufferinval', [], 'ADF-1-MIB');
|
|
|
|
$oid_defs = [];
|
|
$oid_defs[1] = ['name' => 'powerFactor', 'class' => 'powerfactor', 'scale' => '0.0001', 'descr' => ''];
|
|
$oid_defs[2] = ['name' => 'voltageLL', 'class' => 'voltage', 'scale' => '0.1', 'descr' => 'LL'];
|
|
$oid_defs[3] = ['name' => 'voltageLN', 'class' => 'voltage', 'scale' => '0.1', 'descr' => 'LN'];
|
|
$oid_defs[4] = ['name' => 'current', 'class' => 'current', 'scale' => '0.01', 'descr' => ''];
|
|
$oid_defs[5] = ['name' => 'frequency', 'class' => 'frequency', 'scale' => '0.01', 'descr' => ''];
|
|
$oid_defs[6] = ['name' => 'currentL1', 'class' => 'current', 'scale' => '0.01', 'descr' => 'L1'];
|
|
$oid_defs[7] = ['name' => 'currentL2', 'class' => 'current', 'scale' => '0.01', 'descr' => 'L2'];
|
|
$oid_defs[8] = ['name' => 'currentL3', 'class' => 'current', 'scale' => '0.01', 'descr' => 'L3'];
|
|
$oid_defs[9] = ['name' => 'currentN', 'class' => 'current', 'scale' => '0.01', 'descr' => 'N'];
|
|
$oid_defs[10] = ['name' => 'voltageL1L2', 'class' => 'voltage', 'scale' => '0.1', 'descr' => 'L1L2'];
|
|
$oid_defs[11] = ['name' => 'voltageL2L3', 'class' => 'voltage', 'scale' => '0.1', 'descr' => 'L2L3'];
|
|
$oid_defs[12] = ['name' => 'voltageL3L1', 'class' => 'voltage', 'scale' => '0.1', 'descr' => 'L3L1'];
|
|
$oid_defs[13] = ['name' => 'voltageL1N', 'class' => 'voltage', 'scale' => '0.1', 'descr' => 'L1N1'];
|
|
$oid_defs[14] = ['name' => 'voltageL2N', 'class' => 'voltage', 'scale' => '0.1', 'descr' => 'L2N1'];
|
|
$oid_defs[15] = ['name' => 'voltageL3N', 'class' => 'voltage', 'scale' => '0.1', 'descr' => 'L3N1'];
|
|
|
|
$i = 1;
|
|
while ($i < 29) {
|
|
|
|
if ($i == 25 || $i == 26) {
|
|
} else {
|
|
|
|
foreach ($oid_defs as $n => $x) {
|
|
$x['index'] = $n + (($i - 1) * 15);
|
|
|
|
if ($i > 26) {
|
|
$x['index'] -= 10;
|
|
}
|
|
|
|
$x['oid_num'] = '.1.3.6.1.4.1.49314.1.1.1.4.9.' . $x['index'];
|
|
$x['oid_text'] = $x['name'] . $i;
|
|
$x['descr'] = 'Feed ' . $i . (strlen($config['custom']['adf-1-mib'][$i]['descr']) ? ' (' . $config['custom']['adf-1-mib'][$i]['descr'] . ')' : '') . ' ' . $x['descr'];
|
|
$x['value'] = $oids[$x['oid_text']] * $x['scale'];
|
|
|
|
echo $x['oid_num'] . ' ' . $x['oid_text'] . PHP_EOL;
|
|
|
|
//print_r($x);
|
|
|
|
if (is_numeric($oids[$x['oid_text']])) {
|
|
discover_sensor_ng($device, $x['class'], $mib, $x['name'], $x['oid_num'], $x['index'], $x['descr'], $x['scale'], $oids[$x['oid_text']], [ 'sensor_type' => 'adf01' ]);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
$i++;
|
|
}
|
|
|
|
// Note that these multipliers MAY NOT be the same as the multipliers above!
|
|
|
|
$oid_defsi = [];
|
|
$oid_defsi[1] = ['name' => 'powerFactor', 'class' => 'powerfactor', 'scale' => '0.001', 'descr' => ''];
|
|
$oid_defsi[2] = ['name' => 'voltageLL', 'class' => 'voltage', 'scale' => '1', 'descr' => 'LL'];
|
|
$oid_defsi[3] = ['name' => 'current', 'class' => 'current', 'scale' => '1', 'descr' => ''];
|
|
$oid_defsi[4] = ['name' => 'frequency', 'class' => 'frequency', 'scale' => '0.01', 'descr' => ''];
|
|
$oid_defsi[5] = ['name' => 'currentL1', 'class' => 'current', 'scale' => '1', 'descr' => 'L1'];
|
|
$oid_defsi[6] = ['name' => 'currentL2', 'class' => 'current', 'scale' => '1', 'descr' => 'L2'];
|
|
$oid_defsi[7] = ['name' => 'currentL3', 'class' => 'current', 'scale' => '1', 'descr' => 'L3'];
|
|
$oid_defsi[8] = ['name' => 'voltageL1L2', 'class' => 'voltage', 'scale' => '1', 'descr' => 'L1L2'];
|
|
$oid_defsi[9] = ['name' => 'voltageL2L3', 'class' => 'voltage', 'scale' => '1', 'descr' => 'L2L3'];
|
|
$oid_defsi[10] = ['name' => 'voltageL3L1', 'class' => 'voltage', 'scale' => '1', 'descr' => 'L3L1'];
|
|
|
|
foreach ([25, 26] as $i) {
|
|
foreach ($oid_defsi as $n => $x) {
|
|
$x['index'] = $n + ((24) * 15) + (($i - 25) * 10);
|
|
$x['oid_num'] = '.1.3.6.1.4.1.49314.1.1.1.4.9.' . $x['index'];
|
|
$x['oid_text'] = $x['name'] . $i;
|
|
$x['descr'] = 'Feed ' . $i . (strlen($config['custom']['adf-1-mib'][$i]['descr']) ? ' (' . $config['custom']['adf-1-mib'][$i]['descr'] . ')' : '') . ' ' . $x['descr'];
|
|
$x['value'] = $oids[$x['oid_text']];
|
|
|
|
//print_r($x);
|
|
|
|
if (is_numeric($oids[$x['oid_text']])) {
|
|
discover_sensor_ng($device, $x['class'], $mib, $x['name'], $x['oid_num'], $x['index'], $x['descr'], $x['scale'], $oids[$x['oid_text']], [ 'sensor_type' => 'adf01' ]);
|
|
}
|
|
}
|
|
}
|