1) $descr .= " Phase $i"; $current = snmp_get($device, $current_oid, "-Oqv"); if (!$current) { $current_oid .= ".0"; $current = snmp_get($device, $current_oid, "-Oqv"); } $current /= 10; $type = "mge-ups"; $precision = 10; $index = $i; $warnlimit = NULL; $lowlimit = 0; $limit = NULL; echo discover_current($valid_current,$device, $current_oid, $index, $type, $descr, $precision, $lowlimit, $warnlimit, $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++) { $current_oid = ".1.3.6.1.4.1.705.1.6.2.1.6.$i"; $descr = "Input"; if ($numPhase > 1) $descr .= " Phase $i"; $current = snmp_get($device, $current_oid, "-Oqv"); if (!$current) { $current_oid .= ".0"; $current = snmp_get($device, $current_oid, "-Oqv"); } $current /= 10; $type = "mge-ups"; $precision = 10; $index = 100+$i; $warnlimit = NULL; $lowlimit = 0; $limit = NULL; echo discover_current($valid_current,$device, $current_oid, $index, $type, $descr, $precision, $lowlimit, $warnlimit, $limit, $current); } } ## Riello UPS if ($device['os'] == "netmanplus") { echo("NetMan Plus "); $oids = snmp_walk($device, "1.3.6.1.2.1.33.1.2.6", "-Osqn", "UPS-MIB"); if ($debug) { 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; #$current = trim(shell_exec($config['snmpget'] . " -O qv -$snmpver -c $community $hostname:$port $current_oid")) / $precision; $descr = "Battery" . (count(explode("\n",$oids)) == 1 ? '' : ' ' . ($current_id+1)); $type = "netmanplus"; $index = 500+$current_id; discover_current($valid_current,$device, $current_oid, $index, $type, $descr, $precision, NULL, NULL, NULL, $current); } } $oids = trim(snmp_walk($device, "1.3.6.1.2.1.33.1.4.3.0", "-OsqnU")); if ($debug) { 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) $descr .= " Phase $i"; $current = snmp_get($device, $current_oid, "-Oqv"); $type = "netmanplus"; $precision = 1; $index = $i; echo discover_current($valid_current,$device, $current_oid, $index, $type, $descr, $precision, NULL, NULL, NULL, $current); } $oids = trim(snmp_walk($device, "1.3.6.1.2.1.33.1.3.2.0", "-OsqnU")); if ($debug) { echo($oids."\n"); } list($unused,$numPhase) = explode(' ',$oids); for($i = 1; $i <= $numPhase;$i++) { $current_oid = "1.3.6.1.2.1.33.1.3.3.1.4.$i"; $descr = "Input"; if ($numPhase > 1) $descr .= " Phase $i"; $current = snmp_get($device, $current_oid, "-Oqv"); $type = "netmanplus"; $precision = 1; $index = 100+$i; echo discover_current($valid_current,$device, $current_oid, $index, $type, $descr, $precision, NULL, NULL, NULL, $current); } $oids = trim(snmp_walk($device, "1.3.6.1.2.1.33.1.5.2.0", "-OsqnU")); if ($debug) { echo($oids."\n"); } list($unused,$numPhase) = explode(' ',$oids); for($i = 1; $i <= $numPhase;$i++) { $current_oid = "1.3.6.1.2.1.33.1.5.3.1.3.$i"; $descr = "Bypass"; if ($numPhase > 1) $descr .= " Phase $i"; $current = snmp_get($device, $current_oid, "-Oqv"); $type = "netmanplus"; $precision = 1; $index = 200+$i; echo discover_current($valid_current,$device, $current_oid, $index, $type, $descr, $precision, NULL, NULL, NULL, $current); } } if ($device['os'] == "gamatronicups") { for($i = 1; $i <= 3 ;$i++) { $current_oid = "GAMATRONIC-MIB::gamatronicLTD.5.4.1.1.3.$i"; $descr = "Input Phase $i"; $current = snmp_get($device, $current_oid, "-Oqv"); $type = "gamatronicups"; $precision = 1; $index = $i; $lowlimit = 0; $warnlimit = NULL; $limit = NULL; echo discover_current($valid_current,$device, $current_oid, $index, $type, $descr, $precision, $lowlimit, $warnlimit, $limit, $current); } for($i = 1; $i <= 3 ;$i++) { $current_oid = "GAMATRONIC-MIB::gamatronicLTD.5.5.1.1.3.$i"; $descr = "Output Phase $i"; $current = snmp_get($device, $current_oid, "-Oqv"); $type = "gamatronicups"; $precision = 1; $index = 100+$i; $lowlimit = 0; $warnlimit = NULL; $limit = NULL; echo discover_current($valid_current,$device, $current_oid, $index, $type, $descr, $precision, $lowlimit, $warnlimit, $limit, $current); } } ## Delete removed sensors if($debug) { print_r($valid_current); } $sql = "SELECT * FROM current WHERE device_id = '".$device['device_id']."'"; if ($query = mysql_query($sql)) { while ($test_current = mysql_fetch_array($query)) { $index = $test_current['current_index']; $type = $test_current['current_type']; if($debug) { echo("$type -> $index\n"); } if(!$valid_current[$type][$index]) { echo("-"); mysql_query("DELETE FROM `current` WHERE current_id = '" . $test_current['current_id'] . "'"); } } } unset($valid_current); echo("\n"); ?>