IPSWatchDog

Hallo andreas,

vielen Dank, das hatte ich in der pdf-Doku nicht gesehen. Damit könnte man das ganze natürlich etwas eleganter lösen.

Ich müsste dann in meinem Script IWD nicht merh beenden und neu starten, sonder steuere dies aus IPS, zB. bevor das Backup Script gestartet wird IWD stoppen, und im Anschluß per trixi.dll IWD wieder starten.

Derzeit habe ich jedoch noch tech. Probleme mit autoIT und der trixi.dll. (siehe IP-Symcon - Trixi.dll mit autoIT). Bis das gelöst ist werde ich IWD noch beenden und neu starten.

Vielen Dank und Gruß
Christian

Hallo Andreas,

ich habe mir gestern IPSWatchDog 2.x heruntergeladen und installiert. Zuerst einmal vielen Dank für das Programm!

Ich hatte vor dem Umzug von IP-Symcon in eine neue VM die Version 1.x von IWD im Einsatz. Nach ein paar Tagen ohne IWD und ein paar „Hängern“ von IPS habe ich nun die Version 2.x installiert. Läuft alles soweit super, nur hatte ich danach ein paar Probleme mit SNMP-Funktionen im PHP. Die Aufrufe lieferten alle Fehlermeldungen in der Art: „Call to undefined function snmp_read_mib()“.
Eingebunden ist die SNMP-Funktionalität über eine entsprechende PHP-Extension (php_snmp.dll) im ext-Verzeichnis von IPS.

Nach einigem ratlosen Suchen bin ich auf die von IWD installierten DLLs libeay32.dll und ssleay32.dll gestoßen. In meiner alten VM waren diese (wahrscheinlich durch die Installation von IWD 1.x) in einer neueren Version 0.9.8o vorhanden, während diese nach der Installation der Version 2 nur die Version 0.9.8g hatten.

Ich habe die DLLs entsprechend getauscht und nun funktioniert alles gut. Falls es keine zwingenden Gründe für den Einsatz der älteren Version von OpenSSL gibt, könntest du ja vielleicht die Version in der SetupIWD2.exe bei Gelegenheit anpassen?

Viele Grüße

Mario

Hi Andreas,

vielleicht macht es Sinn in einer der nächsten Versionen die o.g. DLL noch mit in die Installation aufzunehmen.

Ich war (vermutlich einer der wenigen), der diese Datei noch nicht auf seinem Rechner hatte und musste sie noch manuell nachinstallieren (hab’ sie direkt ins IP-Symcon-Verzeichnis geschmissen).

Gruß
Andreas

Hi Andreas

Auf das gleiche Problem wie „Schmitza Andreas“ bin ich auch gestossen. MSVCR71.dll nicht vorhanden und damit chrashed IPS alle paar Minuten.

Wäre also sinnvoll es mit in die Installationsroutine mit aufzunehmen.

Hallo Andy,

ich habe das gleiche Problem.
Wie hast Du es gelöst?

Schöne Grüße,
Stephan

Hi Stephan

Noch gar nicht. Hatte keine Zeit nach der Dll online zu suchen und es auszuprobieren.

Hallo,

klasse Programm :slight_smile:

Kleiner Wunsch: Eine Email wenn der WatchDog IPS oder den Rechner neu gestartet hat oder ein Problem vorliegt.

Erstmal vielen Dank für das Progi! Könnt ihr mir sagen ob folgender Ansatz für die Integration von IWD und PULSE sinn macht? IWD soll für die Datensicherung angehalten und danach wieder gestartet werden, ohne irgend ein batch file.

Mein Idee:

  1. Pulse stoppt ja vor der Sicherung den IPS Dienst
  2. Beim Stoppen des IPS Dienstes kann man im EVENT Handler ein Skript ausführen lassen
  3. In diesem Skript setze ich in die IWD Message Variable ein ‚stop‘; außerdem ein sleep(20). Durch die 20 Sekunden Wartezeit bekommt IWD die Nachricht mit, IWD prüft bei mir alle 15 Sekunden

=> Wenn IPS Dienst beendet wird, pausiert auch IWD

  1. Nach der Sicherung startet der IPS Dienst
  2. Auch beim Starten kann man ein Skript im Event Handler ausführen lassen. Dieses schreibt ‚start‘ in die IWD Message Variable. IWD sollte wieder starten

