Vaillant X6 Schnittstelle: Unterschied zwischen den Versionen
Mali (Diskussion | Beiträge) |
Mali (Diskussion | Beiträge) (→07 02 00 00 00 04 C4) |
||
Zeile 60: | Zeile 60: | ||
08 00 00 99 07 00 14 96 | 08 00 00 99 07 00 14 96 | ||
− | |||
− | |||
====07 00 00 00 01 02 E0==== | ====07 00 00 00 01 02 E0==== |
Version vom 6. Jänner 2010, 00:07 Uhr
Auf der mit X6 beschrifteten Buchse liegt ein RS232-Signal mit TTL-Pegeln an. Die Geräte kommunizieren mit 9600 Baud (8N1, keine Flusskontrolle). Normalerweise wird über diese Buchse ein PC angeschlossen, auf dem das Programm vrDIALOG ausgeführt wird, oder ein Kommunikationsmodul für das vrNetDIALOG-System.
Inhaltsverzeichnis
Belegung
+---------+ 6 --- | GND 5 --- +--+ TXD 4 --- | RXD 3 --- | 2 --- +--+ 1 --- | +---------+ Blick auf die Buchse (!)
Protokoll
Die Kommunikation scheint immer vom angeschlossenen PC (oder Ethersex?) auszugehen. Die Nachrichten in beide Richtungen haben ein ähnliches Format:
Es gibt kein Zeilenende wie CR oder CR+LF.
Aufbau der Nachrichten
Alle Nachrichten haben ein gemeinsames Format:
Bytes 1 2 3 ... n-1 n +-----+-----+---- ---+-----+ | Len | ? | Daten | Chk | +-----+-----+---- ---+-----+ Byte 1 gibt die Gesamtlänge der Nachricht an ("n") Byte 2 ist mir noch nicht ganz klar 0x00 Normale Nachrichten 0x01 Fehlermeldungen? 0x02 Broadcast? Verwendet zB. bei der Suche nach angeschlossenen Geräten Byte 3 Daten - n Byte n Prüfsumme
Prüfsumme
Die Berechnung der Prüfsumme ist mir noch nicht klar. Es scheint kein CRC zu sein, sondern eher einen Prüfsumme, die mit unterschiedlichen Gewichten arbeitet.
- Die gleiche Nachricht hat immer die gleiche Prüfsumme
- Das vierte Byte der Nachricht scheint ein Gewicht von 1 zu haben:
0x05 0x00 0x00 0x22 0x0A 0x05 0x00 0x00 0x23 0x0B 0x05 0x00 0x00 0x24 0x0C
Befehle
07 02 00 00 00 04 C4
Fragt nach angeschlossenen Geräten? In meinem Fall meldet das Gerät anscheinend seine Versionsnummer, die von vrDialog als "0153_07.00" angezeigt wird:
08 00 00 99 07 00 14 96
07 00 00 00 01 02 E0
Fragt Sollwert Brauchwassertemperatur ab. Der Temperaturwert ist in den Bytes 3 und 4 wie unten beschrieben kodiert (hier: 35°C)
05 00 02 30 1C
Kodierung von Werten
Temperaturen
Temperaturen scheinen immer auf gleiche Weise kodiert zu sein. Das zuerst gesendete Byte ist das höherwertige Byte. Der erhaltene Zahlenwert entspricht der Temperatur in 1/16°C.
Beispiel
0230h = 560d = 35°C
Wahrheitswerte
0F = An F0 = Aus