Hallo,
mit dankenswerter Unterstützung durch Babba ist es mir jetzt gelungen eBus Telegramme in IPS einzulesen. Das ganze sieht so aus:
20.06.2010 16:10:40.00 | RECEIVED | AA
20.06.2010 16:10:40.00 | RECEIVED | AA
20.06.2010 16:10:40.00 | RECEIVED | AA
20.06.2010 16:10:40.00 | RECEIVED | AA 30 50 50 14 08 61 00
20.06.2010 16:10:40.00 | RECEIVED | 08 80 15 08 00 00 B2
20.06.2010 16:10:40.00 | RECEIVED | FA 30 50 50 14 08 61 00
20.06.2010 16:10:40.00 | RECEIVED | 08 80 15 08 00 00 B2
20.06.2010 16:10:40.00 | RECEIVED | 30 50 50 14 08 61 00 08
20.06.2010 16:10:40.00 | RECEIVED | 80 15 08 00 00 B2
20.06.2010 16:10:40.00 | RECEIVED | 30
20.06.2010 16:10:40.00 | RECEIVED | 50 50 14 08 61 00 08 80
20.06.2010 16:10:40.00 | RECEIVED | 15 08 00 00 B2
20.06.2010 16:10:40.00 | RECEIVED | 30 50 50 14 08 61 00 08
20.06.2010 16:10:40.00 | RECEIVED | 80 15 08 00 00 B2
20.06.2010 16:10:41.00 | RECEIVED | 30 50 50 14 08 61 00 08
20.06.2010 16:10:41.00 | RECEIVED | 80 15 08 00 00 B2
20.06.2010 16:10:41.00 | RECEIVED | 30
20.06.2010 16:10:41.00 | RECEIVED | 50 50 14 08 61 00 08 80
20.06.2010 16:10:41.00 | RECEIVED | 15 08 00 00 B2
20.06.2010 16:10:41.00 | RECEIVED | FE 30 50 50 14 08 61 00
20.06.2010 16:10:41.00 | RECEIVED | 08 80 15 08 00 00 B2
20.06.2010 16:10:41.00 | RECEIVED | 30 50 50 14 08 61 00 08
20.06.2010 16:10:41.00 | RECEIVED | 80 15 08 00 00 B2
20.06.2010 16:10:41.00 | RECEIVED | 30
20.06.2010 16:10:41.00 | RECEIVED | 50 50 14 08 61 00 08 80
20.06.2010 16:10:41.00 | RECEIVED | 15 08 00 00 B2
20.06.2010 16:10:41.00 | RECEIVED | 30
20.06.2010 16:10:41.00 | RECEIVED | 50 50 14 08 61 00 08 80
20.06.2010 16:10:41.00 | RECEIVED | 15 08 00 00 B2
20.06.2010 16:10:42.00 | RECEIVED | AA 30 FE 09 03 04 76 00
20.06.2010 16:10:42.00 | RECEIVED | 18 FC 46
20.06.2010 16:10:42.00 | RECEIVED | AA
20.06.2010 16:10:42.00 | RECEIVED | AA
Wie man sieht, kommen die Telegramme nicht schön mit einem CRLF am Ende, sondern man muss sie sich wohl „zurechtschnippeln“. Leider ist die Länge der Telegramme unterschiedlich (Abhängig vom Dienst), und auch das erste und letzte Zeichen (Source Adresse, CRC), der Aufbau (Im Beispiel rot) ist so:
30 50 50 14 08 61 00 08 80 15 08 00 00 B2
QQ ZZ DH DU DB DA DA DA DA DA DA DA DA CRC
QQ = Quelle
ZZ = Ziel
DH = Dienst Hauptgruppe
DU = Dienst Untergruppe
DB = Anzahl Datenbytes ->hier 8
DA = Datenbyte (Anzahl, Füllwert und Parameter abhängig vom Dienst [Siehe DH/DU])
CRC = Polynom Prüfsumme
AA ist das SYN Zeichen, wird nach meinem Verständnis vom Master als „Ready to listen“ gebroadcastet. Die sieht man dauernd auf dem Bus. Die Pakete die ich sehe sind solche, die zwischen Controller, Wandsteuerung und einigen Systemkomponenten (Identifizieren konnte ich bisher nur den Brenner) versandt werden. Der eBus sieht auch vor, dass man Anfrage Telegramme and Baugruppen senden kann, und dann von dieser Baugruppe eine spezifische Antwort erhält. Das kann ich im Moment natürlich nicht sehen, da ich keine requests sende. Ich habe bisher bei mir 6 unterschiedliche Dienste auf dem Bus gesehen, wobei nur zwei interessant sind:
- Brennersteuerung / Warmwassersollwert
- Aussentemp / Datum / Zeit
Allerdings läuft ja auch die Heizung bei mir nicht zur Zeit
Darüber hinaus gibt es dann noch, abhängig vom Dienst verschiedene Datentypen, diese sind in der Grafik im Anhang beschrieben.
Da ich programmiertechnisch limitiert bin suche ich jetzt Hilfe in der Community, vieleicht hat jemand für den Programmieren keine so hohe Eintrittsbarriere wie für mich darstellt ja Interesse hier zu helfen.
Im ersten Schritt müsste man wohl mit Hilfe der RegVar und des RegVar Buffers die Telegramme erst mal zurechtschneiden, im zweiten dann Servicebasiert die Datenbytres auswerten und (einfach) in in IPS Variablen schreiben.
Schritt drei wäre dann wohl Befehle zu versenden und die Antwort auszuwerten.
Kann/Will jemand helfen?
Gruss,
wupperi