Macht das so Sinn und / oder gibt es Gründe warum man das nicht so machen sollte?

Und noch eine Frage:

Wenn IWD im Autostart Ordner liegt, wird es dann überhaupt gestartet wenn sich kein Benutzer anmeldet? Mein Server bootet nach dem Neustart ja nur bis zum Anmeldebildschirm. Da IPS als Dienst läuft, startet es. IWD scheint aber nicht zu starten…

Hallo zusammen,

nach zwei Tagen Testlauf scheint mein Vorgehen zu funktionieren. Allerdings habe ich den IWD nicht im Autostart Ordner liegen sondern lasse ihn vom Windows Scheduler bei Start des Computers ausführen (auch ohne Benutzeranmeldung). Pulse macht wie gewohnt seine Sicherung und IWD überwacht laut logfile den Server auch nach der Sicherung.

Ein Problem habe ich noch: Wenn ich den IWD per Windows Scheduler starte, so kann ich zwar im Taskmanger sehen dass es läuft (und die LogFiles bestätigen dies auch). Allerdings komm ich nicht an die Oberfläche ran (kein TrayIcon, kein offenes Fenster). Hat da jemand einen Tipp? :confused:

Hallo Smokey,

sorry, ich war in letzter Zeit reichlich beschäftigt, so dass ich hier kaum noch reingeschaut habe.

Macht es tatsächlich einen Unterschied, ob man IWD per Austostart und Scheduler startet? Ich habe das noch nicht getestet.
Hast du mittlerweile eine Lösung gefunden?
Unter welcehm Betriebssystem hast du das gemacht?
Kann man beim Scheduler irgendwo einstallen, dass das Programm minimiert starten soll (dann ausschalten)?

Grüße,

Danke für das Lob :slight_smile:

Ich komme derzeit nicht zum Programmieren.
Die Idee ist jedoch gut, ich werde sie im Hinterkopf behalten. :slight_smile:

Viele Grüße,

Servus!

Also ich hab ehrlich gesagt keine Lösung gefunden und den watchDog wieder deinstalliert. Das ist insofern nicht optimal, da IPS nach der Datensicherung mit Pulse ab und an nicht wieder neu startet. Und ohne IWD merkt man das nicht. Im Autostart wird es halt nur geladen wenn sich jemand anmeldet. Bei meinem IPS Rechner ist aber idR niemand angemeldet. Im Scheduler kannst du Programme bei Anmeldung oder aber auch bei PC Start ausführen. Außerdem kannst du festlegen, mit welchen User das ganze ausgeführt wird. IPS läuft bei mir unter XP.

Ich glaube die Perfekte Lösung wäre wohl die Integration von IWD und Pulse, aber das wurde ja weiter oben schonmal angesprochen.

Inzwischen überwache ich IPS übrigens durch die CCU. Wenn IPS weg ist, krieg ich 'ne Mail. Leider kann ich von der CCU aus den IPS Rechner nicht neu starten :(, dann wäre es für mich die perfekte Lösung.

@smokey

Hm, für die Möglichkeit, IPS per CCU zu überwachen, würde ich mich auch interssieren. Wie schaut das Script dazu aus?

Und ausserdem hätte ich da eine „Quick-And-Dirty“-Lösung, wie man den Rechner bei IPS-Ausfall neu starten könnte: hänge ihn an einen Homematic-Zwischenstecker. IPS aus = Strom für den Rechner abdrehen, einen Moment warten und wieder anschalten.
Oder eine andere, etwas weniger zerstörerische Methode: ich habe mir mal einen Unterputz-Schaltaktor ein wenig umgebaut. Statt Netzstrom zu schalten, wird nun nur noch ein externes Relais betrieben (brauchte ich für Treppenhauslicht und Haustüröffner). Einfach das Relais parallel zum Ausschalter des Rechners schalten, Windows sagen, dass es bei Ausschalterbetätigung den Rechner runterfahren soll, dann Befehl an den Unterputzschalter „kurz einschalten“ (das Relais simuliert den Druck auf den Ausschaltknopf, der Rechner fährt runter), ein paar Minuten warten, dann per Funkzwischenstecker der Saft abdrehen und nach einigen Sekunden wieder anmachen.

