Ankündigung

Einklappen
Keine Ankündigung bisher.

DPT 17 vs. 17.001

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

    DPT 17 vs. 17.001

    Hallo,

    hier https://knx-user-forum.de/forum/supp...-wird-gesendet ist gerade der Unterschied zw. DPT 17 und 17.001 aufgekommen.

    Die ETS sendet tatsächlich unterschiedliche Werte, je nachdem, welchen DPT man wählt.
    Szene.JPG

    sz.JPG

    Welchen DPT sollte man denn nun nehmen (ich vermute 17.001) und warum gibt es den anderen dann überhaupt?

    Gruß&Danke,
    Hendrik

    #2
    Hi Hendrik,

    ich habe das immer folgendermaßen gesehen: Die Hapt-DPT, also die Zahl vor dem Punkt, repräsentiert einen Grund-Datentyp, mehr technisch als semantisch, also so was wie "8 Bit vorzeichenlos", "1 Bit" etc. Die Werte werden ohne jegliche Konvertierung gesendet und entsprechen einer binären Repräsentation.
    Die Untertypen (also die Zahlen nach dem Punkt), geben die Semantik innerhalb des Grundtypen an.

    Das sieht man sehr gut bei einem 8 Bit-Wert:
    - Rein technisch ist ein 8 Bit-Wert zuweisungskompatibel zu DPT 4, 5, 6, 17, 18, 20, 21, 25, 26 usw., nur sagt das nichts darüber, wie die 8 Bit interpretiert werden sollen.
    - Deswegen gibt es die Haupttypen der DPT: 4 ist ein Zeichen, 5 eine Vorzeichenlose Zahl (mit Werten von 0-255), 6 hat ein Vorzeichen (mit Werten von -128 bis 127) usw.
    - Doch die Haupttypen sind für die Interpretation zu grob. Man will die genaue Bedeutung wissen und verstehen. Nimmt man z.B. 5.005 (Dezimalfaktor) und 5.010 (Zählimpulse). Technisch beide Werte identisch und egal was man wählt, die Kommunikation wird technisch funktionieren. Aber 5.010 sagt einem, dass an dem KO Werte gelesen werden können, und 5.005, dass an dem KO ein Fakor anliegt (mit dem z.B. die Zählimpulse multipliziert werden müssen, um den korrekten Wert zu erhalten).
    - Beim DPT 5.001 gibt es dann den offensichtlichen Unterschied zwischen Wert und Semantik: Obwohl technisch die Werte 0-255 sind, sagt die Semantik, dass man sie von 0%-100% zu interpretieren hat.

    So hat jede Komponente ihre Bedeutung.

    Um zu Deiner Anfangsfrage zu kommen:

    Für Szenen solltest Du 17.001 nehmen, da das semantisch korrekt ist. Den 17.* DPT gibt es, weil es zu jedem Untertyp einen Haupttyp gibt.

    Gruß, Waldemar
    OpenKNX www.openknx.de

    Kommentar


      #3
      Danke für deine Erklärung!

      Was ich nicht verstanden habe ist, warum beim Senden der 1 einmal eine 2 und einmal eine 1 im Busmonitor angezeigt wird. Aber ich denke das erklärt sich dann über die Semantik. Die Szene mit der Nummer 0 ist die erste Szene.

      Gruß,
      Hendrik

      Kommentar


        #4
        Hi Hendrik,

        Zitat von henfri Beitrag anzeigen
        Die Szene mit der Nummer 0 ist die erste Szene.
        Genau das ist der Fall. Eine Szene wird über die unteren 6 Bit adressiert, die haben den Wertebereich 0-63, also 64 Werte, allerdings 0-Basiert. Da der Mensch 1-Basiert denkt, hat man das wohl beim DPT 17.001 bedacht und dort den Wertebereich 1-64 festgelegt.

        Das speichern einer Szene wird übrigens über das oberste Bit adressiert, deswegen sind beim speichern technisch die Szenennummern um 128 erhöht. Der DPT 17.001 erlaubt aber nur die Werte 1-64 (zumindest in der ETS), womit man mit der ETS mit diesem DPT zwar Szenen aufrufen, aber nicht speichern kann. Könnte ein weiterer Grund sein, warum es noch die 17.* gibt, wobei das technisch auch mit dem DPT 5.* zu erreichen ist.

        Gruß, Waldemar
        OpenKNX www.openknx.de

        Kommentar

        Lädt...
        X