Rechnerüberwachung mit SpeedFan

Zur Überwachung meines Rechners habe ich das Programm SpeedFan installiert. Hiermit lassen sich Temperaturen, Lüfter, Spannungen und zum Teil auch Festplatten überwachen.
Nach Installation des Programm muß es zunächst konfiguriert werden :

SpeedFan1.GIF

  • Konfigurieren

  • Reiter „Log“ wählen

SpeedFan3.GIF

  • „Aktivert“ wählen

  • Quelle z.B. „Temperaturen“ wählen

  • z.B. Temp1 wählen

SpeedFan2.GIF

  • Häckchen „geloggt“ wählen

Das gleiche für „Lüfter“, „Spannungen“ und „Geschwindigkeiten“ wählen.

Konfiguration mit „OK“ abschließen.

Mit folgenden Event Script lese ich die geschriebe Datei in IP-Symcon ein :


<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : SpeedFan.ips.php
Trigger  : 
Interval : Je nach Verwendungszweck, z.B. alle 5 Min zur Darstellung als Graph
*/

$FileName="C:\Programme\SpeedFan\SFLog" . date("Ymd") . ".csv";

// IPS_LogMessage('SpeedFan',"FileName=".$FileName);

if (file_exists($FileName))
{
   $handle = fopen($FileName, "r");
   // Überschriften ermitteln

   $headers = fgetcsv ($handle, 1000, chr(9));

   // Nun etwa ans Dateiende gehen
   $filepos = filesize($FileName);
   if ($filepos > 1000)
   {
//      IPS_LogMessage('SpeedFan',"filepos=".$filepos);
      fseek($handle, $filepos-1000);
   }


   // Die letze(n) Zeile(n) lesen
   $line="";
   while (!feof($handle))
   {
      $line2 = $line;
      $line = fgets($handle, 4096);
   }
   fclose($handle);
//   IPS_LogMessage('SpeedFan',"Line=" .$line );
//   IPS_LogMessage('SpeedFan',"Line2=" .$line2 );

   // Werte in ein Array aufsplitten
   $werte = explode(chr(9), $line2);
   $i = 0;
   foreach ($headers as $varName)
   {
      $var="SpeedFan_".$varName;
      // Bei bedarf die Variablen erstellen
      if (IPS_VariableExists( $var ) == false)
      {
         IPS_CreateVariable($var, "Float");
      }

      $wert=$werte[$i];
      IPS_LogMessage('SpeedFan',"" .$var ."=". floatval($wert));
      SetValueFloat($var, floatval($wert));

      $i=$i+1;
   }

   
} else {
      IPS_LogMessage('SpeedFan',"Die Datei ".$FileName . "existiert nicht");
}
?>


Bitte den Pfad auf das SpeedFan Verzeichnis in dem Script beachten. Die Datei hat z.B. den Namen SFLog20080716.csv.

Die entsprechenden Variablen werden mit dem Prefix SpeedFan_ angelegt, und stehen zur weiteren Verwendung zur Verfügung.

Viel Spaß damit

Rüdiger

Hallo Ruediger,

noch einen Hinweis zur Erweiterung Deines Scriptes: Alle I/O Anweisungen solltest Du entsprechend mit Fehlerroutinen versehen, anderenfalls erhaelst Du interessante Effekte, wenn Du es zyklisch laufen laesst. Dann werden naemlich nachfolgende Scripte nicht mehr abgearbeitet, falls in diesem Script ein Fehler aufgetreten ist.