librenms/includes/discovery/frequencies.inc.php

79 lines
2.2 KiB
PHP

<?php
$id = $device['device_id'];
$hostname = $device['hostname'];
$community = $device['community'];
$snmpver = $device['snmpver'];
$port = $device['port'];
$valid_freq = array();
echo("Frequencies : ");
## MGE UPS Frequencies
if ($device['os'] == "mgeups")
{
echo("MGE ");
$oids = trim(snmp_walk($device, "1.3.6.1.4.1.705.1.7.1", "-OsqnU"));
if ($debug) { echo($oids."\n"); }
list($unused,$numPhase) = explode(' ',$oids);
for($i = 1; $i <= $numPhase;$i++)
{
$freq_oid = ".1.3.6.1.4.1.705.1.7.2.1.3.$i";
$descr = "Output"; if ($numPhase > 1) $descr .= " Phase $i";
$current = snmp_get($device, $freq_oid, "-Oqv");
if (!$current)
{
$freq_oid .= ".0";
$current = snmp_get($device, $freq_oid, "-Oqv");
}
$current /= 10;
$type = "mge-ups";
$precision = 10;
$index = $i;
echo discover_freq($valid_freq,$device, $freq_oid, $index, $type, $descr, $precision, $lowlimit, $limit, $current);
}
$oids = trim(snmp_walk($device, "1.3.6.1.4.1.705.1.6.1", "-OsqnU"));
if ($debug) { echo($oids."\n"); }
list($unused,$numPhase) = explode(' ',$oids);
for($i = 1; $i <= $numPhase;$i++)
{
$freq_oid = ".1.3.6.1.4.1.705.1.6.2.1.3.$i";
$descr = "Input"; if ($numPhase > 1) $descr .= " Phase $i";
$current = snmp_get($device, $freq_oid, "-Oqv");
if (!$current)
{
$freq_oid .= ".0";
$current = snmp_get($device, $freq_oid, "-Oqv");
}
$current /= 10;
$type = "mge-ups";
$precision = 10;
$index = 100+$i;
echo discover_freq($valid_freq,$device, $freq_oid, $index, $type, $descr, $precision, $lowlimit, $limit, $current);
}
}
## Delete removed sensors
if($debug) { print_r($valid_freq); }
$sql = "SELECT * FROM frequency WHERE device_id = '".$device['device_id']."'";
if ($query = mysql_query($sql))
{
while ($test_freq = mysql_fetch_array($query))
{
$index = $test_freq['freq_index'];
$type = $test_freq['freq_type'];
if($debug) { echo("$type -> $index\n"); }
if(!$valid_freq[$type][$index]) {
echo("-");
mysql_query("DELETE FROM `frequency` WHERE freq_id = '" . $test_freq['freq_id'] . "'");
}
}
}
unset($fan_exists); echo("\n");
?>