Vailant Ecotec Plus und VCR430 mit eBus steuern

Hallo,

ich bin schon seit längerem an der Sache und habe jetzt für obige Kombination tatsächlich erste Erfolge zu melden. Bin im Kontakt mit einem netten Franzosen aus dem Mikrocontroller-Forum, der VRDialog hat und USB-Bus belauscht. Er sendet mir netterweise Mitschnitte, welche ich auswerten kann. Das positive: VRDialog schickt wohl im Kern eBus Befehle. Ich werde die Ergebnisse in diesem Thread zusammenfassen.

Neben den o.g. Vaillant und IP-Symcon :loveips: benutze ich den Hardware Adapter von E-Service (USB) und Software-Adapter von Brownson.

Allen Skripts gemein ist die Benutzung von eBus_Include (anbei), welche im Skripts-Ordner abzulegen ist und eBus_Include.ips.php benannt werden muß.

Grüsse, Axel

eBus_Include.txt (3.54 KB)

Ich beginne mit der Warmwasser Solltemperatur. Hier mein Skript bzw. der entsprechende eBus-Befehl:


Include "eBus_Include.ips.php";
$WWSollTemp = 35;
$myString = "FF15B509040E4400".dechex($WWSollTemp*2);
COMPort_SendText(59274 /*[Serial Port - eBus]*/, add_crc(hex2str($myString)));

Sender ist FFh, also PC. Target ist 15h, also der Slave der Steuerung (VCR430). Dann kommt die Vaillant-Kennung B5h mit Unterbefehl 09h. Auf eBus.webhop.org ist 09h dem Solarertrag zugeordnet, das hat mich stutzig gemacht, aber es funktioniert.

Noch was: meine VCR430 sendet andauernd was auf dem Bus, deshalb gibt’s noch ein Timing-Problem, wenn mein Skript dazwischenfunkt. Somit wird noch nicht jeder gesendete Befehl akzeptiert. Wenn es klappt, dann quittiert der Controller den befehl mit mehreren 00. Aktuell sende ich den Befehl einfach mehrfach…:o

Hier das Skript bzw. der eBus Befehl, um die Heizkurve zu setzen:

include "eBus_Include.ips.php";
$myString = "FF15B509050E3100".dechex($_IPS['VALUE']*100)."00";
COMPort_SendText(59274 /*[Serial Port - eBus]*/, add_crc(hex2str($myString)));

$_IPS[‚VALUE‘] ist im Variablenprofil von 0,2 bis 4,0 festgelegt. Bei Angabe im Skript natürlich „.“ statt „,“ als Dezimaltrennzeichen benutzen.

Meine Idee ist, die Heizkurve bei Abwesenheit sehr niedrig zu setzen und bei hohem Bedarf (gemessen an der Ventilöffnung meiner FHTs) eben höher. mal sehen ob der Plan so aufgeht…

Anbei die Liste aller Parameter für eine Vaillant Ecotec. Der Aufbau der Befehle ist wie folgt:

FF = Master, hier PC
15 oder 08 = Slave des Controllers bzw. der Therme
B5 = Vaillant Befehl
09 = Datenblock (Vaillant spezifischer Befehl)
nn = Länge der Anfrage (beim lesen immer 03h)
0Dh zum Lesen oder 0Eh zum Schreiben von Parametern
2Fh 00h = 4 stelliger Parameter, hier z.B. „HC1_OPMODE“, also Betriebsmodus des Heizkreis 1.
Beim Setzen von Parametern muss dann abschliessend der zu setzende Wert mitgegeben werden.

Die vollständige Interpretation der Antworten steht noch aus - ich fand es aber für die von mir verwendeten Parameter relativ einfach.

analyseVaillant3.zip (75.3 KB)

Ja, das mache ich auch so bei mir. „Sauber“ ist was anderes, aber das klappt momentan einfach zu gut, um daran herumzufingern, gerade jetzt im Winter…

Naja, eigentlich muss man nur noch die Quittierung abfangen - mach ich auch noch in einer ruhigen Minute.

Gute Arbeit Axel :wink:

Ich hätte da auch noch ein paar Befehle. Die zu sendenden Werte kommen in die Datenbytes (DB).
Wie das ganze encodiert werden muss steht mit drunter, ich kanns jetzt nicht in php, hab das alles in Perl.

