diff --git a/includes/discovery/functions.inc.php b/includes/discovery/functions.inc.php index b9ae6243f0..4d86493af0 100644 --- a/includes/discovery/functions.inc.php +++ b/includes/discovery/functions.inc.php @@ -896,7 +896,15 @@ function get_device_divisor($device, $serial, $sensor) if ($sensor == 'current' || $sensor == 'frequencies') { if (version_compare($serial, '12.06.0068', '>=')) { $divisor = 10; - } elseif (version_compare($serial, '12.04.0055', '>=')) { + } elseif (version_compare($serial, '12.04.0055', '=')) { + $divisor = 10; + } elseif (version_compare($serial, '12.04.0056', '>=')) { + $divisor = 1; + } + } elseif ($sensor == 'load') { + if (version_compare($serial, '12.06.0064', '=')) { + $divisor = 10; + } else { $divisor = 1; } } elseif ($sensor == 'voltages') { diff --git a/includes/discovery/sensors/frequencies/rfc1628.inc.php b/includes/discovery/sensors/frequencies/rfc1628.inc.php index 88204ba39b..b3f92db133 100644 --- a/includes/discovery/sensors/frequencies/rfc1628.inc.php +++ b/includes/discovery/sensors/frequencies/rfc1628.inc.php @@ -12,10 +12,9 @@ for ($i = 1; $i <= $numPhase; $i++) { if ($numPhase > 1) { $descr .= " Phase $i"; } - - $current = (snmp_get($device, $freq_oid, '-Oqv') / 10); - $type = 'rfc1628'; $divisor = get_device_divisor($device, $pre_cache['poweralert_serial'], 'frequencies'); + $current = (snmp_get($device, $freq_oid, '-Oqv') / $divisor); + $type = 'rfc1628'; $index = '3.2.0.'.$i; discover_sensor($valid['sensor'], 'frequency', $device, $freq_oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $current); @@ -23,18 +22,18 @@ for ($i = 1; $i <= $numPhase; $i++) { $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, $pre_cache['poweralert_serial'], 'frequencies'); +$current = (snmp_get($device, $freq_oid, '-Oqv') / $divisor); +$type = 'rfc1628'; $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, $pre_cache['poweralert_serial'], 'frequencies'); +$current = (snmp_get($device, $freq_oid, '-Oqv') / $divisor); +$type = 'rfc1628'; $index = '5.1.0'; discover_sensor($valid['sensor'], 'frequency', $device, $freq_oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $current); diff --git a/includes/discovery/sensors/load/rfc1628.inc.php b/includes/discovery/sensors/load/rfc1628.inc.php index a586e13989..53a1523490 100644 --- a/includes/discovery/sensors/load/rfc1628.inc.php +++ b/includes/discovery/sensors/load/rfc1628.inc.php @@ -11,13 +11,14 @@ foreach (explode("\n", $oids) as $data) { if ($data) { list($oid,$descr) = explode(' ', $data, 2); $split_oid = explode('.', $oid); + $divisor = get_device_divisor($device, $pre_cache['poweralert_serial'], 'load'); $current_id = $split_oid[(count($split_oid) - 1)]; $current_oid = ".1.3.6.1.2.1.33.1.4.4.1.5.$current_id"; - $current = snmp_get($device, $current_oid, '-O vq'); + $current = (snmp_get($device, $current_oid, '-O vq') / $divisor); $descr = 'Percentage load'.(count(explode("\n", $oids)) == 1 ? '' : ' '.($current_id + 1)); $type = 'rfc1628'; $index = (500 + $current_id); - discover_sensor($valid['sensor'], 'load', $device, $current_oid, $index, $type, $descr, '1', '1', null, null, null, null, $current); + discover_sensor($valid['sensor'], 'load', $device, $current_oid, $index, $type, $descr, $divisor, '1', null, null, null, null, $current); } }