Ach ja: es gibt diverse Hilfsprogramme, die ein Programm (hier IPS-Watchdog) als Dienst starten können (z.B. FireDeamon). Eventuell geht es damit besser, als mit dem Windows Scheduler?

Grüße,

Servus!

IPS läuft bei mir ja auf 'nem Netbook, da dauert es dann 8 Stunden bis der Akku leer ist :frowning: Auch das Relais parallel zum Ausschalter bedeutet bei mir dass ich das Netbook auseinander nehmen muss :frowning:

CCU Überwachung mache ich wiefolgt:

  1. Auf der CCU die Variablen „IPS Connect“ (Boolean) und „IPS Unconnect Count“ (Integer) anlegen.

  2. Ein CCU Programm erstellen, welches die Variable „IPS Unconnect Count“ alle 10 Minuten um 1 hochzählt:

Skriptinhalt:

var item = dom.GetObject(„IPS Unconnect Count“);
item.State(item.State()+1);

  1. Ein CCU Programm ersellen, welches die Variable „IPS Connect“ auf false setzt, sobald „IPS Unconnect Count“ > 3 ist:

  1. Ein CCU Programm erstellen, welches eine Mail schickt sobald „IPS Connect“ = false

Skript 1
string stdout;
string stderr;
system.Exec("/etc/config/addons/email/email 01", &stdout, &stderr);

Skript 2
string stdout;
string stderr;
system.Exec("/etc/config/addons/email/email 02", &stdout, &stderr);

Zum Mailversand ist das Email Programm von homematicinside.de auf der CCU installiert.

Das war der CCU Teil. In IPS läuft ein Skript, welches die „CCU Connect“ Variable auf der CCU alle 10 Minuten auf 0 setzt. IP Adresse muss angepasst werden!

<?php

$befehl="var result = dom.GetObject('IPS Unconnect Count').State(0);";
$result=Post_Request ($befehl);