Auf das einsetzen in die IPS-Syntax verzichte ich mal:

Raum-Solltemperatur
FF 15 B5 05 02 01 DB
encoding: DATA1b

Absenk-Solltemperatur
FF 15 B5 05 02 0A DB
encoding: DATA1b

Heizkreis-Modus
FF 15 B5 05 02 02 DB
encoding: keines
01=Heizbetrieb
02=Aus
03=Auto
04=Eco
05=Absenken

Party-Modus
FF 15 B5 05 02 05 DB
encoding: keines
00=Partymodus aus
01=Partymodus an

Ich hab da noch 10-20 weitere Befehle bin aber noch nicht dazu gekommen alle zu dokumentieren. Das Format der Doku im eBus-Wiki ist auch ein wenig unübersichtlich bzw. ziemlich aufwendig zu pflegen.
Wer Lust hat kann sich die aus diesem Beitrag hier noch was rausfischen: http://knx-user-forum.de/263765-post112.html

@Axel:
Wie werden bei Dir die Befehle quittiert, ich sehe da bei mir keinen Unterschied ob das Telegramm wirklich verarbeitet wurde oder nicht.

Danke! Die von mir und die genannten Befehle werden mit 000000 quittiert. Hab mir ein Buffer programmiert, der den Befehl erneut sendet, falls keine positive Quittierung kommt.

Was macht der Party-Modus und wie kann man den an der VCR430 einstellen?

Party-Modus heizt bis zum nächsten Schaltpunkt bei Automatik … falls man z.B. mal länger als bis 22.00 Uhr heizen will.

Bei mir wird kein Befehl quittiert … hab mir das gestern extra nochmal programmiert um zu sehen ob da was auftaucht.

Hallo zusammen!

Ich habe heute endlich den lang ersehnten eBus-Ethernet-Koppler von E-Service Online bekommen, gleich angeschlossen und soweit scheint alles zu funktionieren - ich kann die Kommunikation zwischen Brenner und Regler mithören und auch selbst Befehle senden.

Leider fehlen mir noch die richtigen Befehle, um das zu erzielen, was ich gerne erreichen würde. Vielleicht kann mir aber einer von den Experten hier weiterhelfen? Bevor ich aber zu meinen konkreten Fragen komme, hier noch eine kleine Vorstellung meines Projekts:

Die Wohnung ist schon mit HomeMatic und IP-Symcon automatisiert, einzig die Integration der Heizung fehlt noch. Ich habe eine Vaillant atmoTEC plus VC AT 174/4-5-H (Master 03h / Slave 08h) und einen VRT 370 Regler (Master 10h / Slave 15h). Folgende Szenarien würde ich gerne einbinden:

[ol]
[li]Logging von Heizungsparametern (Heizbetrieb, Warmwasserbetrieb, Vorlauftemperatur, Rücklauftemperatur, Warmwasserspeichertemperatur).
[/li][li]Raumsolltemperatur auslesen und setzen.
[/li][li]Zeitfenster (für normale und Absenktemperatur) setzen.
[/li][/ol]
Den ersten Punkt sollte ich über das Mitlauschen zwischen Brenner und Regler bzw. ggf. über eigene Anfragen an den Brenner hinbekommen. Mit den anderen beiden Punkten tue ich mir noch schwer, da ich ja nicht den Brenner direkt steuern, sondern nur die Einstellungen am Regler ändern will. Leider kenne ich die dazu nötigen Befehle nicht.

Den Party-Modus über B5 05 einschalten funktioniert bei mir z.B. nicht. Das Telegramm 00 10 B5 05 02 05 01 EE wird zwar mit 00 bestätigt, an den Einstellungen ändert das aber leider nichts.

Was ich - dank dieses Threads - schon geschafft habe, ist die Warmwasser-Solltemperatur mit B5 09 anzupassen. Das Telegramm 00 15 B5 09 04 0E 44 00 46 E0 wird mit 00 00 00 quittiert und die Einstellungen sind danach auch geändert. Die 46h sind die Solltemperatur (35°), aber wofür stehen eigentlich die anderen Daten-Bytes (0Eh, 44h und 00h)? Ich will nicht unabsichtlich irgendetwas Anderes verstellen…

