CPU Temperatur im WF anzeigen

Hallo,
danke zunächst für die schöne Anleitung.

Ich habe da nur ein doofes Problem.
Was mache ich falsch, wenn mein IPS sagt:

Fatal error: Call to undefined function snmpget() in […] on line 5

Im Voraus vielen Dank für die Hilfe

Hallo,

sieht aus als wenn du die Smnp Erweiterung nicht installiert ist oder in der falschen Version.

Schöne Grüße
Thomas

Auszug aus der Migration.

Durch eine Inkompatibilität von PHP 5.4 und OpenSSL 1.0 können über die file_get_contents (u.ä.) Funktion keine Anfragen per SSL gestellt werden. Die IP-Symcon interne Funktion Sys_GetURLContent bietet dort passenden Ersatz. Falls die SSL Funktionalität zwingend notwendig ist (z.B. Exchange oder SNMP Extension), und SSL innerhalb vom WebFront nicht benötigt wird, kann die alte Verhaltensweise mit folgendem Zusatzpaket wiederherstellt werden: OpenSSL 0.9.8

Hallo,

kommt denn IPS mit #2252 mittlerweile wieder mit SNMP klar?
Wollte meinen Drucker und die Telefonanlage auf Fehler überwachen, um dann Meldungen bzw. Mail zu verschicken. Oder auch mehr über den IPS-Rechner selbst erfahren.

Muss mann denn OPenSSL 1.0 irgendwie deinstallieren? Einfach die beiden dlls (libeay32.dll und ssleay32.dll) in C:\windows austauschen + Neustart?

EDIT: Hier (http://us2.php.net/manual/en/snmp.walk.php) steht was von php >=5.4.0 und SNMP. Nun bin ich verwirrt.

Hallo,

ich habe das jetzt auch mit ssnmpq gelöst:
Hier mal mein Script:


<?
// Host-Config
$host           = "192.168.0.210";
$community      = "public";

// ssnmpq Binary
$binary = "C:\Programme\ssnmpq\ssnmpq.exe";

//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;
}

$fan1 = (int) snmpget (".1.3.6.1.4.1.30503.1.3.4");
$fan2 = (int) snmpget (".1.3.6.1.4.1.30503.1.3.6");
$cputemp = (int) snmpget (".1.3.6.1.4.1.30503.1.2.7");
SetValueInteger(22569 /*[Computer\CPU\CPUTemperatur]*/ ,$cputemp);
SetValueInteger(25941 /*[Computer\Fan\Fan1]*/,$fan1);
SetValueInteger(35858 /*[Computer\Fan\Fan2]*/ ,$fan2);
?>

Schöne Grüße
Thomas

Also, ich habe mir nun ebenfalls ssnmpq besorgt.
Ich nutze hier ein Windows 7 64bit. Ich habe die SNMP Dienste eingerichtet und aktiviert. Beim Ausführen Deines Scripts passiert einfach garnichts. Ein

ssnmpq.exe /h:localhost /c:public /w 

in der Command-Shell ergab nichts „besonderes“:

Simple SNMP Command Line Query Tool, Toomas Kaljus, January 2007

Searching 1.3.6.1.2.1.1 ... (iso.identified-organization.dod.internet.mgmt.mib-2
.system)

OID=1.3.6.1.2.1.1.1.0
  Path=iso.identified-organization.dod.internet.mgmt.mib-2.system.sysDescr.0
  Type=OctetString
  Value='Hardware: Intel64 Family 6 Model 42 Stepping 7 AT/AT COMPATIBLE - Softw
are: Windows Version 6.1 (Build 7601 Multiprocessor Free)'
OID=1.3.6.1.2.1.1.2.0
  Path=iso.identified-organization.dod.internet.mgmt.mib-2.system.sysObjectID.0
  Type=ObjectIdentifier
  Value='1.3.6.1.4.1.311.1.1.3.1.1'
OID=1.3.6.1.2.1.1.3.0
  Path=iso.identified-organization.dod.internet.mgmt.mib-2.system.sysUpTime.sysU
pTimeInstance
  Type=TimeTicks
  Value='00:08:28.9200000'
OID=1.3.6.1.2.1.1.4.0
  Path=iso.identified-organization.dod.internet.mgmt.mib-2.system.sysContact.0
  Type=OctetString
  Value=''
OID=1.3.6.1.2.1.1.5.0
  Path=iso.identified-organization.dod.internet.mgmt.mib-2.system.sysName.0
  Type=OctetString
  Value='homeputer-PC'
OID=1.3.6.1.2.1.1.6.0
  Path=iso.identified-organization.dod.internet.mgmt.mib-2.system.sysLocation.0
  Type=OctetString
  Value=''
OID=1.3.6.1.2.1.1.7.0
  Path=iso.identified-organization.dod.internet.mgmt.mib-2.system.sysServices.0
  Type=Integer
  Value='76'

Wie hast Du es bei Dir eingerichtet?

Hallo,

das Zip File von ssnmpq in C:\Programme\ssnmpq entpackt und dann das Script gestarte und es lief.
Ich benutze auch Win7 64Bit.

Schöne Grüße
Thomas

Aber das kann doch nicht die einzige Anpassung an Deinem System gewesen sein? Komischerweise kann ich auch nicht debuggen. Ich finde keine Einträge.
Das Script braucht über 8 Sekunden, schreibt aber nicht mal ins Nachrichten Fenster.
Ich habe jetzt mal testhalber „C:\ssnmpq\ssnmpq.exe“ in „C:\ssnmpq\xyz.exe“ verändert. Es ist deutlich schneller fertig :wink: aber einen Fehler bekomme ich nicht.

Hallo,

