Helios KWL: Anbindung über RS 485

0

Die Helios-Geräte, für die es die Fernbedienung KWL-FB oder das Module KWL-EB gibt, können über den Modbus / RS485 angesteuert werden.

Ich benutze dazu den Exsys EX1303-Adapter unter Debian-Linux mit den Standardtreibern, die meisten anderen RS485-RS232 oder RS485-USB-Adapter sollten auch funktionieren.

Grundsätzliche Paramater der Schnittstelle: 9600Baud, 8N1 (8Bits, No Parity, 1 Stop-Bit)

Die Befehlssequenzen zur Abfrage von Statuswerten sind 6 Byte lang, die Antwort von der KWL ist ebenfalls 6 Byte lang. Dagegen unterscheiden sich die Sequenzen zum Schreiben von Einstellungen, die aus 3 Befehlssequenzen a 6 Byte plus einer abschließenden Checksumme bestehen (vgl. Variante 2).

Befehlssyntax Variante 1: Wert lesen von KWL
Anfrage von Fernbedienung/PC an KWL: 6-Byte-Telegramm
Byte 1: 0x01 Immer gleich
Byte 2: Adresse des Senders:
Upper 4 Bits: 0x2. = Bedienungseinheit (evtl. CO2-Sensor?)
Lower 4 Bits: 0x.1 bis 0x.f = Adresse der Bedienungseinheit
Byte 3: 0x11 = Adresse des Empfängers = KWL
Byte 4: 0x00 = Wert lesen
Byte 5: Zu lesende Registeradressen:
0xa3 = Status Ein/Aus:
0x29 = Aktuelle Lüftungsstufe
0x32 = Temperatur Aussenluft
0x33 = Temperatur Fortluft
0x34 = Temperatur Abluft
0x35 = Temperatur Zuluft
Byte 6: Checksumme, gebildet durch Summation der Byte 1-5 Modulo 256

Antwort von KWL: 6-Byte-Telegramm
Byte 1: 0x01 Immer gleich
Byte 2: 0x11 = Adresse der KWL = Byte 3 der Anfrage
Byte 3: Adresse des Empfängers = Byte 2 der Anfrage
Byte 4: Byte 5 der Anfrage = Registeradresse
Byte 5: Inhalt der Registeradressen:
Reg 0xa3 = Status: Inhalt 0x80 = Aus, 0x81 = Ein
Reg 0x29 = Lüftungsstufe: Inhalt: 0x01=Stufe 1, 0x03=2, 0x07=3, 0x0f=4, 0x1f=5, 0x3f=6, 0x7f=7, 0xff=8
Reg 0x32 bis 0x35 = Temperatur: (Registerwert-100)/3 = Temperatur in Grad Celsius
Byte 6: Checksumme, gebildet durch Summation der Byte 1-5 Modulo 256

Beispiel:
Von Fernbedienung an KWL: 0x01 0x2f 0x11 0x00 0x32 0x73
0x01: Immer gleich
0x2f: Adresse der Fernbedienung, hier „f“ = dezimal 15
0x11: Adresse der KWL
0x00: Befehl „Wert lesen“
0x32: Parameter/Registeradresse „Temperatur Aussenluft“
0x73: Checksum 0x01 + 0x2f + 0x11 + 0x00 + 0x32 = 0x73

Antwort von KWL an Fernbedienung: 0x01 0x11 0x2f 0x32 0x73 0xe6
0x01: Immer gleich
0x11: Adresse der KWL
0x2f: Adresse der Fernbedienung, hier „f“ = dezimal 15
0x32: Parameter/Registeradresse „Temperatur Aussenluft“ wird ausgegeben
0x73: Temperatur: 0x73 = dez 115 –> Temp = (115-100)/3 = 5 Grad Celsius
0x73: Checksum 0x01 + 0x2f + 0x11 + 0x00 + 0x32 = 0x73

Befehlssyntax Variante 2: Wert schreiben / Status setzen
Zum Ein- und Ausschalten der KWL sowie Setzen der Lüftungsstufen wird der Befehl an die KWL-Adressen 0x20, 0x10 und 0x11 gesendet.
Bezüglich der Checksumme bei den drei Befehlen, sendet die Helios-Fernbedienung nach jedem Befehl diejenige Checksumme, die sich aus der Befehlssequenz an 0x11 ergibt. Zum Abschluss der gesamten Sequenz wird diese noch einmal wiederholt
Beispiel Einschaltsequenz von Fernbedienung an KWL (alles ohne Unterbrechung gesendet)
0x01 0x2f 0x20 0xa3 0x81 0x65
0x01 0x2f 0x10 0xa3 0x81 0x65
0x01 0x2f 0x11 0xa3 0x81 0x65 0x65
Ausschalten: analog mit Status 0x80 statt 0x81:
0x01 0x2f 0x20 0xa3 0x80 0x64
0x01 0x2f 0x10 0xa3 0x80 0x64
0x01 0x2f 0x11 0xa3 0x80 0x64 0x64
Lüftungsstufen (hier Stufe 3=0x07):
0x01 0x2f 0x20 0x29 0x07 0x71
0x01 0x2f 0x10 0x29 0x07 0x71
0x01 0x2f 0x11 0x29 0x07 0x71 0x71

Beim Ansprechen vom PC aus hat dieses aber nicht immer funktioniert. Hier musste für jede einzelne Befehlssequenz die korrekte Checksumme benutzt werden:
Beispiel Einschaltsequenz von Fernbedienung an KWL (alles ohne Unterbrechung gesendet)
0x01 0x2f 0x20 0xa3 0x81 0x74 (statt 0x65)
0x01 0x2f 0x10 0xa3 0x81 0x64 (statt 0x65)
0x01 0x2f 0x11 0xa3 0x81 0x65 0x65

Anmerkungen:
– Die KWL sendet im Betrieb regelmäßig von sich aus bestimmte Statusmeldungen analog der Antwort eines Lesebefehls an die Adresse 0x20.
– Die Fernbedienung fragt im Betrieb zyklisch die aktuell auf der Fernbedienung dargestellten Werte ab, worauf die KWL entsprechend antwortet.
– Die Statusanfrage An/Aus funktioniert auch im ausgeschalteten Zustand der KWL.
– Wenn man über PC die KWL einschaltet, bleibt die Fernbedienung aus. Ein Einschalten der FB funktoniert aber, danach kann man wie gewohnt die FB benutzen.
– Ich habe keine Anzeichen für ein Kollisionsmanagement auf dem Bus gefunden. Dennoch können sowohl KWL als auch Fernbedienung anscheinend als Master auftreten.

Viele Grüße
Jan-Hendrik