Ankündigung

Einklappen
Keine Ankündigung bisher.

Protokoll IP-Interface

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

    Protokoll IP-Interface

    Ich versuche, eine Software, die überhaupt nichts mit KNX zu tun hat, dazu zu bringen, KNX-Telegramme zu versenden. Die Software ermöglicht es mir jedoch, eine definierbare Payload an eine beliebige TCP- oder UDP-Adresse zu senden.

    Jetzt suche ich nach Informationen, wie genau die Verbindung über ein IP-Gateway erfolgt. Gibt es einen Handshake, der ausgeführt werden muss, oder könnte man sich einen binären Blob basteln, welcher das entsprechende KNX-Telegram enthält, und diesen an Port 3671 des Interface senden?

    Also im Prinzip das, was knxtool macht, nur ohne knxtool. Leider finde ich keine Informationen, wie das KNX-Paket in IP gekappselt wird. Plan B wäre, mich in den Quellcode von knxtool einzulesen und das zu reversen ;-)

    #2

    Hallo,

    der Aufbau und der Handshake sind gut dokumentiert in der KNX Spezifikation "3/8/2 Core".
    Allerdings ist das nicht nur irgendein Payload im Sinne von nem JSON den man dort hin schickt. Der Telegrammaufbau ist da komplett anders.

    In welcher Sprache machst du das denn?
    Da gibt es doch bestimmt schon fertige librarys zum Senden von Telegrammen.

    Gruß Mike
    OpenKNX www.openknx.de | Kaenx-Creator | Dali-GW

    Kommentar


      #3
      Zitat von proggerKA Beitrag anzeigen
      In welcher Sprache machst du das denn?
      Mit gar keiner - ich kann im Verwaltungsprogramm einen Base64-kodierten Blob, eine IP-Adresse und einen Port angeben, und das Programm sendet dann, wenn diese Funktion aufgerufen wird, genau dies ab.

      Falls kein Handshake oder etwas in der Art erforderlich ist, um mit dem IP-Interface zu reden, könnte ich mir die IP-Payload etwa für "Sende 1/2/3 mit 1" also statisch einmal mit einer beliebigen Sprache aufbauen lassen, in Base64 verpacken und fertig. Wenn dagegen erst einmal ein Handshake durchgeführt werden muss, damit ich überhaupt Telegramme über das Interface versenden kann, klappt's natürlich nicht.
      Zuletzt geändert von Cybso; 07.09.2021, 12:50.

      Kommentar


        #4
        Da muss ich dich enttäuschen.
        Es ist ein Verbindungsaufbau und auch eben wieder -abbau notwendig.
        Auch benötigt es einen "heartbeat" alle 60 Sekunden, wenn die Verbindung aufrecht erhalten werden soll.
        OpenKNX www.openknx.de | Kaenx-Creator | Dali-GW

        Kommentar


          #5
          Schade, dann bleibt als Plan B nur, einen eigenen Server aufzusetzen, der die Befehle empfängt und per knxtool an den Bus weiterleitet. Hätte diese zusätzliche Komplexität gerne vermieden :-) Aber danke!

          Kommentar


            #6
            Könnte man das nicht über knxd realisieren?

            Viele Grüße

            Kommentar


              #7
              Zitat von Brainbug Beitrag anzeigen
              Könnte man das nicht über knxd realisieren?
              Ja klar, aber dann brauch ich eben einen zusätzlichen Server, auf dem ich den knxd laufen lassen kann. Den wollte ich halt gerne vermeiden.

              An das Betriebssystem, auf dem die Software läuft, komme ich nicht dran, das ist vernagelt. Da steht mir nur die reguläre UI zur Verfügung.

              Kommentar


                #8
                Hmm,
                du hast nicht zufällig einen X1 in der Installation? Der hat eine Rest API.

                Kommentar


                  #9
                  Zitat von Brainbug Beitrag anzeigen
                  du hast nicht zufällig einen X1 in der Installation? Der hat eine Rest API.
                  Nein, ist nicht vorhanden, wäre da auch leicht überdimensioniert, sowohl was die Features als auch die Kosten betrifft :-) Dafür reicht dann auch ein kleiner Raspi.

                  Kommentar


                    #10
                    Brainbug Danke für den Schubs in die richtige Richtung, offenbar bietet Weinzierl mit dem BAOS 773 ebenfalls eine JSON-Schnittstelle, und da ich das IP-Interface eh noch beschaffen muss, wären die Mehrkosten sehr überschaubar!
                    Zuletzt geändert von Cybso; 07.09.2021, 14:14.

                    Kommentar


                      #11
                      Alternativ müsste es sonst mit einem IP-Router doch relativ einfach gehen. Da KNX/IP auf Multicast setzt bezweifle ich, dass da mehr als das reine KNX-Telegramm geschickt werden muss.
                      Chris

                      Kommentar


                        #12
                        Update: mit dem Weinzierl IP BAOS klappt es wunderbar. Ich musste nicht einmal den aufwendigen Weg über das Binärprotokoll gegen, ein ganz simpler einzeiliger GET-Request auf Port 80 reicht aus, um zum Beispiel eine gewünschte Szene aufzurufen:

                        Code:
                        GET /baos/SetDatapointValue?Datapoint=1&Format=RAW&Length=1&Value=1
                        <Leerzeile>

                        Kommentar

                        Lädt...
                        X