+ Antworten
Ergebnis 1 bis 9 von 9
  1. #1
    Registriert seit
    Apr 2007
    Ort
    Lüneburg
    Beiträge
    3,982

    Standard Rückgabewert eines ClientSocket bei Fehler

    Hallo Leute,

    mit dieser Zeile:
    PHP-Code:
    $Result $this->SendDataToParent(json_encode(Array("DataID" => "{79827379-F36E-4ADA-8A95-5F8D1DC92FA9}""Buffer" => utf8_encode($Message)))); 
    wird ein ClientSocket angesprochen. Gibt es eine definierte Rückmeldung wenn der Socket nicht verbunden ist?

    Im Log taucht ab und zu dazu eine Warnmeldung ("Socket nicht verbunden") auf, würde die gerne abfangen.

    .
    Bevor ich diese Zeile aufrufe, prüfe ich schon ob die IP "anpingbar" ist, trotzdem laufen ich manchmal in diese Warnmeldung...

    Joachim
    IP-Symcon seit 12/2009, iPhoneApp seit 01/2011, IPSView seit 12/2014!
    3xSiemensLOGO0BA7+DM16, 1xInstar 3010PoE, 1xInstar 2905PoE, 1x1-WireHub mit DS2450 von Eservice-online, 15xDS1820, 1xDS2423, 1xDS2408

  2. #2
    Registriert seit
    Mar 2009
    Ort
    Ruhrgebiet
    Beiträge
    501

    Wenn der Socket verbunden ist, gibt der einen Status zurück.
    Schau mal in $status=IPS_GetInstance($clientSocketID)['InstanceStatus'];
    IP-Symcon 5.4 Win10 auf Futro S720 - Wago 740-881 102 DO + 96DI, DALI, (Arduino (Wiegand26 Sebury K3), KNX, Shelly, Tasmota, Denon AVR, HEOS

  3. #3
    Registriert seit
    Apr 2007
    Ort
    Lüneburg
    Beiträge
    3,982

    Hallo Tobias,

    vielen Dank zunächst einmal für die Antwort!

    Ich hatte so ein bisschen gehofft, dass der ClientSocket selbst einen definierten Rückgabewert hat (so etwas wie ein "false") wenn dort aus irgendeinem Grund die Aufgabe nicht erfolgreich abgearbeitet werden konnte. Selbstverständlich bleibt einem auch die Möglichkeit vor jeder Aktion den Status des ClientSocket zu prüfen, dieses würde aber dann trotzdem zu einem nicht abfangbaren Fehler führen, wenn es bei der dann folgenden Aktion aus irgendeinem Grund nicht erfolgreich ist.

    Joachim
    IP-Symcon seit 12/2009, iPhoneApp seit 01/2011, IPSView seit 12/2014!
    3xSiemensLOGO0BA7+DM16, 1xInstar 3010PoE, 1xInstar 2905PoE, 1x1-WireHub mit DS2450 von Eservice-online, 15xDS1820, 1xDS2423, 1xDS2408

  4. #4
    Registriert seit
    Aug 2011
    Beiträge
    92

    Ich habe eine Lösung gefunden, die nun schon 10 Jahre perfekt funktioniert

    Code:
    if (IPS_GetInstance(48293 /*[HomeMatic Socket]*/)['InstanceStatus'] == 102){
    $HM_text = 'Homematic Socket installiert und geöffnet';
    $xy = '<span style="color:white;background-color:green;">'.$HM_text.'</span>'." - ";
    }
    if (IPS_GetInstance(48293 /*[HomeMatic Socket]*/)['InstanceStatus'] == 200){
    $HM_text = 'Homematic Socket Fehler';
    
    CSCK_SetOpen(48293 /*[HomeMatic Socket]*/, false);
    IPS_ApplyChanges(48293 /*[HomeMatic Socket]*/);
    ips_sleep(50);
    echo CSCK_SetOpen(48293 /*[HomeMatic Socket]*/, true);
    IPS_ApplyChanges(48293 /*[HomeMatic Socket]*/);
    $HM_text = 'Homatic Socket Reset';
    
    $xy = '<span style="color:red;">'.$HM_text.'</span>'." - ";
    Viel Spaß damit

    tom2005

  5. #5
    Registriert seit
    Jun 2012
    Ort
    House of Dragons @ Lübeck
    Beiträge
    10,765

    Dafür gibt es das hier bei Modulen.
    https://www.symcon.de/service/dokume...sactiveparent/
    Ping ist ja auch nicht wirklich aussagekräftig, es gibt Geräte welche das absichtlich deaktivieren bzw. wo es abschaltbar ist oder in einer Firewall geblockt wird.
    Michael
    on Win10VM (ESXi): I7, 32GB RAM, HW-RAID5, 2xSat | HW: pivccu + ca.130 Geräte (ca.550ch), EM1000, CUL, 1Wire, FritzBox Cable, Android Phone + Tablet, Onkyo NR| SW: IPS, Apache2(mod_ssl/PHP), MySQL, hMailServer, PRTG, RoundCube, Win2016 Ess., MediaPortal, Kodi

  6. #6
    Registriert seit
    Apr 2007
    Ort
    Lüneburg
    Beiträge
    3,982

    Hallo Michael,

    ich habe das jetzt mal so umgesetzt, aber der Sachverhalt bleibt dann vermutlich so: Die Prüfung findet vorher statt, ob die Aktion tatsächlich erfolgreich war, sieht man dann so zuerst doch nicht?

    Joachim
    IP-Symcon seit 12/2009, iPhoneApp seit 01/2011, IPSView seit 12/2014!
    3xSiemensLOGO0BA7+DM16, 1xInstar 3010PoE, 1xInstar 2905PoE, 1x1-WireHub mit DS2450 von Eservice-online, 15xDS1820, 1xDS2423, 1xDS2408

  7. #7
    Registriert seit
    Jun 2012
    Ort
    House of Dragons @ Lübeck
    Beiträge
    10,765

    Definiere 'Aktion erfolgreich'.
    Das kann ein ClientSocket doch gar nicht.
    Eine eventuelle Antwort kann nur dein Modul auswerten.
    Der IO kann nur das abliefern der Daten erkennen.
    Wenn die Verbindung gestört ist, wird da ein Error erzeugt.
    Das kannst du aber mit PHP ermitteln.
    Michael
    on Win10VM (ESXi): I7, 32GB RAM, HW-RAID5, 2xSat | HW: pivccu + ca.130 Geräte (ca.550ch), EM1000, CUL, 1Wire, FritzBox Cable, Android Phone + Tablet, Onkyo NR| SW: IPS, Apache2(mod_ssl/PHP), MySQL, hMailServer, PRTG, RoundCube, Win2016 Ess., MediaPortal, Kodi

  8. #8
    Registriert seit
    Aug 2011
    Beiträge
    92

    @ Michael,

    als ich das gebaut habe gab es das Modul noch nicht.
    Ich denke das Modul spart auch Arbeit.

    Aber mit etwas "schnickschnack" drum rum sieht es im WF so aus:

    Name:  HM-socket.PNG
Hits: 54
Größe:  11.0 KB

    tom2005

  9. #9
    Registriert seit
    Jun 2012
    Ort
    House of Dragons @ Lübeck
    Beiträge
    10,765

    So etwas in der Art habe ich auch, nur ohne Visu.
    Aber das war ja nicht die Frage. Es geht hier ja wirklich um PHP Module und wie man es dort umsetzen kann.
    Du hast jetzt ja da nur einen IO. Es könnten dazwischen aber auch X Instanzen sein bis ein IO kommt (z.b. Xbee Brücke). Da musst du dann jede Instanz, also die ganze Kette vom Datenfluss betrachten.
    Michael
    on Win10VM (ESXi): I7, 32GB RAM, HW-RAID5, 2xSat | HW: pivccu + ca.130 Geräte (ca.550ch), EM1000, CUL, 1Wire, FritzBox Cable, Android Phone + Tablet, Onkyo NR| SW: IPS, Apache2(mod_ssl/PHP), MySQL, hMailServer, PRTG, RoundCube, Win2016 Ess., MediaPortal, Kodi

Ähnliche Themen

  1. Beschreibung eines ClientSocket per Script auslesen
    Von hardlog im Forum Skripte, PHP, SQL
    Antworten: 2
    Letzter Beitrag: 23.02.20, 08:05
  2. Fehler bei Anzeige eines Skriptes in IPS Studio
    Von geolin im Forum IPSStudio & IPSView
    Antworten: 5
    Letzter Beitrag: 07.10.17, 21:44
  3. JSON-RPC API Rückgabewert bei nicht Erreichbarkeit
    Von szad im Forum Skripte, PHP, SQL
    Antworten: 7
    Letzter Beitrag: 06.01.16, 12:53
  4. Fehler bei der Benennung des Modus eines ModBus Gateway
    Von Pulpataro im Forum Allgemeine Diskussion
    Antworten: 1
    Letzter Beitrag: 30.11.15, 09:53