Nachdem das mit der Warmwasser-Solltemperatur funktioniert, gehe ich davon aus, dass es prinzipiell möglich ist, die Einstellungen am Regler anzupassen, nur fehlen mir anscheinend die richtigen Befehle. Kann mir hier vielleicht wer weiterhelfen? Das Problem ist ja, dass der Regler selbst nichts aussendet, wenn ich händisch irgendetwas verstelle, daher wüsste ich nicht, wie ich selbst auch die nötigen Befehle kommen könnte?

Hi Terenyi,

Wenn der B509 aus diesem Thread funktioniert, dann könntest du Glück haben, dass auch alle anderen Befehle für Ecotec/VCR laufen. Ich frage derweil den Kollegen aus dem Mikrocontroller-Forum, ob ich die Parameter veröffentlichen darf und setze das ggfs. Hier rein.

Danke & Gruß, Axel

0x0E = Datenblock setzen
0x44 = Nummer des Datenblocks
0x00 = normal, ich denke da wollte man sich ne Reserve lassen

Fragt man Daten ab hat man es z.B. of mit 0x0D zu tun … Also Datenblock abfragen.

Gruß

Genau so ist es. Woher weisst du das?

Habe in diesem Post weiter oben eine Liste aller Parameter angehängt.

Weil ich mit den Kommandos meiner Wärmepumpe fast durch bin :wink: und irgendwann sieht man sowas halt :wink:

Ich hatte jetzt aber lange keine Zeit mehr um mich richtig darum zu kümmern. Hoffe das ändert sich bald.
Den B5 11 muss ich mir auch nochmal bei mir ansehen. Die Infos wären ja ganz nett.

Mit dem B5 11 kannst du aber nichts wirklich verändern, wird ja sofort wieder überschrieben. Lesen ist OK und auch auf enus.webhop.org beschrieben, zum Schreiben ist B5 09 besser…

Wahnsinn axelp, du bist mein Held! :wink: Vielen Dank (auch an deinen Franzosen)!

Langsam fügen sich die Puzzlesteine und meinem Kopf zusammen und jetzt sehe ich auch, wie die Infos aus der vrDIALOG810.mdb zusammenhängen und zu verstehen sind.

Ihr habt da sicher viel Arbeit reingesteckt, daher von meiner Seite auch das Versprechen, eure Infos selbst nicht weiterzugeben und nur für meinen privaten Gebrauch zu verwenden.

Ansonsten werde ich auch meine Ergebnisse posten, sobald ich etwas habe - vielleicht kann ich damit wem helfen, vielleicht auch nicht. Als Erstes plane ich, einen Adapter ähnlich zu dem von Brownson zu entwickeln, um einerseits alle Auto-SYNs rauszufiltern und nur fertige Telegramme an IPS weiterzuleiten und um andererseits auch ein mit den SYNs synchronisiertes Senden zu ermöglichen. Ich werde das als C#/.NET Programm (für Konsole und als Windows Service) entwickeln, damit das von IPS-Ugrades unabhängig ist und nicht immer mit Delphi (was ich auch nicht habe) neu kompiliert werden muss. Die Kommunikation zwischen dem Tool und IPS wird einfach über UDP laufen. Danach werde ich mich dann an den eBus-Protokolladapter und die eigentliche Heizungssteuerung in IPS machen und auch posten, sobald es etwas zum Herzeigen gibt.

Danke nochmals und Grüße!

Das hört sich Klasse an, bin gespannt!

Vielleicht lassen sich da Synergien nutzen? http://knx-user-forum.de/wiregate/20249-ebus-usb-plugin-knx-17.html

Der C-Daemon lässt sich dann sicherlich auch unter Windows kompilieren.

Hallo!

Nur zur Info: Ich habe jetzt die angesprochene Schnittstelle zum eBus entwickelt. Siehe hier.

Ich habe mir das kurz angeschaut und es scheint, dass dieser C-Daemon mehr als nur den reinen eBus-Zugriff machen soll. Ich möchte mit meinem Tool rein auf den eBus schreiben bzw. von ihm lesen, jegliche weitere Verarbeitung der Daten jedoch der „Applikationsschicht“ (bei mir IPS-Skripte) überlassen.