APCUPSD-Auswertescript

Hi Tommi,

auch hier wieder eine positive Rückmeldung: läuft perfekt!
Allerdings hab ich mal ins APCUSPD-log geschaut: am 18.01.2011 ist die USV 2 x kurz hintereinander für etwa 1 Min. auf Batteriebetrieb gegangen. Blöderweise ist 15 Minuten vorher vom Auswertescript eine andere USV-Kategorie im IPS angelegt worden (war noch V 0.6), so dass die Monitoring-Daten verloren gingen und ich davon nichts mitbekam. Wird ein solcher Fall (USV-Batteriebetrieb) auch über das Auswertescript behandelt? wenn ja: wie?

ich hab als quick-and-durty-Lösung kurzerhand eine String-Variable an die APC-Kategorie angehängt und lasse in diese 1x pro Stunde das APCUPSD-log importieren


<?
#################### Konfig ####################################################
$log = 11961 /*[APCUPSD\SMART-UPS 700\Log]*/;
$file = file_get_contents('C:\apcupsd\etc\apcupsd\apcupsd.events'); // gesamte Datei in einen String einlesen
#################### Konfig Ende ###############################################


SetValueString($log, $file); // komplettes Log in Variable schreiben
?>

Es gibt dafür die Bool Variable OnLine und die Stringvariable Status, an man ein Variablen-Änderungsscript hängen kann. Bei so kurzen Ausfällen kann es jedoch sein, das diese genau in das Intervall zwischen zwei Abfragen fallen. Aber nur um diese auch mitzukriegen sinnlos das Intervall zu verkürzen ist mM. nach auch keine Lösung, weil eigentlich nur die längeren Störungen interessant sind. Ein anderer Weg wäre (bei meinen Modellen) die APC-Variablen NUMXFERS und LASTXFER zu überwachen.

Tommi

Hallo
Auch bei mir laeuft das Script einwandfrei.
Hab aber eine Frage.
Beim oeffnen des Socket

		CSCK_SetOpen($id,true);
		IPS_ApplyChanges($id);

wird jedesmal ein Eintrag in den Meldungen gemacht :
Client Socket Socket: Verbunden

Weiss jemand wie man die Meldung abstellt ?

Nabend :wink:

Ich muss das hier mal reaktivieren … nach meinem Umzug von WHS V1 auf WHS2011 wollte ich natürlich auch die APCUSV wieder einbinden. Leider bekomme ich das aber nicht hin. Die aktuelle Version der Soft habe ich gerade von Souceforge heruntergeladen und installiert. Das Trayicon zeigt aber nur ein Fragezeichen, bekommt also keine Daten.
Im Gerätemanager steht ein Eintrag unter Batterien und Eingabegeräte … Die Powerchute Personal Soft habe ich auch testweise mal installiert, aber auch wieder deinstalliert.
Wie muss ich denn die Config einstellen damit es läuft? Ich denke das es damit zusammen hängt oder kann es auch an den Firewalleinstellungen liegen? Die hatte ich allerdings schon komplett deaktiviert, aber gebracht hat es auch nix.

Gruß
jens

Die Originalsoft muss wieder runter. Wenn sich der Microsoft Treiber die USV geschnappt hat, muss man dem Gerät über Treiber aktualisieren den apcupsd Treiber verpassen. Wenn alles geklappt hat, steht dann apcupsd im Namen in Klammern.
Bin mir jetzt aber nicht sicher, ob das mit dem WHS2011 funktioniert, weil der normalerweise nur signierte 64bit-Treiber lädt. Evtl. hat noch jemand der Windows-Experten eine Lösung.

Tommi

Hi Tommi

Also ich habs mittlerweile so weit, das ich Infos im Trayicon angezeigt bekomme, nachdem ich den Treiber deinstalliert und über den APCUPSD Treiber neu installiert hab.
Das einzige was noch nicht klappt, ist das Starten des Dienstes von APCUPSD.

Hast du dazu ne Idee? Denn als Dienst muss es ja laufen wenn kein User am Server angemeldet ist …

Gruß
Jens

Versuche doch mal nicht als Systemdienst zu starten, sondern als der sonst eingeloggte User (Starten als… in den Eigenschaften des Dienstes)

Tommi

