Javier Szyszlican
* This program is licensed under the GNU GPL, full terms in the LICENSE file
*/
function discovery_ups ($ip,$rocommunity,$hostid,$param) {
$ups = array();
$UPSMIBS= array(
"ups" => ".1.3.6.1.2.1.33",
"ups_mitsu" => ".1.3.6.1.4.1.13891.101"
);
foreach($UPSMIBS as $key => $UPSMIB) {
// any common variables between the UPS's
$battery_status = array (1=>"battery unknown", 2=>"battery normal", 3=>"battery low", 4=>"battery depleted");
switch($key) {
case "ups":
$upsIdentName_oid = $UPSMIB.".1.1.5.0"; //UPS-MIB::upsIdentName.0
$upsBatteryStatus_oid = $UPSMIB.".1.2.1.0"; //UPS-MIB::upsBatteryStatus.0
break;
case "ups_mitsu":
$upsIdentName_oid = $UPSMIB.".1.5.0";
$upsIdentName = snmp_get($ip, $rocommunity, $upsIdentName_oid);
$upsBatteryStatus_oid = $UPSMIB.".2.1.0";
break;
}
if (!empty($ip) && !empty($rocommunity)) {
$upsIdentName = snmp_get($ip, $rocommunity, $upsIdentName_oid);
if ($upsIdentName!==false) {
$upsBatteryStatus = snmp_get($ip, $rocommunity, $upsBatteryStatus_oid);
if (!empty($upsIdentName) && !empty($upsBatteryStatus))
$ups[1] = array(
"interface"=>"UPS",
"ident"=>$upsIdentName,
"upstype"=>$key,
"admin"=>"ok",
"oper"=>$battery_status[$upsBatteryStatus]
);
}
}
}
return $ups;
}
?>