function Post_Request ($sdata)
{
 $start=time();
 $fp = fsockopen ("192.168.178.xxx", 8181, $errno, $errstr, 2);
// $fp = fsockopen ("127.0.0.1", 8181, $errno, $errstr, 30);

 if (!$fp)
     echo "$errstr ($errno)<br />
";
 else
    {
    stream_set_blocking  ( $fp  , 1 ); // sicher gehen, dass der stream im non blocking Mode arbeitet
          $st = "POST /tclrega.exe HTTP/1.1
";
          $st = $st . "Content-type: application/x-www-form-urlencoded
";
          $st = $st . "Content-Length: ". strlen($sdata) ."
";
          $st = $st . "Connection: Close

";

      fputs($fp,$st.$sdata);
      $st = "";
      $t = fgets($fp,500);
      $st = $st . $t . "
";

       while ($t != "
")
       {
        $t = fgets($fp,500);
       }
      $t = "";

      while (!feof($fp))
        {
         $t .= fgets($fp,10000 /*[Objekt #10000 existiert nicht]*/);
        }

    fclose($fp);
  }

//  $xml = new SimpleXMLElement($t);
//  return $xml->result;



//ereg("<result>(.*)<\/result>",$t,$result);
//print_r($result);


//return $result[1];

}

?>

Das war es schon!

ich hab die Überwachung von IPS durch die CCU gelöst wie in dem Thread beschrieben: http://www.ip-symcon.de/forum/f50/uberwachung-ip-symcon-ccu-11950/

@Die Neuendorfer

So, nun ist endlich mal wieder eine neue IPSWatchDog Version fertig geworden.
Es gibt nicht viel Neues, jedoch habe ich den Wunsch, Statusmeldungen auch per Email erhalten zu können, umgesetzt.

Danke, hatte das gleiche Problem, dann das Script noch mal angelegt und ausgefuehrt, nun isser gesund. (bei mir laeuft auch ein XP in einer VM)

EDIT: funktioniert doch nicht. nach einem Neustart des PC zeigt Watchdog wieder krank an, diesmal hat auch das Neuerstellen des Script nix gebracht… :confused:
jemand eine Idee?

Guten Abend! :slight_smile:

Bin vor ein paar Tagen mit IPS auf den Easystore umgezogen.
Jetzt hab ich mir den IPSWatchDog auch installiert. Funktioniert auch soweit.

Hab nun getestet über die Variable ‚IWDMessage‘ die Überwachung zu stoppen.
Funktioniert auch!
Allerdings bei ‚start‘ füllt er mir kurzerhand das log voll…mit voll mein ich richtig voll :smiley: 35178 Zeilen in 43 Sekunden g

Habe es auch mit der richtigen IP 192.168.0.3 versucht, selbes Resultat.
Gibts hier vielleicht Abhilfe?

Hier ein Auszug:


06.03.2011;19:42:01; ACTION: ReadIPSMessage: IPSReadString, ID: 11706
06.03.2011;19:42:01; ACTION: IPSReadString: ReadString: ID:11706
06.03.2011;19:42:01; RESULT: IPSReadString: ReadString: ID:11706 = start
06.03.2011;19:42:01; ACTION: ReadIPSMessage: IPSReadString, ID: 11706 = start
06.03.2011;19:42:01; INFO: StartStartupTimer: StartupTimer starten
06.03.2011;19:42:01; ACTION: IPSWriteString: WriteString: ID:11706
06.03.2011;19:42:01; RESULT: IPSWriteString: WriteString: ID:11706 = 0
06.03.2011;19:42:01; RESULT: IPSWriteString: String geschrieben
06.03.2011;19:42:01; INFO: TMainForm.MainTimerTimer: Call StartupTimer
06.03.2011;19:42:01; INFO: StartMainTimer: MainTimer starten
06.03.2011;19:42:02; INFO: StopMainTimer: MainTimer stoppen
06.03.2011;19:42:02; INFO: TMainForm.MainTimerTimer: Call StartupTimer
06.03.2011;19:42:02; INFO: StartMainTimer: MainTimer starten
06.03.2011;19:42:03; INFO: StopMainTimer: MainTimer stoppen
06.03.2011;19:42:03; INFO: TMainForm.MainTimerTimer: Call StartupTimer
06.03.2011;19:42:03; INFO: StartMainTimer: MainTimer starten
06.03.2011;19:42:04; INFO: StopMainTimer: MainTimer stoppen
06.03.2011;19:42:04; INFO: TMainForm.MainTimerTimer: Call StartupTimer
06.03.2011;19:42:04; INFO: StartMainTimer: MainTimer starten
06.03.2011;19:42:05; INFO: StopMainTimer: MainTimer stoppen
06.03.2011;19:42:05; INFO: TMainForm.MainTimerTimer: Call StartupTimer
06.03.2011;19:42:05; INFO: StartMainTimer: MainTimer starten
06.03.2011;19:42:06; INFO: StopMainTimer: MainTimer stoppen
06.03.2011;19:42:06; INFO: TMainForm.MainTimerTimer: Call StartupTimer
06.03.2011;19:42:06; ACTION: IPSMessage: IPSConnect: 127.0.0.1:3773
06.03.2011;19:42:06; ERROR: IPSMessage: IPSConnect: Fehler beim Verbinden
06.03.2011;19:42:06; ACTION: IPSMessage: IPSConnect: 127.0.0.1:3773
06.03.2011;19:42:06; ERROR: IPSMessage: IPSConnect: Fehler beim Verbinden
06.03.2011;19:42:06; ACTION: IPSMessage: IPSConnect: 127.0.0.1:3773
06.03.2011;19:42:06; ERROR: IPSMessage: IPSConnect: Fehler beim Verbinden
06.03.2011;19:42:06; ACTION: IPSMessage: IPSConnect: 127.0.0.1:3773
06.03.2011;19:42:06; ERROR: IPSMessage: IPSConnect: Fehler beim Verbinden

Moin,

was passiert denn, wenn du im Internet Explorer (oder was auch immer) das hier eintippst:

http://127.0.0.1:3773
bzw.
http://192.168.0.3:3773

da sollte die IPS Service Info Page erscheinen.
Oder hast du den Port bei der Installation von IPS geaendert?

Die ips - Service Info Page erscheint…
IP und Port müssten ja passen denk ich, weil der Watchdog an sich funktioniert ja…
nur starten nach dem stoppen über IPS haut nicht hin.

Die Nachricht ‚start‘ kommt auch im Watchdog an, wie ich mal gesehen habe, er kanns nur nicht nochmal verbinden.