Ich glaube nun gehts … das war seinbar noch ein Prozess der Powerchute Soft im Autostart, der den Start des Dienstes von APCUPSD verhindert hat.

Zusätzlich hat scheinbar das Einstecken der USV ein Energiesparprofil auf dem Server aktiviert, so das der irgendwann heute n8 runter gefahren ist grml , aber ich glaube die Einstellung dazu habe ich gefunden und geändert :wink:

Danke auf jeden Fall für die Tips!

Gruß
Jens

Hallo Tommi,

bin gestern auf dein Script gestoßen und habe es ausprobiert.
Funktioniert tadellos ;). Vielen Dank dafür!
Dafür bekommt der Beitrag von mir die volle Punktzahl :D.

Gruß
Thorsten

Ich bin ebenfalls grad vorhin dank der Suche auf diesen Beitrag und das Script gestoßen. Schnell eingebaut -> Parameter angepasst -> ausgeführt -> Passt!
1000 Dank dafür. :smiley: :loveips:
Eine Sache habe ich jedoch: ich nutze eine APC 1400 RM deren

'NOMPOWER'

beträgt 1050. Also habe ich

$nomvals=array(
1400=>1050,

eingesetzt. Jedoch spuckt das Script noch immer 500 W aus.
Wo kann ich das anpassen?
btw.

$result

liefert

Array
(
[0] => 1400
[1] => 1400
)

Keine Ahnung warum, aber ich habe die Kategorie gelöscht und das Script noch mal ausgeführt.
Nun wird die richtige ‚NOMPOWER‘ ausgegeben. :slight_smile:

Ich habe noch eine Frage :

Kann man irgendwie die Uhrzeit der letzten aktualisierung der Variabeln einblenden ? Um zu sehen ob die Abfrage noch aktiv ist.

einblenden im Sinne von „Bordmittel“ nicht. Aber du kannst dir eine String-Var anlegen, die durch ein Script den Timestamp der letzten Aktualisierung aufnimmt.

@Raketenschnecke
Du hast in Deinen Screenshots auch den Wert „LastOn“ drin. Kannst Du mir sagen, was er bedeutet? Finde dazu nix, außer dass es ein Datum werden kann. Aber welches/warum/wann?

Grüße
galleto

‚LastOn‘ ist ein Feld bei manchen APC UPS, was das Datum letzten „On Battery“ Status beinhaltet, also wann die UPS auf Battery umgeschaltet hat.

Tommi

Ah, danke! Gibt es irgendwo eine Übersicht, was welche USV an Werten liefern kann? Oder was es prinzipiell an abfragbaren Werten gibt?

EDIT: Letzteres hab ich gefunden.

Grüße
galleto

Es können mit dem Script prinzipbedingt nur die Felder angezeigt werden, die auch mit apcaccess aufgelistet werden. (siehe APCUPSD Auswertescript). Das unterscheidet sich schon pro USV-Typ und ist bei einigen USV auch pro apcupsd Version unterschiedlich.

Tommi

Okay, danke. Nach einem Fehlversuch, mir über das NAS-Linux den APCUPSD-Status anzeigen zu lassen, hab ich die Windows-Version auf ein Notebook gespielt und die USV mal schnell umgestöpselt. Das hat geklappt, jetzt weiß ich was an Werten funktionieren müsste. :slight_smile:

Nochmals Dank und Grüße
galleto

Die hier verlinkte und dann da beschriebene Syntax für Erweiterungen ist ja für das NUT-Skript nicht direkt anwendbar. Folgender Teil bereitet mir Schwierigkeiten:

if (isset($nut['battery.voltage'])){$bv=$nut['battery.voltage'];}

Dass es für BattV „battery.voltage“ heißen könnte, hab ich nur erraten. Für MBattCHG steh ich aber völlig auf dem Schlauch.

Welches System steckt da dahinter? Ist das auf dem Nut-Server (= NAS) „codiert“ oder kommt das von der USV? Gibt es dafür eine Übersicht? Google ist bei solchen Wort-Punkt-Wort-Kombinationen leider wenig hilfreich.

Grüße
galleto

Wenn Du weisst, was isset bedeutet, kannst Du auch den Rest deuten.

php.net ist da hilfreich. :wink: