Magic B.
28.11.04, 10:47
Hallo!
Ich spiele jetzt schon seit 1,5 Jahren das Adventure "EIB". Momentan stecke ich allerdings ein bisschen fest.
Ich habe mir mit VB.NET eine Anbindung an den Bus (FT1.2 über BCU2.0) zusammengebastelt. Damit möchte ich später mal visualisieren und steuern. Die Arbeit mit Gruppenadressen (Mitlesen, Lesen und Schreiben) funktioniert auch zufriedenstellend. Die Beispiele und Informationen von Matthias Dehof haben mir da sehr weitergeholfen.
=== ab jetzt sind viele Dinge Interpretationen von mir und nicht unbedingt Wahrheiten - ich bin Amateur ===
Mein nächster Punkt auf der Liste sind die EIB-Objekte. Ich habe mir vorgestellt die Objekte der einzelnen Geräte auch mal direkt auszulesen (Werte, Datentypen, etc.).
Frei zugängliche Informationsquellen für diese (Forschungs-)Arbeit sind übrigens:
- EIBA EIB Specifications Volume 3 (http://eiba-software.com/eibacom/Volume3.zip)
und http://www.knx-developer.de/bcu2_help_1/help_java.htm
Ich sehe zwei Ansätze:
- A_Memory_Read one-to-one connection oriented
- A_PropertyValue_Read one-to-one connectionless
Ich habe mich für letzteres entschieden:
Mein Diagramm sieht dann folgendermaßen aus:
FT1.2 Header (Längenbytes mit Wert=14) = 68 0E 0E 68
FT1.2 function code = Send_UDAT = 53 oder = 73 je nach FrameCountBit
Auf Data Link Layer = L_Data.req = 11
Im Controlfield die Priorität auf normal = 0C
Quell-Adresse leer (wird nicht benötigt) = 00 00
Zieladresse 1.1.10 = 11 0A
NCPI Adresstype Physical adress, Routing Counter auf 6, Länge der Nachricht 5 => 0 110 0101 = 65
TPCI inkl APCI: Numbered Data, Sequence Number = 0, A_PropertyValue_Read => 01 0000 1111010101 = 43 D5
und jetzt kommts: A_PropertyValue_Read möchte gerne ein paar Daten (User Layer), nämlich:
- object_id - dies habe ich als Objektnummer interpretiert - die ersten vier (0-3) sind System EIB Objekte => ab 4 sind es User EIB Objekte, das müsste heißen Objekt_id = 4 ist das vom Gerät bereitgestellte Objekt Nr. 0, 5 ist 1 und so weiter => Objekt Nr 1 = 05
- Property_id - keine Ahnung, ich nehme an Wert, Datentyp, etc. - ich probiers mal mit der 1 => 01
- No of elements und Start_index - sollte für sich sprechen - ich probier 1 Element ab Stelle 1 und index 1 => 10 01
noch schnell die Checksumme dazu und das Endekennzeichen.
Zusammen ergibt dies: 68 0E 0E 68 73 11 0C 00 00 11 0A 65 43 D5 05 01 10 01 3F 16
Es kommt auch sofort ein confirm, d.h. das Telegramm ist im Aufbau korrekt. Es kommt aber kein Indicate.
Lange Vorrede. Ich hoffe irgendjemand im Forum kann mir da weiterhelfen.
Gruß Oliver
Ich spiele jetzt schon seit 1,5 Jahren das Adventure "EIB". Momentan stecke ich allerdings ein bisschen fest.
Ich habe mir mit VB.NET eine Anbindung an den Bus (FT1.2 über BCU2.0) zusammengebastelt. Damit möchte ich später mal visualisieren und steuern. Die Arbeit mit Gruppenadressen (Mitlesen, Lesen und Schreiben) funktioniert auch zufriedenstellend. Die Beispiele und Informationen von Matthias Dehof haben mir da sehr weitergeholfen.
=== ab jetzt sind viele Dinge Interpretationen von mir und nicht unbedingt Wahrheiten - ich bin Amateur ===
Mein nächster Punkt auf der Liste sind die EIB-Objekte. Ich habe mir vorgestellt die Objekte der einzelnen Geräte auch mal direkt auszulesen (Werte, Datentypen, etc.).
Frei zugängliche Informationsquellen für diese (Forschungs-)Arbeit sind übrigens:
- EIBA EIB Specifications Volume 3 (http://eiba-software.com/eibacom/Volume3.zip)
und http://www.knx-developer.de/bcu2_help_1/help_java.htm
Ich sehe zwei Ansätze:
- A_Memory_Read one-to-one connection oriented
- A_PropertyValue_Read one-to-one connectionless
Ich habe mich für letzteres entschieden:
Mein Diagramm sieht dann folgendermaßen aus:
FT1.2 Header (Längenbytes mit Wert=14) = 68 0E 0E 68
FT1.2 function code = Send_UDAT = 53 oder = 73 je nach FrameCountBit
Auf Data Link Layer = L_Data.req = 11
Im Controlfield die Priorität auf normal = 0C
Quell-Adresse leer (wird nicht benötigt) = 00 00
Zieladresse 1.1.10 = 11 0A
NCPI Adresstype Physical adress, Routing Counter auf 6, Länge der Nachricht 5 => 0 110 0101 = 65
TPCI inkl APCI: Numbered Data, Sequence Number = 0, A_PropertyValue_Read => 01 0000 1111010101 = 43 D5
und jetzt kommts: A_PropertyValue_Read möchte gerne ein paar Daten (User Layer), nämlich:
- object_id - dies habe ich als Objektnummer interpretiert - die ersten vier (0-3) sind System EIB Objekte => ab 4 sind es User EIB Objekte, das müsste heißen Objekt_id = 4 ist das vom Gerät bereitgestellte Objekt Nr. 0, 5 ist 1 und so weiter => Objekt Nr 1 = 05
- Property_id - keine Ahnung, ich nehme an Wert, Datentyp, etc. - ich probiers mal mit der 1 => 01
- No of elements und Start_index - sollte für sich sprechen - ich probier 1 Element ab Stelle 1 und index 1 => 10 01
noch schnell die Checksumme dazu und das Endekennzeichen.
Zusammen ergibt dies: 68 0E 0E 68 73 11 0C 00 00 11 0A 65 43 D5 05 01 10 01 3F 16
Es kommt auch sofort ein confirm, d.h. das Telegramm ist im Aufbau korrekt. Es kommt aber kein Indicate.
Lange Vorrede. Ich hoffe irgendjemand im Forum kann mir da weiterhelfen.
Gruß Oliver