Hallöchen,
ich setze gerade meinen IPS Server neu auf. Um nicht ständig das PHP SNMP Modul manuell nachpflegen zu müssen, habe ich mich nun auf das tool ssnmpq gestürzt. Danke an msc für die Inspiration
Installation: Ist im Header beschrieben. Ganz Easy
Das Script tut soweit alles alleine: Variablen anlegen incl. Variablenprofile, ein zyklisches Ereignis alle X Minuten (konfigurierbar), sich selbst auf hidden setzen usw. Sofern sinnvoll wird auch das Logging der Variablen aktiviert.
Viel Spaß
<?PHP
/*
Das folgende Script fragt beim Aufruf eine APC USV ab und speichert die Werte in die entsprechenden Variablen.
Die Variablen und deren Profile werden beim ersten Start des Scriptes automatisch generiert sofern sie nicht schon existieren.
Das Script setzt sich selbst auf "hidden", damit ein Link auf die Instanz im Webfront/iFront das Script nicht anzeigt.
Installation:
1. Eine neue Instanz anlegen (Dummy-Module)
2. Script unter dieser Instanz anlegen und den Inhalt dieser Datei dort einfügen
3. Script speichern und einmal ausführen
4. Fertig ;-)
Viel Spaß!
Autor: Konfu
Grundlage: Das Script von "sanman" aus dem Thread "SNMP Geräte auslesen am Beispiel einer APC USV"
Kontakt: Bitte über das IPS Forum oder als PN
*/
// ## Veränderbare Daten ##############################################################################
// USV Host-Config
$host = "192.168.xxx.xxx";
$community = "xxxxxxxxxx";
// ssnmpq Binary
$binary = "C:\Programme\ssnmpq\ssnmpq.exe";
// In welchem Abstand (Minuten) soll das Script ausgeführt werden?
$minutes = 5;
// Variablen-Namen definieren
$upsstatus = "USV Status";
$load = "USV Auslastung";
$batstat = "Batterie Status";
$batcap = "Batterie Ladezustand";
$batrem = "Batterielaufzeit bei Stromausfall";
$batstatus = "Zustand der Batterien";
$battemp = "Batterie Temperatur";
$voltin = "Spannung am Eingang";
$voltout = "Spannung am Ausgang";
$freq = "Frequenz Ausgangsspannung";
$switchrsn = "Grund fuer Umschalten auf Batteriebetrieb";
$selftest = "Ergebnis letzter Selbsttest";
$lasttest = "Datum letzter Selbsttest";
$lastread = "Datum letzte SNMP Abfrage";
//Debug Ausgabe aktivieren?
$debug = false;
//## Ab hier nichts mehr ändern #######################################################################
//OIDs
$upsstatusOID = ".1.3.6.1.4.1.318.1.1.1.4.1.1.0";
$loadOID = ".1.3.6.1.4.1.318.1.1.1.4.2.3.0";
$batstatOID = ".1.3.6.1.4.1.318.1.1.1.2.1.1.0";
$batcapOID = ".1.3.6.1.4.1.318.1.1.1.2.2.1.0";
$batremOID = ".1.3.6.1.4.1.318.1.1.1.2.2.3.0";
$batstatusOID = ".1.3.6.1.4.1.318.1.1.1.2.2.4.0";
$battempOID = ".1.3.6.1.4.1.318.1.1.1.2.2.2.0";
$voltinOID = ".1.3.6.1.4.1.318.1.1.1.3.2.1.0";
$voltoutOID = ".1.3.6.1.4.1.318.1.1.1.4.2.1.0";
$freqOID = ".1.3.6.1.4.1.318.1.1.1.4.2.2.0";
$switchrsnOID = ".1.3.6.1.4.1.318.1.1.1.3.2.5.0";
$selftestOID = ".1.3.6.1.4.1.318.1.1.1.7.2.3.0";
$lasttestOID = ".1.3.6.1.4.1.318.1.1.1.7.2.4.0";
//SNMP Query Funktion
function snmpget($oid)
{
global $host, $community, $binary;
$oid = ltrim($oid,".");
$value = IPS_Execute($binary, "/h:$host /c:$community /o:$oid /v", false, true);
$value = trim($value);
return $value;
}
// ID des Archive Handlers auslesen
$archive = IPS_GetInstanceIDByName ( "Archive Handler", 0 );
// Variablen auf Existenz Prüfen. Wenn es die Variable nicht gibt wird sie angelegt.
//Zähler für Positionsbestimmung setzen
$zaehler = 1;
// Wo sind wir?
$parentID = IPS_GetObject($IPS_SELF);
$parentID = $parentID['ParentID'];
//Dieses Script auf "hidden" setzen, damit es im Webfront nicht auftaucht.
IPS_SetHidden($IPS_SELF, true);
// Ereignis für zyklische Abfrage anlegen, sofern nicht schon vorhanden
// Vorgehen:
// 1. Prüfen ob dieses Script Children hat (Ereignisse sind Children)
// 2. Prüfen ob eines dieser Childs ein Ereignis ist
// 3. Prüfen ob eines dieser Ereignisse ein zyklisches Ereignis ist
// 4. Bei zylischen Ereignissen den Zähler $ereignisse hochzählen
// 5. Wenn die Anzahl der zyklischen Ereignisse ($ereignisse) 0 ist, wird ein
// passendes Ereignis angelegt
$ereignisse = 0;
$children = IPS_GetChildrenIDs($IPS_SELF);
$amount = count($children);
if ($amount > 0)
{
foreach ($children as $id)
{
$array = IPS_GetObject($id);
$type = $array["ObjectType"];
if ($type == 4)
{
$event = IPS_GetEvent ( $id );
if ($event["EventType"]== 1)
{
$ereignisse++;
}
}
}
}
if ($ereignisse == 0)
{
$eid = IPS_CreateEvent(1);
IPS_SetEventCyclic($eid, 0, 0, 0, 2, 2 ,$minutes); //Alle 2 Minuten
IPS_SetParent($eid, $_IPS['SELF']);
IPS_SetEventActive($eid, true);
}
//-------------------------------------------------------------
// USV Status
if (!IPS_VariableProfileExists("UPS_Status"))
{
IPS_CreateVariableProfile("UPS_Status", 1);
IPS_SetVariableProfileAssociation("UPS_Status", 1, "Unbekannt", "", 0xFF0000);
IPS_SetVariableProfileAssociation("UPS_Status", 2, "Online", "", 0x00FF00);
IPS_SetVariableProfileAssociation("UPS_Status", 3, "On Battery", "", 0xFFFF00);
IPS_SetVariableProfileAssociation("UPS_Status", 4, "On Smart Boost", "", 0xFFFF00);
IPS_SetVariableProfileAssociation("UPS_Status", 5, "Timed Sleeping", "", 0xFFFF00);
IPS_SetVariableProfileAssociation("UPS_Status", 6, "Software Bypass", "", 0xFFFF00);
IPS_SetVariableProfileAssociation("UPS_Status", 7, "Off", "", 0xC0C0C0);
IPS_SetVariableProfileAssociation("UPS_Status", 8, "Rebooting", "", 0xFFFF00);
IPS_SetVariableProfileAssociation("UPS_Status", 9, "Switched Bypass", "", 0xFF0000);
IPS_SetVariableProfileAssociation("UPS_Status", 10, "Hardware Failure Bypass", "", 0xFF0000);
IPS_SetVariableProfileAssociation("UPS_Status", 11, "Sleeping Until Power Returns", "", 0xC0C0C0);
IPS_SetVariableProfileAssociation("UPS_Status", 12, "On Smart Trim", "", 0xFFFF00);
IPS_SetVariableProfileIcon("UPS_Status", "Power");
if ($debug) { echo "Profil UPS_Status wurde angelegt.
"; }
}
$Var = @IPS_GetVariableIDByName($upsstatus, $parentID);
if ($Var === false) //Wenn es die Variable nicht gibt, wird sie angelegt ...
{
$upsstatusID = IPS_CreateVariable(1);
IPS_SetName($upsstatusID, $upsstatus);
IPS_SetParent($upsstatusID, $parentID);
IPS_SetVariableCustomProfile($upsstatusID, "UPS_Status");
IPS_SetPosition($upsstatusID, $zaehler);
AC_SetLoggingStatus($archive, $upsstatusID, true);
if ($debug) { echo "Variable $upsstatusID ($upsstatus) wurde angelegt.
"; }
}
else { $upsstatusID = $Var; }
$Var = false; //Sicher is sicher ...
$zaehler++;
//-------------------------------------------------------------
// USV Auslastung
if (!IPS_VariableProfileExists("UPS_Percentage"))
{
IPS_CreateVariableProfile("UPS_Percentage", 1);
IPS_SetVariableProfileText("UPS_Percentage", "", " %");
IPS_SetVariableProfileValues("UPS_Percentage", 0, 100, 1);
IPS_SetVariableProfileDigits("UPS_Percentage", 0);
IPS_SetVariableProfileIcon("UPS_Percentage", "Intensity");
if ($debug) { echo "Profil UPS_Percentage wurde angelegt.
"; }
}
$Var = @IPS_GetVariableIDByName($load, $parentID);
if ($Var === false) //Wenn es die Variable nicht gibt, wird sie angelegt ...
{
$loadID = IPS_CreateVariable(1);
IPS_SetName($loadID, $load);
IPS_SetParent($loadID, $parentID);
IPS_SetVariableCustomProfile($loadID, "UPS_Percentage");
IPS_SetPosition($loadID, $zaehler);
AC_SetLoggingStatus($archive, $loadID, true);
if ($debug) { echo "Variable $loadID ($load) wurde angelegt.
"; }
}
else { $loadID = $Var; }
$Var = false; //Sicher is sicher ...
$zaehler++;
//-------------------------------------------------------------
// Batterie Status
if (!IPS_VariableProfileExists("UPS_BatteryStatus"))
{
IPS_CreateVariableProfile("UPS_BatteryStatus", 1);
IPS_SetVariableProfileAssociation("UPS_BatteryStatus", 1, "Unbekannt", "", 0xFFFF00);
IPS_SetVariableProfileAssociation("UPS_BatteryStatus", 2, "Geladen", "", 0x00FF00);
IPS_SetVariableProfileAssociation("UPS_BatteryStatus", 3, "Leer", "", 0xFF0000);
IPS_SetVariableProfileIcon("UPS_BatteryStatus", "Battery");
if ($debug) { echo "Profil UPS_BatteryStatus wurde angelegt.
"; }
}
$Var = @IPS_GetVariableIDByName($batstat, $parentID);
if ($Var === false)
{
// Variable Anlegen
$batstatID = IPS_CreateVariable(1);
IPS_SetName($batstatID, $batstat);
IPS_SetParent($batstatID, $parentID);
IPS_SetVariableCustomProfile($batstatID, "UPS_BatteryStatus");
IPS_SetPosition($batstatID, $zaehler);
AC_SetLoggingStatus($archive, $batstatID, true);
if ($debug) { echo "Variable $batstatID ($batstat) wurde angelegt.
"; }
}
else { $batstatID = $Var; }
$Var = false; //Sicher is sicher ...
$zaehler++;
//-------------------------------------------------------------
// Batterie Kapazit‰t
$Var = @IPS_GetVariableIDByName($batcap, $parentID);
if ($Var === false)
{
// Variable Anlegen
$batcapID = IPS_CreateVariable(1);
IPS_SetName($batcapID, $batcap);
IPS_SetParent($batcapID, $parentID);
IPS_SetVariableCustomProfile($batcapID, "UPS_Percentage");
IPS_SetPosition($batcapID, $zaehler);
AC_SetLoggingStatus($archive, $batcapID, true);
if ($debug) { echo "Variable $batcapID ($batcap) wurde angelegt.
"; }
}
else { $batcapID = $Var; }
$Var = false; //Sicher is sicher ...
$zaehler++;
//-------------------------------------------------------------
// Batterie Restlaufzeit
if (!IPS_VariableProfileExists("UPS_BatteryRuntime"))
{
IPS_CreateVariableProfile("UPS_BatteryRuntime", 1);
IPS_SetVariableProfileText("UPS_BatteryRuntime", "", " Minuten");
IPS_SetVariableProfileDigits("UPS_BatteryRuntime", 0);
IPS_SetVariableProfileIcon("UPS_BatteryRuntime", "Clock");
if ($debug) { echo "Profil UPS_BatteryRuntime wurde angelegt.
"; }
}
$Var = @IPS_GetVariableIDByName($batrem, $parentID);
if ($Var === false) //Wenn es die Variable nicht gibt, wird sie angelegt ...
{
$batremID = IPS_CreateVariable(1);
IPS_SetName($batremID, $batrem);
IPS_SetParent($batremID, $parentID);
IPS_SetVariableCustomProfile($batremID, "UPS_BatteryRuntime");
IPS_SetPosition($batremID, $zaehler);
AC_SetLoggingStatus($archive, $batremID, true);
if ($debug) { echo "Variable $batremID ($batrem) wurde angelegt.
"; }
}
else { $batremID = $Var; }
$Var = false; //Sicher is sicher ...
$zaehler++;
//-------------------------------------------------------------
// Batterie tauschen
if (!IPS_VariableProfileExists("UPS_BatteryChange"))
{
IPS_CreateVariableProfile("UPS_BatteryChange", 1);
IPS_SetVariableProfileAssociation("UPS_BatteryChange", 1, "Batterien sind OK", "", 0x00FF00);
IPS_SetVariableProfileAssociation("UPS_BatteryChange", 2, "Batterien müssen getauscht werden", "", 0xFF0000);
IPS_SetVariableProfileIcon("UPS_BatteryChange", "Battery");
if ($debug) { echo "Profil UPS_BatteryChange wurde angelegt.
"; }
}
$Var = @IPS_GetVariableIDByName($batstatus, $parentID);
if ($Var === false)
{
// Variable Anlegen
$batstatusID = IPS_CreateVariable(1);
IPS_SetName($batstatusID, $batstatus);
IPS_SetParent($batstatusID, $parentID);
IPS_SetVariableCustomProfile($batstatusID, "UPS_BatteryChange");
IPS_SetPosition($batstatusID, $zaehler);
AC_SetLoggingStatus($archive, $batstatusID, true);
if ($debug) { echo "Variable $batstatusID ($batstatus) wurde angelegt.
"; }
}
else { $batstatusID = $Var; }
$Var = false; //Sicher is sicher ...
$zaehler++;
//-------------------------------------------------------------
// Batterie Temperatur
if (!IPS_VariableProfileExists("UPS_BatteryTemperature"))
{
IPS_CreateVariableProfile("UPS_BatteryTemperature", 2);
IPS_SetVariableProfileText("UPS_BatteryTemperature", "", " °C");
IPS_SetVariableProfileValues("UPS_BatteryTemperature", 0, 100, 0.5);
IPS_SetVariableProfileDigits("UPS_BatteryTemperature", 1);
IPS_SetVariableProfileIcon("UPS_BatteryTemperature", "Temperature");
if ($debug) { echo "Profil UPS_BatteryTemperature wurde angelegt.
"; }
}
$Var = @IPS_GetVariableIDByName($battemp, $parentID);
if ($Var === false) //Wenn es die Variable nicht gibt, wird sie angelegt ...
{
$battempID = IPS_CreateVariable(2);
IPS_SetName($battempID, $battemp);
IPS_SetParent($battempID, $parentID);
IPS_SetVariableCustomProfile($battempID, "UPS_BatteryTemperature");
IPS_SetPosition($battempID, $zaehler);
AC_SetLoggingStatus($archive, $battempID, true);
if ($debug) { echo "Variable $battempID ($battemp) wurde angelegt.
"; }
}
else { $battempID = $Var; }
$Var = false; //Sicher is sicher ...
$zaehler++;
//-------------------------------------------------------------
// Batterie Eingangsspannung
if (!IPS_VariableProfileExists("UPS_Voltage"))
{
IPS_CreateVariableProfile("UPS_Voltage", 2);
IPS_SetVariableProfileText("UPS_Voltage", "", " V");
IPS_SetVariableProfileDigits("UPS_Voltage", 1);
IPS_SetVariableProfileIcon("UPS_Voltage", "Gauge");
if ($debug) { echo "Profil UPS_Voltage wurde angelegt.
"; }
}
$Var = @IPS_GetVariableIDByName($voltin, $parentID);
if ($Var === false) //Wenn es die Variable nicht gibt, wird sie angelegt ...
{
$voltinID = IPS_CreateVariable(2);
IPS_SetName($voltinID, $voltin);
IPS_SetParent($voltinID, $parentID);
IPS_SetVariableCustomProfile($voltinID, "UPS_Voltage");
IPS_SetPosition($voltinID, $zaehler);
AC_SetLoggingStatus($archive, $voltinID, true);
if ($debug) { echo "Variable $voltinID ($voltin) wurde angelegt.
"; }
}
else { $voltinID = $Var; }
$Var = false; //Sicher is sicher ...
$zaehler++;
//-------------------------------------------------------------
// Batterie Ausgangsspannung
$Var = @IPS_GetVariableIDByName($voltout, $parentID);
if ($Var === false) //Wenn es die Variable nicht gibt, wird sie angelegt ...
{
$voltoutID = IPS_CreateVariable(2);
IPS_SetName($voltoutID, $voltout);
IPS_SetParent($voltoutID, $parentID);
IPS_SetVariableCustomProfile($voltoutID, "UPS_Voltage");
IPS_SetPosition($voltoutID, $zaehler);
AC_SetLoggingStatus($archive, $voltoutID, true);
if ($debug) { echo "Variable $voltoutID ($voltout) wurde angelegt.
"; }
}
else { $voltoutID = $Var; }
$Var = false; //Sicher is sicher ...
$zaehler++;
//-------------------------------------------------------------
// Netzfrequenz
if (!IPS_VariableProfileExists("UPS_Frequency"))
{
IPS_CreateVariableProfile("UPS_Frequency", 1);
IPS_SetVariableProfileText("UPS_Frequency", "", " Hz");
IPS_SetVariableProfileValues("UPS_Frequency", 40, 60, 1);
IPS_SetVariableProfileDigits("UPS_Frequency", 0);
IPS_SetVariableProfileIcon("UPS_Frequency", "Graph");
if ($debug) { echo "Profil UPS_Frequency wurde angelegt.
"; }
}
$Var = @IPS_GetVariableIDByName($freq, $parentID);
if ($Var === false) //Wenn es die Variable nicht gibt, wird sie angelegt ...
{
$freqID = IPS_CreateVariable(1);
IPS_SetName($freqID, $freq);
IPS_SetParent($freqID, $parentID);
IPS_SetVariableCustomProfile($freqID, "UPS_Frequency");
IPS_SetPosition($freqID, $zaehler);
AC_SetLoggingStatus($archive, $freqID, true);
if ($debug) { echo "Variable $freqID ($freq) wurde angelegt.
"; }
}
else { $freqID = $Var; }
$Var = false; //Sicher is sicher ...
$zaehler++;
//-------------------------------------------------------------
// Umschaltgrund
if (!IPS_VariableProfileExists("UPS_SwitchReason"))
{
IPS_CreateVariableProfile("UPS_SwitchReason", 1);
IPS_SetVariableProfileAssociation("UPS_SwitchReason", 1, "Kein Ereigniss", "", -1);
IPS_SetVariableProfileAssociation("UPS_SwitchReason", 2, "zu hohe Eingangsspannung", "", -1);
IPS_SetVariableProfileAssociation("UPS_SwitchReason", 3, "Spannungsabfall", "", -1);
IPS_SetVariableProfileAssociation("UPS_SwitchReason", 4, "Stromausfall(keine Eingangsspannung)", "", -1);
IPS_SetVariableProfileAssociation("UPS_SwitchReason", 5, "Geringer tempor‰rer Leistungsabfall", "", -1);
IPS_SetVariableProfileAssociation("UPS_SwitchReason", 6, "Gro?er tempor‰rer Leistungsabfall", "", -1);
IPS_SetVariableProfileAssociation("UPS_SwitchReason", 7, "kleine Spannungsspitze", "", -1);
IPS_SetVariableProfileAssociation("UPS_SwitchReason", 8, "gro?e Spannungsspitze", "", -1);
IPS_SetVariableProfileAssociation("UPS_SwitchReason", 9, "USV Selbsttest", "", -1);
IPS_SetVariableProfileAssociation("UPS_SwitchReason", 10, "Ausgleichen von Spannungsschwankungen", "", -1);
IPS_SetVariableProfileIcon("UPS_SwitchReason", "Information");
if ($debug) { echo "Profil UPS_SwitchReason wurde angelegt.
"; }
}
$Var = @IPS_GetVariableIDByName($switchrsn, $parentID);
if ($Var === false) //Wenn es die Variable nicht gibt, wird sie angelegt ...
{
$switchrsnID = IPS_CreateVariable(1);
IPS_SetName($switchrsnID, $switchrsn);
IPS_SetParent($switchrsnID, $parentID);
IPS_SetVariableCustomProfile($switchrsnID, "UPS_SwitchReason");
IPS_SetPosition($switchrsnID, $zaehler);
AC_SetLoggingStatus($archive, $switchrsnID, true);
if ($debug) { echo "Variable $switchrsnID ($switchrsn) wurde angelegt.
"; }
}
else { $switchrsnID = $Var; }
$Var = false; //Sicher is sicher ...
$zaehler++;
//-------------------------------------------------------------
// Datum letzter Selbsttest
if (!IPS_VariableProfileExists("UPS_Date"))
{
IPS_CreateVariableProfile("UPS_Date", 3);
IPS_SetVariableProfileIcon("UPS_Date", "Information");
if ($debug) { echo "Profil UPS_Date wurde angelegt.
"; }
}
$Var = @IPS_GetVariableIDByName($lasttest, $parentID);
if ($Var === false) //Wenn es die Variable nicht gibt, wird sie angelegt ...
{
$lasttestID = IPS_CreateVariable(3);
IPS_SetName($lasttestID, $lasttest);
IPS_SetParent($lasttestID, $parentID);
IPS_SetVariableCustomProfile($lasttestID, "UPS_Date");
IPS_SetPosition($lasttestID, $zaehler);
if ($debug) { echo "Variable $lasttestID ($lasttest) wurde angelegt.
"; }
}
else { $lasttestID = $Var; }
$Var = false; //Sicher is sicher ...
$zaehler++;
//-------------------------------------------------------------
// Ergebnis letzter Selbsttest
if (!IPS_VariableProfileExists("UPS_LastSelftest"))
{
IPS_CreateVariableProfile("UPS_LastSelftest", 1);
IPS_SetVariableProfileAssociation("UPS_LastSelftest", 1, "Erfolgreich", "", 0x00FF00);
IPS_SetVariableProfileAssociation("UPS_LastSelftest", 2, "Fehler", "", 0xFF0000);
IPS_SetVariableProfileAssociation("UPS_LastSelftest", 3, "Unbekannt", "", 0xFFFFFF);
IPS_SetVariableProfileAssociation("UPS_LastSelftest", 4, "in Bearbeitung", "", 0xC0C0C0);
IPS_SetVariableProfileIcon("UPS_LastSelftest", "Information");
if ($debug) { echo "Profil UPS_LastSelftest wurde angelegt.
"; }
}
$Var = @IPS_GetVariableIDByName($selftest, $parentID);
if ($Var === false) //Wenn es die Variable nicht gibt, wird sie angelegt ...
{
$selftestID = IPS_CreateVariable(1);
IPS_SetName($selftestID, $selftest);
IPS_SetParent($selftestID, $parentID);
IPS_SetVariableCustomProfile($selftestID, "UPS_LastSelftest");
IPS_SetPosition($selftestID, $zaehler);
AC_SetLoggingStatus($archive, $selftestID, true);
if ($debug) { echo "Variable $selftestID ($selftest) wurde angelegt.
"; }
}
else { $selftestID = $Var; }
$zaehler++;
//-------------------------------------------------------------
// Datum letzte Abfrage
$Var = @IPS_GetVariableIDByName($lastread, $parentID);
if ($Var === false) //Wenn es die Variable nicht gibt, wird sie angelegt ...
{
$lastreadID = IPS_CreateVariable(3);
IPS_SetName($lastreadID, $lastread);
IPS_SetParent($lastreadID, $parentID);
IPS_SetVariableCustomProfile($lastreadID, "UPS_Date");
IPS_SetPosition($lastreadID, $zaehler);
if ($debug) { echo "Variable $lastreadID ($lastread) wurde angelegt.
"; }
}
else { $lastreadID = $Var; }
$Var = false; //Sicher is sicher ...
$zaehler++;
//-------------------------------------------------------------
$Var = false; //Sicher is sicher ...
//==============================================================================
// SNMP Querries
$value = snmpget ($upsstatusOID);
SetValue($upsstatusID, $value);
if ($debug) { echo "$upsstatus : $value
"; }
$value = snmpget ($loadOID);
SetValue($loadID, $value);
if ($debug) { echo "$load : $value
"; }
$value = snmpget ($batstatOID);
SetValue($batstatID, $value);
if ($debug) { echo "$batstat : $value
"; }
$value = snmpget ($batcapOID);
SetValue($batcapID, $value);
if ($debug) { echo "$batcap : $value
"; }
$value = snmpget ($batremOID);
$hour = substr($value, 0, 2);
$min = substr($value, 3, 2);
$runtime = $hour*60+$min;
$value = (int)$runtime;
SetValue($batremID, $runtime);
if ($debug) { echo "$batrem : $runtime
"; }
$value = snmpget ($batstatusOID);
SetValue($batstatusID, $value);
if ($debug) { echo "$batstatus : $value
"; }
$value = snmpget ($battempOID);
SetValue($battempID, $value);
if ($debug) { echo "$battemp : $value
"; }
$value = snmpget ($voltinOID);
SetValue($voltinID, $value);
if ($debug) { echo "$voltin : $value
"; }
$value = snmpget ($voltoutOID);
SetValue($voltoutID, $value);
if ($debug) { echo "$voltout : $value
"; }
$value = snmpget ($freqOID);
SetValue($freqID, $value);
if ($debug) { echo "$freq : $value
"; }
$value = snmpget ($switchrsnOID);
SetValue($switchrsnID, $value);
if ($debug) { echo "$switchrsn : $value
"; }
$value = snmpget ($selftestOID);
SetValue($selftestID, $value);
if ($debug) { echo "$selftest : $value
"; }
$value = snmpget ($lasttestOID);
$d1 = substr ( $value, 0, 2 );
$d2 = substr ( $value, 3, 2 );
$d3 = substr ( $value, 6, 4 );
$value = $d2 .".". $d1 . ".". $d3;
SetValue($lasttestID, $value);
if ($debug) { echo "$lasttest : $value
"; }
$date = date("d.m.Y H:i:s");
SetValueString($lastreadID, $date);
if ($debug) { echo "$lastreadID : $date
"; }
?>