Hallo jolt,
mit dem von dir angesprochenen "Flamewar" war wohl die Diskussion zwischen Tuxedo und mir vor einiger Zeit gemeint.
Ich wäre mehr als froh, mein bisheriges Config Tool in die Tonne zu treten und die ETS verwenden zu können. Insofern bin ich an deinen Erkenntnissen hochinteressiert (und die Grundlage für die o.g. Diskussion entfiele gleich mit). Allerdings wüsste auch ich gerne, ob man die Erkenntnisse guten Gewissens verwenden kann - auf nähere Bekanntschaft mit §202a StGB lege ich keinen Wert, deswegen wäre die Info, woher der Private Key kommt, schon interessant.
EDIT: habe erst nach der Antwort deine Extraktionsmethode gesehen. Damit entfällt das für mich leider
Wenn du KNX-Stack schreiben willst: ich bin damit schon fertig (und habe versucht, mich an den Standard zu halten). Schicke mir mal eine Mail, dann bekommst du die Zugangsdaten.
Zur KNXPROD:
Ich habe mir jetzt (ziemlich willkürlich) die .knxprod des MDT-Logikmoduls hergenommen.
In der hardware.xml steht ja nicht viel drin, das enthält wohl generische Produktbeschreibung, einen Verweis auf die XML-Datei mit dem eigentlichen Inhalt und Verweise auf andere Sprachversionen.
Die eigentliche Beschreibungsdatei hat in etwa folgende Struktur:
Die interessanten Daten sind in Static und Dynamic. Alle Daten sind über IDs verknüpft, die ein bisschen nach GUID aussehen (aber keine sind).
Static sieht so aus:
Es folgt Dynamic. Hier scheint beschrieben zu werden, wie in der ETS abhängig von einzelnen Werten andere Werte sichtabr sind oder auch nicht.
Struktur von Dynamic:
Daraus bin ich nicht so recht schlau geworden, vermutlich wäre eine simplere Applikation einfacher gewesen. choose/when sind wohl If-Abfragen. Die IDs und vor allem das Hin und Her zwischen ID und Ref-ID machen das Leben nicht unbedingt leichter.
Für eine erste eigene .knxprod könnte man auf den Dynamic-Teil aber vielleicht auch einfach verzichten.
Max
mit dem von dir angesprochenen "Flamewar" war wohl die Diskussion zwischen Tuxedo und mir vor einiger Zeit gemeint.
Ich wäre mehr als froh, mein bisheriges Config Tool in die Tonne zu treten und die ETS verwenden zu können. Insofern bin ich an deinen Erkenntnissen hochinteressiert (und die Grundlage für die o.g. Diskussion entfiele gleich mit). Allerdings wüsste auch ich gerne, ob man die Erkenntnisse guten Gewissens verwenden kann - auf nähere Bekanntschaft mit §202a StGB lege ich keinen Wert, deswegen wäre die Info, woher der Private Key kommt, schon interessant.
EDIT: habe erst nach der Antwort deine Extraktionsmethode gesehen. Damit entfällt das für mich leider

Wenn du KNX-Stack schreiben willst: ich bin damit schon fertig (und habe versucht, mich an den Standard zu halten). Schicke mir mal eine Mail, dann bekommst du die Zugangsdaten.
Zur KNXPROD:
Ich habe mir jetzt (ziemlich willkürlich) die .knxprod des MDT-Logikmoduls hergenommen.
In der hardware.xml steht ja nicht viel drin, das enthält wohl generische Produktbeschreibung, einen Verweis auf die XML-Datei mit dem eigentlichen Inhalt und Verweise auf andere Sprachversionen.
Die eigentliche Beschreibungsdatei hat in etwa folgende Struktur:
Code:
KNX ManufacturerData Manufacturer ApplicationPrograms ApplicationProgram Static Dynamic Languages
Static sieht so aus:
Code:
Code - hier sind Speicherstellen definiert, z.T. mit Inhalt. AbsoluteSegment AbsoluteSegment ... ParameterTypes - hier können Wertearten definiert werden, z.B. ein Int von 0 bis 255 oder eine Aufzählung Parameters Parameter Parameter ... ParameterRefs - hier wird jedem Parameter zusätzlich noch eine Ref-Id zugewiesen. Zweck ist mir unklar. ComObjectTable ComObject ComObject ... AddressTable AssociationTable
- Die Parameter gibt es in zwei Geschmacksrichtungen - mit und ohne Memory-Eintrag. Letztere werden wohl auch ins Gerät geschrieben, erstere werden nur ETS-intern verwendet. Hat jemand eine Ahnung, wie man hier Properties statt der vermaledeiten Memory-Einträge verwenden kann?
EDIT2: habe bei Gira was gefunden, sieht dann so aus:
Code:<Parameter Id="M-0008_A-A012-12-34D5-O000A_P-2730" Name="Allg_Hardwaretype" ParameterType="M-0008_A-A012-12-34D5-O000A_PT-Type.5FHardware" Text="Hardwaretype" Access="None" Value="1"> <Property ObjectIndex="0" PropertyId="78" Offset="0" BitOffset="0" /> </Parameter>
- Die ComObjects sind relativ einfach; ins Gerät geschrieben wird am Ende vermutlich nur die Nummer ("Number")
- Zu Address Table und Association Table kann ich nur auf die BCU2-Doku von Martin Kögler verweisen. Letztendlich ist die Address Table eine Liste von GAs (je 16 bit), die Association Table verknüpft dann diese Adressen mit den ComObjects über deren "Number".
Wenn ich mich recht erinnere, gibt es in der ETS ein Verfahren, um die beiden Tabellen an verschiedene Speicherstellen schreiben zu können (d.h. die Adresse im EEPROM ist nicht fix). Im von mir betrachteten Gerät allerdings sieht es aus, als ob die Adressen fix wären.
Es folgt Dynamic. Hier scheint beschrieben zu werden, wie in der ETS abhängig von einzelnen Werten andere Werte sichtabr sind oder auch nicht.
Struktur von Dynamic:
Code:
Channel ParameterBlock ParameterRefRef ParameterRefRef ... choose when ComObjectRefRef
Für eine erste eigene .knxprod könnte man auf den Dynamic-Teil aber vielleicht auch einfach verzichten.
Max
Kommentar