zeig doch mal dein Script, meines lauft nur 265ms. Ich gehe mal davon aus das snmp auf deinen Windows schon richtig installiert ist und du jetzt nur probleme mit ssnmpq hast, oder?

Schöne Grüße
Thomas

Ja, der SNMP Dienst ist „richtig“ angelegt.
Ich starte mal durch und wenn das nichts hilft beginne ich mal von null.
Bis gleich. Danke schon mal bis hierher.

So. Ich habe nun alles zurück auf Anfang und nochmal neu.
Dienst aktiviert und eingerichtet. Aber leider keinen Erfolg.
Hier mal mein Script:

<?
// Host-Config
$host           = "192.168.2.100";
$community      = "public";

// ssnmpq Binary
$binary = "C:\ssnmpq\ssnmpq.exe";

//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;
}

$fan1 = (int) snmpget (".1.3.6.1.4.1.30503.1.3.4");
$fan2 = (int) snmpget (".1.3.6.1.4.1.30503.1.3.6");
$cputemp = (int) snmpget (".1.3.6.1.4.1.30503.1.2.7");
SetValueInteger(24294 /*[Program\IPS Maintenance\Systemstatus\Systeminfos\CPU Temp]*/  ,$cputemp);
SetValueInteger(45845 /*[Program\IPS Maintenance\Systemstatus\Systeminfos\CPU Fan 0]*/ ,$fan1);
SetValueInteger(46937 /*[Program\IPS Maintenance\Systemstatus\Systeminfos\CPU Fan 1]*/  ,$fan2);
?>

Wobei es sich kaum von Deinem unterscheidet.

Hallo,

hast du auch Speedfan mit snmp Plugin installiert, dieser liefert erst die Daten für IPS.
ansonsten probiere mal die System OID „.1.3.6.1.2.1.1.7.0“ die sollte auch ohne Speedfan etwas liefern.

Schöne Grüße
Thomas

Ich scheite auch daran das ganze zum laufen zu bekommen. Dienst ist in Win installiert und läuft auch. Das Programm ssnmpq habe ich auch und die Angaben stimmen auch. Bekomme nur eine „0“ zurück. Leider auch bei „.1.3.6.1.2.1.1.7.0“.
Würde mich freuen wenn jemand noch einen Rat wüsste :confused:

MFG Alex

Hallo,

was bekommst du als ausgabe wenn du im DOS Fenster im Verzeichniss von ssnmpq folgendes eingibst?

ssnmpq.exe /h:localhost /c:public /w

Kommt dort etwas funktioniert snmp bei deinen windows erst mal.
WennSpeedfan läuft probiere mal die OID:
.1.3.6.1.4.1.30503.1.1.1

Die zeigt dir an wie viele Temperatur Sensoren dein System hat, die OID für die CPU Temperatur muß für verschiedene computer angepasst werden.
Schon mal auf der Seite snmp für Speedfan nachgesehen?

Schöne Grüße
Thomas

Alles nochmal neu gemacht. Dienst ist installiert und läuft (neustart sicherheitshalber gemacht)
Das bekomme ich zurück:

C:\ssnmpq>ssnmpq.exe /h:localhost /c:public /w
Simple SNMP Command Line Query Tool, Toomas Kaljus, January 2007

Searching 1.3.6.1.2.1.1 … (iso.org.dod.internet.mgmt.mib-2.system)

OID=1.3.6.1.2.1.1
No response

Hallo,

dann schau mal ob beim Dienst auch public eingerichtet ist.
Dienste->snmp-Dienst recht Maus-> Eigenschaften -> Sicherheit.
Community
public lesen-erstellen.

Schöne Grüße
Thomas

Ich hatte es nun gestern endlich am Laufen … hier ist die Reihenfolge wie man die Programme startet sehr wichtig: [ol]
[li]Speedfan starten[/li][li]Injector starten[/li][li]Script starten[/li][/ol]
Ich bekam dann nach und nach die Werte angezeigt und ich konnte mir das Script so anpassen, dass die Werte kamen die ich wollte. Leider musste ich nach ca. 1-2 Stunden feststellen, dass sich der Rechner komplett aufgehängt hatte. Ist ein Win 7 64 bit mit 8 GB RAM. Der Speicher war komplett belegt. Freier Speicher 0 MB. Und die CPU Last lag bei beiden Kernen bei 100%.
Ich weiß nun nicht sicher, ob es am Speedfan/Injector/SSNNPQ lag. Jedoch war das die letzte Anpassung am System welches sonst 24/7 mit ~ 10 % CPU Last läuft und läuft.

Hallo,

ich habe es am Anfang auch mit snmp versucht, doch wegen ständigen Fehler und Abbrüche auf gegeben. Ich lese einfach den Log von Speedfan aus. Läuft seit Monaten ohne einzigen Fehler. Vielleicht könnt ihr was damit was Anfangen.

<?


$datum = date('Ymd');
$name="$datum";
$file =file ("C:\Program Files\SpeedFan\SFLog$name.csv");

print_r($file);

$lastentry = $file[count($file)-1]; // letzte Zeile extrahieren
$data = explode(" ", trim($lastentry)); // Daten in ein Array schreiben

SetValue(36833 /*[IPS System\CPU Temperatur\CPU Temperatur\CPU °C]*/  , substr($data[0], -4, 4));

print_r($data);

?>

Vielen Dank für das Skript! Funktioniert Wunderbar!

Hallo,

ich versuche auch gerade mit Speedfan meine temperaturen anzeigen zu lassen.

Aber in meiner csv Datei steht nur das:

Seconds
66129
66132
66135
66139

egal wo ich die Häckchen mache.
Was ist da denn falsch?