Ankündigung

Einklappen
Keine Ankündigung bisher.

Fragen zum Routing im knx stack

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

    Fragen zum Routing im knx stack

    ich hätte mal ein paar Fragen zum Routing im knx stack von Thomas ( thesing )
    Nanosonde du hast da ja Routing-Funktionalität eingebaut, aus den examples
    https://github.com/thelsing/knx/blob...mo-coupler.ino werde ich aber nicht so recht schlau.

    Gibts da eine passende Produktdatenbank?
    Bedeuten Koppler TP/TP oder IP/TP (aka IP-Router) oder TP/RF oder .... ?

    Ich sinieren gerade darüber ob man mit einem RasPi + https://github.com/OpenKNX/OpenKNX/w...nKNX-RasPi-HAT (oder jede andere TP-Ankopplung) einen IP-Router bauen könnte..

    OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

    #2
    Zitat von SirSydom Beitrag anzeigen
    ich hätte mal ein paar Fragen zum Routing im knx stack
    Es gibt einmal das Arduino-Koppler Beispiel und einmal das linux-Koppler-Beispiel.

    Schau Dir am besten direkt das linux-Beispiel an, wenn Du was auf dem RPi machen möchtest.

    Für meine Experimente hatte ich den TPUART für die TP-Seite eines IP/TP Kopplers benutzt.
    (Maske 091A)

    Die Beispiele sehen so mager aus, weil ja auf dem Koppler so gesehen keine Applikation in dem Sinne eines normalen KNX-Endgerätes läuft.

    Das Wichtige beim Koppler ist, dass er ein andere Implementierung des Layer 3 nutzt, da hier ja zwischen zwei Layer 2-Instanzen geroutet werden muss. Zusätzlich dann noch 1 oder 2 Router-Objekte je nach Koppler-Modell.

    Die aktuelle Implementierung ist sehr allgemein gehalten, so dass sowohl Bereichs- als auch Linienkoppler möglich sind. Wenn man die neue Spez. hätte, könnte man auch noch Segment-Koppler einbauen. Interessant für ETS6 mit KNX-TP/RF Segmentkopplern.

    Da es ein einheitliches Kopplermodell gibt, ist dort quasi auch beschrieben, wie die Filtertabelle auszusehen hat.
    Daher ist das so ziemlich für alle Koppler einer Maskenart (091A z.B.) gleich.
    Schaut man sich doe Produktdatenbank an, dann sieht man hier höchstens Unterschiede bei der Parametrierung. Hier hat der eine Hersteller mehr Stellschrauben beim Routing eingebaut, als ein anderer.
    Die Filtertablle wird aber immer gleich programmiert.

    Ich bin bisher nie dazugekommen, mit dem CreateKNXProd Tool mal eine eigene Koppler DB zu bauen. Sollte aber möglich sein und sehr klein sein. Einfach eine bestehende DB von einem existierenden IP-Koppler nehmen, Manufacturer usw. anpassen und dann signieren lassen.

    Kommentar


      #3
      Achso, das Lesen und Schreiben der Filtertabelle eines Kopplers ist hier implementiert:

      https://github.com/thelsing/knx/blob...object.cpp#L11

      UPDATE:
      Natürlich ist noch nicht alles bis ins letzte Detail implementiert. Einfach mal nach den TODOs im Network Layer und im Router-Objekt des Kopplers Ausschau halten. Das Wesentliche sollte aber implementiert sein.
      Zuletzt geändert von Nanosonde; 05.07.2022, 16:37.

      Kommentar


        #4
        Noch was. :-)

        Theoretisch könnte man auch erstmal OHNE Produktdatenbank auskommen.

        Dann sollte man sich nur das hier anschauen und mal testweise für ein paar Gruppenadressen das ACK auf TP-Seiten lassen:
        https://github.com/thelsing/knx/blob...u091A.cpp#L150

        Es geht hier darum, dass ein IP/TP Koppler auf der TP-Seite natürlich nur ein ACK sendet, wenn er die GA auch in der Filtertabellte hat.
        Bzgl. routen von IA gibt es noch ein TODO: https://github.com/thelsing/knx/blob...oupler.cpp#L89
        Bei IA senden wir aktuell IMMER ein ACK auf der TP-Seite (Mode 2). Siehe auch den Kommentar zu den Modi im Code.


        Ziel ist es aber nach wie vor, eine eigene Produktdatenbank für die Kopplerimplementierung zu haben.
        Zuletzt geändert von Nanosonde; 05.07.2022, 16:43.

        Kommentar


          #5
          Zitat von SirSydom Beitrag anzeigen
          Ich sinieren gerade darüber ob man mit einem RasPi + https://github.com/OpenKNX/OpenKNX/w...nKNX-RasPi-HAT (oder jede andere TP-Ankopplung) einen IP-Router bauen könnte..
          Also ja, das könntest Du tun, wenn die aktuelle TP-Datenlinklayer Implementierung den NCN5120 unterstützt. Natürlich bräuchte es noch Feinschliff.

          Du könntest auch einen IP/RF Koppler bauen. Der ist zwar so nicht direkt als Maske spezifiziert. Die Theorie der Spezifikation lässt das aber explizit zu.
          Dann müsstest Du nur einen CC1101 per SPI mit dem Raspberry Pi verbinden. Das Linux-Beispiel unterstützt das.
          Hatte die erste Testimplementierung für das RF-Datalinklayer auch mit einem Raspberry Pi + CC1101 per SPI gemacht.
          Ist halt nur leider alles schwierig mit dem Timing (Stichwort: Signale GD0, GD2; normalerweise per IRQ an einer MCU), da hier gepollt wird.

          Kommentar


            #6
            ich hab hier mal etwas mit einem W5500 experimentiert und ein 091A Koppler gebaut.
            Was mir aktuell etwas Kopfzerberechen bereitet (weil ich einfach nicht tief genug in der knx spec und dem stack drin stecke) ist wie die Parameter - in dem Fall denkbar einfach ip, gateway, subnetmaske - aufs Gerät bekomme bzw. wie ich diese anschließend verwenden.
            als codesegment ist bei kopplern anscheinend das fest vorgegeben.
            Code:
                      <Static>
                        <Code>
                          <AbsoluteSegment Id="%AID%_AS-0100" Address="256" Size="256" />
                        </Code>
            Hast du Nanosondedich damit schon beschäftigt? Müssen daten irgendwie auf das ip paramter oder das router object gemappt werden?
            OpenKNX www.openknx.de | NanoBCU und OpenKNX-HW verfügbar

            Kommentar

            Lädt...
            X