$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}"; $descr = 'Input'; if ($numPhase > 1) { $descr .= " Phase {$i}"; } $current = snmp_get($device, $freq_oid, '-Oqv') / 10; $type = 'rfc1628'; $divisor = get_device_divisor($device, $_tmp_serial, 'frequencies'); $index = '3.2.0.' . $i; discover_sensor($valid['sensor'], 'frequency', $device, $freq_oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $current); } $freq_oid = '.1.3.6.1.2.1.33.1.4.2.0'; $descr = 'Output'; $current = snmp_get($device, $freq_oid, '-Oqv') / 10; $type = 'rfc1628'; $divisor = get_device_divisor($device, $_tmp_serial, 'frequencies'); $index = '4.2.0'; discover_sensor($valid['sensor'], 'frequency', $device, $freq_oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $current); $freq_oid = '.1.3.6.1.2.1.33.1.5.1.0'; $descr = 'Bypass'; $current = snmp_get($device, $freq_oid, '-Oqv') / 10; $type = 'rfc1628'; $divisor = get_device_divisor($device, $_tmp_serial, 'frequencies'); $index = '5.1.0'; discover_sensor($valid['sensor'], 'frequency', $device, $freq_oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $current); } //end if
<?php $divisor = get_device_divisor($device, $_tmp_serial, 'current'); // RFC1628 UPS if (isset($config['modules_compat']['rfc1628'][$device['os']]) && $config['modules_compat']['rfc1628'][$device['os']]) { echo 'RFC1628 '; $oids = snmp_walk($device, '1.3.6.1.2.1.33.1.2.6', '-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); $current_id = $split_oid[count($split_oid) - 1]; $current_oid = "1.3.6.1.2.1.33.1.2.6.{$current_id}"; $precision = 10; $current = snmp_get($device, $current_oid, '-O vq') / $precision; $descr = 'Battery' . (count(explode("\n", $oids)) == 1 ? '' : ' ' . ($current_id + 1)); $type = 'rfc1628'; $index = 500 + $current_id; discover_sensor($valid['sensor'], 'current', $device, $current_oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $current); } } $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) {
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}"; } $type = 'rfc1628'; $divisor = get_device_divisor($device, $_tmp_serial, 'voltages'); $current = snmp_get($device, $volt_oid, '-Oqv') / $divisor; $divisor = get_device_divisor($device, $_tmp_serial, 'voltages'); $index = 100 + $i; discover_sensor($valid['sensor'], 'voltage', $device, $volt_oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $current); } $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}"; } $type = 'rfc1628'; $divisor = get_device_divisor($device, $_tmp_serial, 'voltages'); $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); } } //end if