Socketverbindung geschlossen! (Zur Verfügungsstehungs-Statusabfrage)

Habe leider ein großes Problem.

if(! CSCK_GetOpen(14718 /*[AVR1-Client Socket]*/))
   SetValue($IPS_TARGET, False);
else
   SetValue($IPS_TARGET, True);

Mit diesem minütlich getriggertem script dachte ich spätestens nach einer Minute zu wissen,
ob die Verbindung zum Socket abgebrochen ist. Was für ein Irrtum! :mad:

Die Funktion gibt immer True zurück, weil diese nur das Hackerl abfragt. Aber den nicht den echten Status! siehe Bild!
Im Bild ist folgendes passiert: Socket war geöffnet, und Spaßhalber habe ich aber beim AVR-Board den Strom weggenommen!
Genau dann will ich das sofort merken. Aber wie???

Das gleiche Problem habe ich noch hier:[ol]
[li]if (! FTDI_GetOpen(61324 /[IO_FHZ1300]/))//FHZ1300PC Zur-Verfügungstehungs-abfrage
[/li][li]if (! TMEXA_GetOpen(43008 /[TMEX]/))//1-Wire Zur-Verfügungstehungs-abfrage (SIEHE AUCH DIESES THEMA…)
[/li][/ol]

status.gif

Hallo Hinti,
Tipp für den Client-Socket :Teste doch die Erreichbarkeit mit einem „PING“.
Schau mal hier:http://www.ip-symcon.de/forum/f53/w-lan-watch-dog-7566/#post63512

Wenn ich mich recht erinnere:

$instance = IPS_GetInstance(12345);
echo $instance['InstanceStatus'];

Die komplette Beschreibung der Codes habe ich gerade nicht im Kopf. 102 müsste offen und 104 geschlossen sein.

Das mit dem Ping ist gut.
Aber das von Horst ist besser. Und zwar aus folgendem Grund: Das funktioniert super :wink:

Mit ein und derselben Funktion: IPS_GetInstance(12345)[‚InstanceStatus‘] (verschachtelung nur symbolisch),
ist es möglich von unterschiedlichen Modulen den Status abzufragen. Und Dieser ist schönerweise einheitlich gehalten worden :slight_smile:

  • Client Socket, FTDI (FHZ1300), TMEX - geöffnet und fehlerfrei:
    [InstanceStatus] => 102
  • Client Socket, FTDI (FHZ1300), TMEX - geschlossen (normal geschlossen):
    [InstanceStatus] => 104
  • Client Socket, FTDI (FHZ1300), TMEX - geschlossen obwohl per hackerl geöffnet (also fehlerfall durch beispielsweise stromausfall oder verbindungsabbruch zu FHZ etc etc):
    [InstanceStatus] => 200

200 bei TMEX ist das einzige was ich jetzt nicht getestet habe, weil ich mein 1-Wire Adapter nicht entfernen wollte zum testen.
Alles andere sind von mir getestete Werte.

Damit kann ich die Zur Verfügbarkeit mit einer Funktionalität von verschiedenen Modulen überprüfen (genial).
Minütlich triggere ich script, der dieses Status nun überwacht. bei ungleich 102 -> Warnung, bei 200 -> Ausfall, -> SMS Email etc etc.

Wobei ich im minütlichen script im Fehlerfall zuerst einen script „an-time“, der nach 30 sekunden nochmal prüft.
Erst dann geh ich von einem definitiven Fehler aus.

Danke Horst & EHB.

PS: Der script schaut jetzt so aus:

$inst = IPS_GetInstance(14718 /*[AVR1-Client Socket]*/);
if($inst['InstanceStatus'] != 102)
   SetValue($IPS_TARGET, False);
else
   SetValue($IPS_TARGET, True);

Hallo Zusammen,

Nun kann ich feststellen das meine TMEX Instanz nicht Funktioniert.
Habe ich auch die Möglichkeit der TMEX Instanz neu zustarten?

Beim Neustaten des Rechners sind immer diese Beiden Instanzen mit einem Roten Ausrufezeichen markiert.
Öffne ich die Instanz und klicke auf übernehmen und meisten ist die Instanz denn Aktiv.

Dirk

Zu beiden Themen gibt es im Forum Lösungen.