Ankündigung

Einklappen
Keine Ankündigung bisher.

mit TCP Port x auf Host y verbinden

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Michael85
    antwortet
    Hallo zusammen,

    da meine UDP-Verbindung auch dann und wann abbricht wollte ich meine Controller auf TCP umstellen.

    Hierzu gibt es im Download Bereich auch schon einen Baustein Link Allerdings kann ich mit diesem nur Empfangen aber keine Befehle senden.
    Da der Baustein auf dem Baustein 19001220 aufbaut, habe ich mit meinen limitierten PHP Kenntnissen versucht einfach den fehlenden Teil zum senden einzufügen und den Baustein wieder erweitert. Der Code zum senden sieht nun wie folgt aus:

    // if EXEC daemon is running, send messages
    if (logic_getVar($id, 1) == 1) {
    if ($E[46]['refresh'] == 1) {
    $chr_ch1 = $E[46]['value']; // Zu sendener Befehl
    $tcp_string = $chr_ch1;
    $msg['sendinput'] = $tcp_string;
    }
    }
    // send message to EXEC daemon
    if (count($msg)) {
    LB_LBSID_logging($id, "Message:", $msg);
    $msg_queue_id = logic_getVar($id, 2);
    LB_LBSID_logging($id, "MSGQID used: $msg_queue_id");
    $msg_queue = msg_get_queue($msg_queue_id);
    msg_send($msg_queue, 1, $msg);
    }
    Allerdings reagiert der Controller darauf nicht. Wenn ich die Befehle per Hercules sende geht es.

    Ein Befehlt in Hercules sieht zum Beispiel so aus: set,sys,out,1,0<cr>

    Ich glaube mein Problem ist CR gescheint dahinter zu bekommen. In der Hilfe zu dem Controller steht folgendes:

    - Jeder Befehl an den 1-Wire Controller / 1-Wire Gateway muss mit einem „Carriage Return“ (CR, hexadezimal 0D) beendet werden.
    - Jede Datenausgabe des 1-Wire Controller / 1-Wire Gateway wird mit einem „Carriage Return“ (CR, hexadezimal 0D bzw. dezimal 13) und „Line Feed“ (LF, hexadezimal 0A bzw. dezimal 10) abgeschlossen.

    Vielleicht hat ja jemand von euch eine Idee hierzu.

    Gruß Michael

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Ja, sieht nach einem Copy&Paste Fehler aus dem Positiv-Filter aus.

    Einen Kommentar schreiben:


  • neophilipp
    antwortet
    Hab gefunden wieso das exclude Array nicht klappt... zumindest glaube ich das (mein PHP ist so lala):

    Der if Blog ist fehlerhaft:

    if (is_Array($filterneg)) {
    foreach ($filterpos as $such) {
    if (is_numeric(strpos($data,$such))) {
    $skip = TRUE;
    break;
    }
    };
    };

    hier die Version mit der es bei mir geht:

    if (is_Array($filterneg)) {
    $skip = FALSE; //fehlte
    foreach ($filterneg as $such) { //war $filterpos
    if (is_numeric(strpos($data,$such))) {
    $skip = TRUE;
    break;
    }
    };
    };

    Einen Kommentar schreiben:


  • neophilipp
    antwortet
    Zitat von jonofe Beitrag anzeigen
    Was gibst du denn an E7 an?
    KAL weil ich das hier rausfiltern möchte:

    1_KAL|1[CR][LF]
    gelesen: 192.168.2.40 - 1_KAL|1[CR][LF] - Ausgang:
    20

    Einen Kommentar schreiben:


  • jonofe
    antwortet
    Was gibst du denn an E7 an?

    Einen Kommentar schreiben:


  • Michael85
    antwortet
    Hi Phillipp,

    wie du schon per PN gefragt hast. Ich dem Link zu meinem Thread ist eigentlich alles erklärt. Ich hatte genau die gleichen Probleme wie du.
    Der Quelltext von dem LBS den ich am laufen habe ist dort auch gepostet. Dieser ist aber nicht meine Schöpfung. danik hat mir hier damals auf die Sprünge geholfen. Ich habe diesen nur verfeinert damit mehr Sensoren gehen und ich Sensorfehler mitbekomme.

    Gruß Michael

    Einen Kommentar schreiben:


  • neophilipp
    antwortet
    Zitat von maque Beitrag anzeigen
    Stimmt, jetzt wo Du es sagst. Eventuell kann der ESERA aber konfiguriert werden, dass er die Daten weiter schickt...

    Das hier scheint es zu sein: https://knx-user-forum.de/forum/proj...ire-controller
    Ich hab das jetzt mit dem LBS den Du genannt hast hinbekommen. Danke Dir!

    Der scheint aber einen Bug an E7 zu haben. Da kann ich eingaben was ich will, er wirft immer einen PHP Fehler:
    Datei: /usr/local/edomi/www/data/liveproject/lbs/EXE19000278.php | Fehlercode: 2 | Zeile: 64 | Invalid argument supplied for foreach()

    Falls jemand den LBS nutzt kann er mir ja vielleicht verraten was ich falsch mache.

    Danke fein :-)

    Einen Kommentar schreiben:


  • maque
    antwortet
    Stimmt, jetzt wo Du es sagst. Eventuell kann der ESERA aber konfiguriert werden, dass er die Daten weiter schickt...

    Das hier scheint es zu sein: https://knx-user-forum.de/forum/proj...ire-controller
    Zuletzt geändert von maque; 11.09.2019, 20:10.

    Einen Kommentar schreiben:


  • wintermute
    antwortet
    Zitat von maque Beitrag anzeigen
    LBS TCP Listener
    Ist das nicht die flasche "Richtung"?

    Einen Kommentar schreiben:


  • maque
    antwortet
    Hi Philipp,

    kann das Gateway kein UDP? Dann kann der Baustein https://service.knx-user-forum.de/?c...ad&id=19000278 helfen. Sonst kann ich mich vielleicht motivieren, einen LBS TCP Listener schreiben.

    Gruesse
    Matthias

    Einen Kommentar schreiben:


  • neophilipp
    hat ein Thema erstellt mit TCP Port x auf Host y verbinden.

    mit TCP Port x auf Host y verbinden

    Hallo ihr Wissenden

    Ich bin dabei viele Logiken von NodeRed aud Edomi umzuziehen. Klappt soweit ganz gut aber an einer Sache scheitere ich.
    Ich habe ein 1-wire Gateway von ESERA (LINK). Mit NodeRed verbinde ich mit mit Port 5000 per TCP und bekomme darüber z.B. Temperaturdaten als Datenstrom.

    Geht sowas mit EDOMI? Wenn ja bitte ich um einen kurzen Denkanstoß... vielen Dank!!

    Hier mal der Screenshot aus nodered:

    esera_nodered.png
    Zuletzt geändert von neophilipp; 10.09.2019, 14:16.
Lädt...
X