+ Antworten
Ergebnis 1 bis 6 von 6
  1. #1
    Registriert seit
    Nov 2016
    Ort
    Bockenem westlicher Harzrand
    Beiträge
    52

    Standard Problem beim Empfangen über ServerSocket

    Hallo zusammen,

    unter 4.4 funktionierten meine Scripte für meine Rolläden einwandfrei. Ein Raspi pollt dazu die Wandschalter und baut bei Änderungen eine Socketverbindung zu einem Server Socket auf, meldet diese und schließt den Socket wieder. Die übertragenen Zustände landen per Register Variable bei einem Script. Und dabei tritt nun unter 5.0 Stable und Beta das Problem auf, dass eine ASCII übertragene 255 (Hex 323535) als 0 erkannt wird. (Siehe Bild unten).

    Das Problem versteckt sich wohl offensichtlich in der Zeile:
    $wert = intval( $_IPS['VALUE'] );

    Wie gesagt unter 4.4 funktionierte dies einwandfrei.

    Gruß
    Ralf

    Name:  ips_255_problem.jpg
Hits: 89
Größe:  114.5 KB
    Geändert von Gollum (11.08.18 um 20:25 Uhr) Grund: Überschrift geändert

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

    Was hat das mit der webbasierten Verwaltungskonsole zu tun?
    Sprich, du bist hier falsch. (Habe unsere Beiträge abgetrennt und verschoben)
    Zu dein Problem:
    Der ServerSocket sendet dir in VALUE Null-Bytes wenn eine Verbindung aufgebaut und abgebaut wird. Das musst du abfangen.
    Sonst kommt halt null raus.
    Deine Variable ändert sich also ganz schnell auf 0, 255 und dann wieder 0.
    Kannst einfach auf die Länge von 'VALUE' prüfen. Wenn diese 0 ist, ist es ein Verbindungsaufbau oder Abbau.
    Michael
    Geändert von Nall-chan (11.08.18 um 20:41 Uhr)
    on Win7VM (ESXi): I5, 24GB RAM, HW-RAID5, 3xSat | HW: CCU + 123 Geräte (506ch), EM1000, CUL, 1Wire, XBee, ELRO 433MHz, FritzBox Cable, Android Phone + Tablet, Samsung C-Serie TV +SamyGo-Ext, Onkyo NR| SW: IPS, Apache2(mod_ssl/PHP), MySQL, hMailServer, PRTG, Rising AV, Piwik, RoundCube, Wordpress, WinLIRC, WHS2011, MediaPortal, XBMC

  3. #3
    Registriert seit
    Nov 2016
    Ort
    Bockenem westlicher Harzrand
    Beiträge
    52

    Hallo Nall-chan,

    du hast Recht, mit beidem!
    Mein Problem gehörte natürlich nicht zu dem Thema. Ist mir aber leider selbst zu spät aufgegangen...

    Bzgl. des Server Sockets, der beim An und Abmelden leere 'VALUE' Werte an die Register Variable sendet, habe ich die Stelle gefunden an der dies dokumentiert wurde.

    Unter Migration stand...

    >RegisterVariable unterstützt für Server Sockets ein neues TYPE Feld, welches Verbunden/Getrennt Zustände angibt. Diese werden ggf. bei alten Skripten als leere Datenpakete empfangen<

    @IP-Symcon:
    Puh, natürlich wenn man es nun weiß, das man aus diesem Satz schließen soll, das nun ZUSÄTZLICHE Aufrufe des der Register Variablen, zugeordneten Scripts erfolgen... Und was bedeutet in der Aussage 'ggf.' ?

    Dies bitte evtl. noch einmal deutlich hervorheben und erläutern in der Doku!!!

    @Nall-chan
    Noch einmal vielen Dank!

    Gruß
    Ralf

  4. #4
    Registriert seit
    Feb 2005
    Ort
    Lübeck
    Beiträge
    18,722

    Hi Ralf,

    magst du uns ein wenig aushelfen wie der Satz klingen sollte, damit es für dich eindeutig gewesen wäre?
    Wir versuchen alle migrationsrelevante Änderungen sauber zu dokumentieren

    paresy

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

    So wie er bei Änderungen zum PHP-SDK steht ist imho okay.
    Aber... Er taucht nicht als BC für normale Scripte auf.
    Michael
    on Win7VM (ESXi): I5, 24GB RAM, HW-RAID5, 3xSat | HW: CCU + 123 Geräte (506ch), EM1000, CUL, 1Wire, XBee, ELRO 433MHz, FritzBox Cable, Android Phone + Tablet, Samsung C-Serie TV +SamyGo-Ext, Onkyo NR| SW: IPS, Apache2(mod_ssl/PHP), MySQL, hMailServer, PRTG, Rising AV, Piwik, RoundCube, Wordpress, WinLIRC, WHS2011, MediaPortal, XBMC

  6. #6
    Registriert seit
    Nov 2016
    Ort
    Bockenem westlicher Harzrand
    Beiträge
    52

    Hallo paresy,

    vielleicht so:

    Die RegisterVariable wurde um eine neue Systemvariable "TYPE" erweitert. Das neue Feld beschreibt den Grund des Aufrufs und Übermittelt nebenbei auch den Zustand der übergeordneten Instanz. (Verbindung erfolgt/Datensendung/Verbindung getrennt) BITTE BEACHTEN: Daraus folgt, dass zusätzliche Aufrufe der Register Variablen, bzw. der zugehörigen Scripte beim Verbinden und Trennen erfolgen!

    Ihr braucht euch doch nicht so kurz fassen.
    Nur die wenigsten IP-Symcon Nutzer, so schätze ich, befassen sich tagtäglich mit der Programmierung und den Besonderheiten bei der Script Programmierung. Daher bitte ruhig ein paar ergänzende Ausführungen mehr...

    Wenn man wie ich etwas 'bastelt' und dann ein halbes Jahr oder auch länger aufgrund der wirklich sehr guten Stabilität von IP-Symcon nicht genötigt wird daran herumzuschrauben, dann tappt man nur allzu leicht auf solche getarnten Minen. Nicht falschverstehen, ihr müßt nun wirklich keine kleinen Bugs für mich einbauen nur damit ich in Übung bleibe. Ne, ne das ist wirklich nicht nötig!

    Vermutlich wissen wir alle, oder erahnen zu es zumindest, wie schwer es für euch sein muss, abzuwägen wieviel Dokumentation in Text- und auch Beispielform notwendig ist. Allein es bleibt wohl nur, immer weiter daran zu arbeiten.

    @Community
    Wenn ihr wie ich über etwas stolpert, dann meldet das bitte! Etwas umzuformulieren und damit zu verdeutlichen ist dann doch nur ein Klacks.

    @IP-Symcon
    Codeschnipsel sind auch recht eingängig:
    if( $_IPS['TYPE'] == "1" )
    // Verbindung aufgebaut
    elseif( $_IPS['TYPE'] == "0" )
    // Daten übermittelt
    elseif( $_IPS['TYPE'] == "2" )
    // Verbindung getrennt

    Das hätte auch den mehrfachen Aufruf verdeutlicht...


    @Ich selber
    MEHR und aufmerksamer Doku lesen

    ...einen schönen Sonntag

    Und ihr macht schon einen klasse Job...!

    Gruß
    Ralf

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 11.06.18, 09:59
  2. IPS 3.4 #3803: Problem beim Zugriff auf eine Datei über https
    Von wolkensurfer im Forum Skripte, PHP, SQL
    Antworten: 8
    Letzter Beitrag: 28.12.16, 10:43
  3. Antworten: 12
    Letzter Beitrag: 05.12.13, 23:02
  4. über Serrial zerlegte Daten empfangen
    Von webster im Forum Skripte, PHP, SQL
    Antworten: 2
    Letzter Beitrag: 27.11.13, 23:33
  5. Email über Pop3 empfangen
    Von kadorf im Forum Allgemeine Diskussion (2.x/3.x)
    Antworten: 12
    Letzter Beitrag: 16.06.10, 12:10