Ankündigung

Einklappen
Keine Ankündigung bisher.

Aktives lesen des Zustandes eines KNX Gerätes?

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

    Aktives lesen des Zustandes eines KNX Gerätes?

    Hallo,

    Im Apache PLC4X Projekt arbeiten wir dieses Jahr als Schwerpunkt auf der Discovery (Welche KNX Geräte habe ich?) und Browse (Welche Informationen haben diese Geräte für mich?). Den Discovery-Teil habe ich soweit schon ganz gut im Griff. Beim Browse tue ich mich gerade noch etwas schwer.

    Ich bin in der Lage die Informationen welche Parameter ein Gerät hat wunderbar aus den XML files im etsproj lesen. Diese kann ich vermutlich gut auslesen indem ich die zugehörigen Speicheradressen auslese und auswerte. Bei dem ist-zustand habe ich allerdings Probleme. Ich gehe davon aus, dass sich der aktuelle Zustand in den communictaionObjects verbirgt. Die würde ich im ETS nun an GruppenAdressen koppeln und dafür sorgen, dass diese gesendet werden.

    Nun will ich allerdings nicht alle communication objects alles immer auf den Bus senden lassen, da das aus meiner Sicht viel zu viel Kommunikation wäre. Gibt es eine Möglichkeit diese werte auch zu pollen? Ich würde mich gerne mit einem Gerät verbinden und den aktuellen Zustand auslesen. Das hilft auch vor allem, wenn ich meine Anwendung starte und vielleicht noch kein GroupWrite abgefangen werden konnte. Somit könnte ich den Applikation Zustand initialisieren und ab da dann mit den daten aus GroupWrite Telegrammen arbeiten.

    Wäre sehr dankbar für ein wenig Aufklärung ... und die Hilfe geht auch direkt in ein Open-Source Projekt ein und nicht einem Produkt.

    Viele Grüße,
    Chris

    #2
    Wenn am Kommunikationsobekt das L(esen)-Flag gesetzt ist, kannst du den Wert mit GroupValueRead auslesen.

    Das Auslesen der Parameter unterschätzt du glaube ich im Übrigen gewaltig. Die Parameter bilden keine flache Struktur, sondern sind voneinander abhängig.

    Kommentar


      #3
      Hi Klaus,

      vielen dank ... damit ein GroupValueRead klappt, müssen den Kommunikationsobjekten vermutlich auch Gruppenadressen zugewiesen sein, richtig? Bei einem konkreten Szenario geht es nämlich darum, dass wir in einem Gebäude den Ist-Zustand darstellen wollen ohne die KNX Programmierung dabei anzufassen (Ist ja eines der Versprechen von PLC4X, dass man möglichst ohne die Anlage anzupassen daten auslesen kann). Vermutlich könnte ich die Ist-Werte im Speicher finden, allerdings liefern die daten in den XML files da vermutlich keine Hifestellung, richtig? Gibt es einen weg herauszufinden wie das Gerät konfiguriert ist? Ich meine welche Gruppenadresse an ein Kommunikationsobjekt gekoppelt ist? Mein ziel ist es ein system zu bauen, welches ohne knxproj files auskommt und nur mit der produktbeschreibung auskommt.

      Naja ... sagen wir es mal so ... das Auslesen der Daten ist nicht das problem, die interpretation ist dann allerdings etwas kniffliger ... Ich sehe diese Bedinugen hier alle in den
      /KNX/ManufacturerData/Manufacturer/ApplicationPrograms/ApplicationProgram/Dynamic elementen ... die Interpretation würde ich dann als nächstes angehen ... immer ein Problem nach dem andren ;-)

      Kommentar


        #4
        Wenn keine Gruppenadresse zugewiesen ist, kannst du den Wert auch nicht über Gruppenkommunikation auslesen. Außerdem muss die Gruppenadresse auch in allen Filtertabellen zwischen Gerät und Schnittstelle eingetragen sein.

        Ausnahme: ganz aktuelle Geräte (grob gesagt: alles was Security unterstützt) bieten einen Dienst "GroupObjectDiagnostics", mit dem das auch direkt geht.

        Die zugewiesenen Gruppenadressen kann man auslesen (Adress- und Assoziationstabelle), siehe KNX Handbuch Volume 3/5/1 "Resources".

        Kommentar


          #5
          Ok ... vielen Dank für die Infos ... ich glaube das mit den Filtertabellen ist ein sehr nützlicher Tip. Ich könnte nämlich schwören, dass ich das mit den GroupReads schon mal probiert hatte, allerdings ohne Erfolg. Da ich im Gateway allerdings nichts eingerichtet habe dafür, wird das wohl der Grund sein, warum da nix beim device ankam.

          Leider muss ich gestehen, erschlägt mich die KNX Spec immer etwas. Eine Vorgehensweise ala "Ich will dies erreichen, also schaue ich in dieses Kapitel" geht da ja leider nicht. Da ist immer jeder Layer so detailliert beschrieben, allerdings berührt scheinbar alles was ich mache immer zig layer. Daher suche ich mir meistens ein lauffähiges Beispiel und schaue mir erstmal an, was genau da eigentlich passiert und lese dann in der Spec die details nach.

          Gibt's irgendwo eine Informationsquelle, die anders strukturiert ist? Muss auch keine kostenlose quelle sein.

          Kommentar

          Lädt...
          X