Ankündigung

Einklappen
Keine Ankündigung bisher.

Aufbau eines KNXnet IP Telegramms

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

    #16
    Hallo Swen
    erstmals danke für die schnelle Antwort.
    Der Teil den ich hier gepostet habe ist nur mehr das cEMI, also ohne dem ganzen drum herum da der Rest für mich klar ist.
    Hier aber trotzdem ein ganzer Frame den ich bekomme:

    06100420 001e0402 00002b09 03010006 040a3b1e b2bcdb0e 0904e100 81fb

    Interessanterweise bekomme ich immer gleich 2 solcher frames.
    Der 2. wäre:
    06100420 00160402 01002b09 03010106 040a3b53 88cc

    Hat also ein kürzeres cEMI...

    Lg

    Kommentar


      #17
      Hallo,

      06100420 001e0402 00002b09 03010006 040a3b1e b2bcdb0e 0904e100 81fb
      also, schauen wir mal:
      0610 Header ok
      0420 Tunneling Request, auch ok
      001e Paketlänge = 30 Byte
      0402 erstes Byte ist die CCH-Länge = 4
      0000 erstes Byte ist die SequenceNumber, 0
      Der cEMI-Teil ist nun
      2b09 03010006 040a3b1e b2bcdb0e 0904e100 81fb
      2b09 hier wuerde ich eigentlich ne 29 00 erwarten, hm
      0301 Steuerfeld und Datentyp/Routing, oberstes Bit vom 01-Wert ist Destination-Flag, aus
      0006 Sender 0.0.6
      040a Destination 0.4.10
      3b1e erstes Byte DataLength, allerdings mit 15 unden, also 11
      b2bc erstes Byte, obere zwei Bits ReadWrite, Wert 2=Schreiben
      Payload des Paketes also 10 Bytes ab
      db0e 0904e100 81fb sind aber nur 8, hm komisch....

      Was zeigt denn die ETS für ein Paket an? Habe auf die Schnelle keine 10Byte-DPTs gefunden....

      mfg

      Swen
      2 Objekte, 6 Linien + KNX/IP-Bereich, HS 3 SW 2.8, Visu mit 2x 15"-Touch, Softwaregateway KNX/IP für 2x Novelan Wärmepumpe, viele Ideen und wenig Zeit

      Kommentar


        #18
        Zitat von swenga Beitrag anzeigen
        Hallo,

        06100420 001e0402 00002b09 03010006 040a3b1e b2bcdb0e 0904e100 81fb
        also, schauen wir mal:
        0610 Header ok
        0420 Tunneling Request, auch ok
        001e Paketlänge = 30 Byte
        0402 erstes Byte ist die CCH-Länge = 4
        Ist der 04er nicht die Structure Länge... also 4
        und der 2er die ConnectionID?
        Zumindest sagt mir das der Wireshark so

        Zitat von swenga Beitrag anzeigen
        Was zeigt denn die ETS für ein Paket an? Habe auf die Schnelle keine 10Byte-DPTs gefunden....
        Die ETS versteht das Paket. Die genaue Aufzeichnung hab ich von dem Paket jetzt nicht mehr...

        Wieso bekomme ich eigentlich immer 2 Pakete beim drücken eines Schalters? Ein kurzes und ein langes. Das lange verstehe ich jetzt mittlerweile einigermaßen, aber das kurze nicht.


        Btw.:
        Bei meiner Kommunikation habe ich noch das Problem dass ich zwar vom KNXnet/IP Gateway (das Weinzierl 730) zwar Datenpakete erhalte, wenn ich aber selbst welche schicke, bekomme ich darauf hin kein ACK. Obwohl ich wirklich Byte für Byte das gleiche schicke wie die ETS (halt mit angepasstem Sequenz Counter) Aber sonst ist alles gleich und ich bekomme keine Antwort.
        Wenn ich einen ConnectionState Request schicke bekomme ich den Status E_DATA_CONNECTION (0x26)... also ein Problem mit meiner data connection.
        Beim connect haut aber alles hin. Ist es ein Problem das bei mir die Data Connection und die Controlling Connection bei mir am gleichen Port sind? (Abgesehen von der IP und dem Port in HPAI für data und controlling schicke ich auch hier genau das gleiche wie die ETS wenn ich auf Diagnostics->Group Monitor geht und dann da Daten rausschreibe)
        Den ConnectionState Error bekomme ich auch wenn ich ihn direkt nach dem connect schicke .


        Lg

        Kommentar


          #19
          Ja, Strukturlänge des Connection Headers, also 4 Bytes.

          Also auf dem selben Port Control- und Datenfluss zu handeln hab ich noch nicht probiert. Was kriegst Du denn auf Deinen Connect Request geantwortet? Du muesstest Status 0 und Deine Session-ID zurueckbekommen.

          mfg Swen
          2 Objekte, 6 Linien + KNX/IP-Bereich, HS 3 SW 2.8, Visu mit 2x 15"-Touch, Softwaregateway KNX/IP für 2x Novelan Wärmepumpe, viele Ideen und wenig Zeit

          Kommentar


            #20
            Richtig... auf den ConnectRequest bekomme ich eine 0x00 als Stauts... also E_NO_ERROR und eine ConnectionID. Das haut alles wunderbar hin...
            Nur bekomme ich halt keine ACKs auf Tunneling Requests

            Kommentar


              #21
              Was mir ja aufgefallen ist, ist das ich jedes Paket zwei Mal bekomme. Kann das an meinem ACK liegen? Ich hab das ACK jetzt nämlich mal ausgeschalten und bekomme trotzdem noch Pakete (auch zwei mal) also scheint es so, als würde das KNXnet/IP Gateway einfach nicht auf meine ACKs reagieren...?!?

              Das hier wäre ein Bsp ACK das ich schicke:
              06100421 000a0417 0400

              in dem Fall war ich auf Channel 23 = 0x17 verbunden und es war ein ACK auf ein Paket das als Sequence Count 4 geliefert hat.

              Mach ich da was falsch?

              Kommentar


                #22
                Noe, das ACK Paket sieht gut aus. Jetzt bleibt die Frage, ob derselbe Port für Control und Data ein Problem darstellt. Kannst Du das bei Dir anpassen? Warum eigentlich derselbe, wolltest Du nur einen ReceiveThread haben?

                mfg Swen
                2 Objekte, 6 Linien + KNX/IP-Bereich, HS 3 SW 2.8, Visu mit 2x 15"-Touch, Softwaregateway KNX/IP für 2x Novelan Wärmepumpe, viele Ideen und wenig Zeit

                Kommentar


                  #23
                  Genau, nur ein Thread zum Receiven. Hab es aber auch schon versucht mit einem 2. Kanal zum Empfangen und das hat auch nichts geändert...

                  Lg

                  Kommentar


                    #24
                    Hallo,

                    Ich habe damals ebenso mit Sniffen der Kommunikation von ETS und Interface angefangen. Wichtig war es bei mir, zuerst den Data-Kanal zu öffnen, um die lokale Portnummer dafuer zu haben. Erst dann den Control-Kanal öffnen und dann beim Connection Request den eigenen Port des Data-Channels angeben.

                    Man kann natuerlich beim Erstellen des Sockets auch nen eigenen Port vorgeben, aber wehe der ist blockiert....

                    Als ich keine ACKs geschickt habe, hat der Weinzierl 730 mir immer nur ein Paket gesandt und das auch ein paarmal wiederholt. Nach einigen Wiederholungen dann kam der Disconnect Request auf dem Control-Kanal.

                    Paralleles Mittel bei meiner Entwicklungszeit war immer der Sniffer und die ETS, hier versuchte ich mich auf einfache Pakete abzustützen, also 1-Bit DPT's. Da findet man dann schnell raus, wie die aufgebaut sind und zu versenden sind.

                    Mittlerweile ist das Tunneling-Interface beerdigt, es wird nur noch IP-Routing über Multicast gefahren....
                    2 Objekte, 6 Linien + KNX/IP-Bereich, HS 3 SW 2.8, Visu mit 2x 15"-Touch, Softwaregateway KNX/IP für 2x Novelan Wärmepumpe, viele Ideen und wenig Zeit

                    Kommentar


                      #25
                      So,
                      jetzt haut bei mir alles hin. Mein Problem war scheinbar das ich 2 Sockets offen hatte. Einen zum senden und einen zum empfangen und das mag der KNXnet/IP Router scheinbar nicht.

                      Wenn ich jetzt im lokalen Netz bin, haut alles super hin, nur wenn ich mich mit meinem iPhone über VPN einlogge, kann ich zwar alles schalten und auch die Stati auslesen, aber ich bekomme beim connection state request die Meldung das keine Data Connection mit der specified ID da ist. Das finde ich komisch da es aber ja trotzdem funktioniert...!?!

                      Lg

                      Kommentar


                        #26
                        Kann mich vielleicht mal jemand aufklären wann eine DataConnection gültig ist?
                        Das komische bei mir ist ja, dass ich im lokalen WLAN immer NO_ERROR bekomme und wenn ich mich per VPN verbinde eben einen Fehler die Daten Verbindung betreffend. Und das obwohl ich über die Datenverbindung sehrwohl schalten kann.

                        Danke für eure Hilfe

                        Lg

                        Kommentar


                          #27
                          Hallo,

                          Sorry dass ich das Thema erneut aufgreifen muss.
                          Ich versuch mich gerade daran, ein Paket an den EIB-Bus über ein EIBNet-Interface zu versenden.
                          (Simples ein/ausschalten von einer Lampe .. :-) )

                          Mit Wireshark hab ich mich auch schon gespielt und habe bereits die Nutzdaten des UDP-Pakets ausgelesen.
                          Dann bin ich heute über den Thread gestolpert und hab mal verglichen mit meinen Daten und (erstaunlicherweiße) sind die verdammt ähnlich ;-).

                          Was ich mich noch Frage, muss ich mich gegenüber dem Ethernetdevice irgendwie verbinden ? Da ihr da irgendwas von Channel Request redet ?
                          Reicht es nicht einfach einen Socket aufzumachen und ein UDP-Paket auf die IP&Port des Ethernetdevice zu senden ?

                          Gibt es mittlerweile eine endgültige Liste was WAS ist im Telegram ?
                          (Wofür steht Ctrl1/Ctrl2, L TPCI ACPI usw. ?)


                          DANKE!

                          Kommentar


                            #28
                            Zitat von latinchriz Beitrag anzeigen
                            Ich versuch mich gerade daran, ein Paket an den EIB-Bus über ein EIBNet-Interface zu versenden.
                            Hi,

                            zum einen kannst Due den eibd nehmen und den die schmutzigen Details übernehmen lassen. Oder falls Du's unbedingt selbst machen willst, kannst Du dort zumindest in den Source Code schauen...
                            TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

                            Kommentar


                              #29
                              Zitat von Uwe! Beitrag anzeigen
                              Hast Du hier ab Seite 15 schon mal geguckt?

                              Uwe
                              Hallo,

                              ich beschäftige mich auch gerade mit dem Telegrammaufbau eines KNXnet/IP UDP-Paketes. Ist das Dokument noch irgendwo verfügbar?

                              Gruß
                              Björn

                              Kommentar


                                #30
                                Gibt´s nachwievor bei der Konnex: http://www.knx.org/fileadmin/downloa...ure%20v3.0.zip und noch mehr unter KNX Association ::[Official website] Downloads / Support Downloads
                                Gruss aus Radevormwald
                                Michel

                                Kommentar

                                Lädt...
                                X