Wie "Systemfehler" mitbekommen?

Ich habe ein paar Devices, die sich (gewollt) gelegentlich abschalten und daher per IP nicht mehr erreichbar sind.

Nun würde ich in IPS gerne darauf reagieren.

Dazu fehlt aber m.E. ein Event der dann ausgelöst wird, wenn IPS im Log vermerkt „Connection Closed Gracefully“ oder „Socket Error“.

Hat jemand nen Tip, wie man das (trotzdem) bewerkstellgt? Polling scheidet m.E. aus Lastgründen aus.

Danke für Hinweise.
jwka

Entweder über den Ping Befehl:

Sys_Ping(„meinrechner“, 1000); //Max. 1 Sekunde warten

Oder wenn ein Socket für das Endgerät in IPS existiert - die Statusänderung des Sockets kann ein Skript triggern welches dann wiederum den genauen Socket-Status abfragen und entsprechend reagieren kann.

Also ein Event bei Statusänderung eines Sockets wäre schon mal was.

Bloss: Wie lege ich den an? Da ja ein Serversocket und auch ein Clientsocket keine Statusvariablen haben, wüste ich im Moment nicht, worauf ein Event zweigen soll?

Danke für einen Tip.

jwka

Guck Dir mal den Event-Handler an. Dort kannst Du unter Statusereignissen ein Skript definieren welches beim Statuswechsel einer zu definierenden Instanz getriggert wird.

Ich bin mir nur nicht ganz sicher ob das erst ab 2.4 geht oder schon bei 2.3 ging. Ansonsten bis Sonntag warten - dann wird die 2.4 ja offiziell…

vielleicht wär das n Ansatz (ist aber noch nicht perfekt): link

Geht schon lange. Es gibt sogar ne Doku für:Link

Gruß

Sind alles gute Ansätze.

Kosten halt Performance und man muss es für jeden neuen Socket einrichten (nicht vergessen).

Ausserdem versagt PING in zwei Fällen:
1.) Wenn der Fehler beim Kommunikationspartner auf Portebene und nicht auf der Schnittstelle per se liegt

2.) Wenn man das System dicht haben will und ICMP in der FW nicht freigeschaltet hat.

Eigentlich wäre das doch was für eine Zentralfunktion für IPS („SystemChecker“), denn IPS kriegt solches ja oft am schnellsten mit und hat bei Sockets und anderem ohnehin das Ohr am Rohr, oder?

Und das Überwachen von Einheiten ist ja schon auch sowas wie ne Grundfunktion einer Hausautomation?

So eine Watchdog-Funktion wäre dann auch auf andere „Busse“ ausdehnbar, also z.B. ein Verfügbarkeitscheck für 1-Wire Devices, EIB Devices etc.

Eure Meinung?

jwka

so wie ich das sehe hast Du genau 2 Möglichkeiten:

  1. selbst Hand anlegen und (vielleicht) basierend auf oben angedeuteten Ansätzen eine Lösung bauen
  2. den Hersteller anpingen und bitten eine Lösung zu bauen

ich denke, das mußt Du für Dich selbst entscheiden;)

Hast Du überhaupt gelesen, was kronos und Attain gesagt haben :confused:?

@Horst:

ja, und zwar bevor ich mein Post gemacht habe - und ich kann nicht erkennen, worauf Dein „Hinweis“ abzielt.

Vielleicht könntest Du zwei Zeilen mehr schreiben, denn ich habe (meine ich) dargelegt, warum ich meine, dass es da mehr braucht.

Danke
jwka

Hallo jwka,

ich denke Horst möchte damit zum Ausdruck bringen das von Seiten des Entwicklerteams ausreichende Möglichkeiten über den Eventhandler von IPS gegeben sind.

StatusEvent

Wenn das Skript über eine Statusveränderung einer Instanz aufgerufen wurde.

Variable
Bedeutung
$IPS_INSTANCE … InstanzID zur Statusänderung
$IPS_STATUS … Status der Instanz.
Eine Auflistung ist hier zu finden: IPS_GetInstance
$IPS_STATUSTEXT … Kurztext passend zum Status

Ich persönlich habe mir ein Statusüberwachungsscript geschrieben welches 1x je Minute aufgerufen wird und auch, wenn gewünscht, reconnects ausführt.

Hallo Thomas,
bei mir tritt auch wöchentlich das Problem aus, das nach einem Neustart der 1-wire Port oder auch die LCN Verbindung nicht geöffnet werden kann.
Würdest Du bitte Deine Lösung mal posten, eventuell lässt sie Dein Ansatz mit wenigen Handgriffen adaptieren?

Herzliche Grüße, Stromer

Ich hatte schon mal hier was dazu geschrieben:

Das Event Control deckt alles ab, was Du wolltest, außer dass es nicht global für alle Instanzen eingerichtet ist. Und das ist auch gut so, da es so einige Fälle gibt, in denen man nicht mit Mails belästigt werden möchte oder Reconnects braucht. Ein paar Beispiele: Der Socket für mein XBMC kann nicht verbunden werden, wenn ich mein XBMC ausgestellt habe. Mein Tracker meldet sich nicht mehr, wenn ich aus dem Haus bin. Wenn man gerade am Basteln ist, möchte man auch keine Mails erhalten oder neu verbunden werden.