Vaillant Therme über eBus steuern

Ev. liegt es daran, dass es nur den Traffic beim lesen anzeigt?

LED, da wird Dir Andrge helfen können, mail ihm einfach Deine Fragen.

Schreiben ist sowieso ein Thema für sich, Hersteller für Hersteller. Du wolltest da ja einsteigen.

Gruß Helmut

Hier mal ein paar Telegramme vom Raumregler. Vielleicht will ja jemand testen.
Der Raumregler (70) sendet an den Mischer (50)

Party-Modus:
70 50 B5 05 02 05 XX

xx = 01 -> AN
xx = 00 -> AUS

Raum-Solltemperatur:
70 50 B5 05 02 01 XX

DATA1b (0A=10°C/0B=11°C,…)

Gruß Mirko

Sehr cool! Hab kein Mischer, schicke das an die Steuerung (Slave von 10h, also 15h), diese quittiert das mit 00, aber leider passiert nichts. Welche Therme und Steuerung hast du genau? Kannst du ein Telegramm zum setzen des WW-Sollwerts erzeugen?

Danke & Gruß, Axel

WW-Soll kann man über das VR 90 nicht einstellen. Generell ist das Gerät eher überflüssig. Wenn meine Tests durch sind landet das definitiv wieder in den Kleinanzeigen oder bei ebay. Das Teil ist nichtmal schön beleuchtet :wink: … Frechheit. :wink:

Ich habe auch keinen Mischer … Vaillant scheint bei der Adressvergabe sehr kreativ zu sein.

Die Steuerung sendet z.B. an 23,25,50 und einer war noch dabei. Der Raumregler sendet ausschließlich auf die 50. Je nach Modell werden die Adressen da wechseln.

Bei mir ist eine WP geoTherm plus VWS 82/3 im Einsatz. Interner Brauchwasserspeicher, kein Pufferspeicher nix sonst. Die heizt direkt in die FBH -> KISS. Ich denke das viele „Adressen“ auf der Hauptplatine untergebracht sind.

Probier es mal auf die 50, die scheint bei mir für vieles zuständig.

Hatte mal ene Identifikation (0704) an 50h gesendet und keine Antwort erhalten. Also try and error…

Mal die Requests probiert, die ich geposted habe? Also den zum Auslesen der Uhr und den zum setzen von Vorlauf-/Warmwassertemperatur?

Wenn ich die Doku richtig im Kopf habe dann kann man die Identifikationsanfrage auch als Broadcast an FE senden. Müsste man nochmal nachschlagen. So könnte man sehen wer alles auf dem Bus ist.

Bei Identifikation an FE stellen sich alle Teilnehmer stumm. Sind auch nur Vaillant.

Sokkerheld: Mein Brenner (08h) scheint den B5h 10h Befehl zu akzeptieren (Reaktion 00h), aber der WW-Sollwert wird sofort wieder von der Steuerung (10h) überschrieben. Ich kann es auch an die Steuerung oder deren Slave (15h) direkt senden - bekomme quittierung (00h), aber die Werte werden tatsächlich nicht angenommen.

Ich bin schon soweit desillusioniert, dass Vaillant für die unterschiedlichen Systeme unterschiedliche Befehle hat. Sehe für mich als Fortschritt nur die Alternativen 1) die Steuerung (Calormatic VCR430) rauszunehmen (und Bedarfsgerecht über IPS zu steuern) oder den eine temporär eine Fernbedienung dranzuhängen, um die Befehle abzugreifen.

Was machen die Regler an der Therme, wenn die Steuerung abgklemmt ist? Werden die Soll-Werte immer wieder überschrieben?

Also hier nochmal zusammengefasst, was die Therme macht. Basierend auf eigenen Versuchen mit analogem Raumthermostat an 7-8-9, eBus-Befehlen per Skript und Fachsimpelei mit dem Installateur:

Normalerweise heizt die Therme das Heizwasser bis zur eingestellten Max-Temperatur auf. Diese wird an der Therme selbst über einen Drehknopf eingestellt und lässt sich (auch sicherheitshalber) nicht per Buskommando o.ä. überschreiben. Achtung, der Drehknopf ist aus filigranem Plastik und bricht leicht ab…!

Ist ein analoger Regler angeschlossen, so kann dieser die Solltemperatur des Vorlaufs zusätzlich begrenzen. Liegt die Grenze unter 20°C, so wird dies von der Therme als „kein Wärmebedarf“ interpretiert und, falls sie über ein Klartextdisplay verfügt, auch entsprechend angezeigt. Liegt die Grenze oberhalb der an der Therme eingestellten Max-Temperatur, so wird der Vorlauf bis zu dieser Max-Temperatur erhitzt, nicht darüber.

Ist ein digitaler Regler angeschlossen - oder aber ein Skript, das die entsprechenden eBus-Befehle sendet - dann kann dieser/dieses eine bestimmte Solltemperatur setzen, welche dann auch von der Therme angefahren wird. Wiederum gilt, dass eine Temperatur unter einem bestimmten Wert (vmtl. auch 20°C) als „kein Wärmebedarf“ interpretiert wird. Ebenfalls gilt, dass, falls die per eBus gesetzte Solltemperatur die an der Therme eingestellte Max-Temperatur überschreitet, nur bis zur Max-Temperatur der Vorlauf erhitzt wird, nicht darüber. Der Wert muss unbedingt in Intervallen von <10 Minuten wiederholt werden, da die Therme sonst automatisch auf Max-Temperatur schaltet.

War ein analoger Regler angeschlossen und wird nun getrennt, so fällt die Begrenzung der Vorlauftemperatur durch ebendiesen weg, die Therme heizt dann also dauerhaft bis zur Max-Temperatur.

War ein digitaler Regler angeschlossen und wird nun getrennt (bzw. IPS geht offline) so wird die per eBus gesetzte Solltemperatur noch für ca. 10 Minuten beibehalten, anschließend heizt die Therme bis zur Max-Temperatur. Dies macht sie so lange, bis ein erneuter eBus-Befehl ihr etwas anderes sagt. Einen Neustart des IPS-Rechners kann die Therme also locker verkraften, da dieser kaum mehr als 2-5 Minuten braucht.

Verwendet man einen digitalen Regler und ein Skript aus IPS gleichzeitig, so bekommt die Therme natürlich abwechselnd unterschiedliche Anforderungen mitgeteilt. Einmal die vom Regler und einmal die vom Skript. Das macht in der Praxis also keinen Sinn, die Solltemperatur springt hin und her.

Eine Möglichkeit, dem digitalen Regler zu sagen was er anfordern soll, gibt es nach derzeitigem Erkenntnisstand nicht.

Denkbar wäre, die Solltemperatur per IPS-Skript zu regeln und einen Watchdog-Baustein zu konstruieren, der z.B. bei ausbleibendem Ping vom Reglerskript irgendwann per Relais den Digitalregler mit dem eBus verbindet.

Ansonsten würde, falls IPS mal ausfällt, der Vorlauf nach 10 Minuten dauerhaft auf der eingestellten Max-Temperatur laufen. Normalerweise ist das kein Problem für die Therme (es sei denn an der Therme ist eine für die Heizungsanlage schädliche Temperatur eingestellt, sollte natürlich nicht so sein!), es ist aber ineffizient. Bei Luft im System kann es u.U. dazu führen dass die Therme sich wegen Überhitzung/Trockenbrand abschaltet.

IPS seine Therme allein regeln zu lassen, sollte man nur machen wenn es erfahrungsgemäß stabil läuft, ansonsten laufen eventuelle Spareffekte ins Leere, wenn die Therme aufgrund von Serverausfällen dauernd auf hoher Leistung läuft.

Also der B5 05 ist bei mir für viele Sinnvolle Sachen gut. Hab da schon einiges entschlüsselt.
Ich versuche das die Tage mal aufzuschreiben bzw. ins Wiki zu bekommen.

WW-Sollwert geht bei mir an die 25 mit Data2c:
00 25 B5 09 05 0E 82 00 xx yy CRC

Hier was geloggtes, hab mir nur bei den ersten die CRC mitgeschrieben. Schreiben hab ich auch getestet.

00 25 B5 09 05 0E 82 00 00 03 D4 —> 48 °C
00 25 B5 09 05 0E 82 00 10 03 E6 —> 49 °C
00 25 B5 09 05 0E 82 00 20 03 ?? —> 50 °C
00 25 B5 09 05 0E 82 00 30 03 ?? —> 51 °C

WW geht dann mit weiteren Parametern z.B. Minimaltemperatur … 0E 83 00 …
Ich suche weiter :wink:

Hallo zusammen!

Ich bin gerade dabei mich in den eBus etwas einzuarbeiten.

Wir werden eine geoTherm VWL 101/3 bekommen.
Ich Frage mich nun, was für ein Stecker benötigt wird um einen eBus Adapter anzuschließen?
Ist das ein RJ11, 4 poliger Stecker?
Was hat dieser für eine Pinbelegung. Den Adapter kann ich mir selber bauen - das ist kein Problem.

Auch habe ich die Möglichkeit mir die dll und exe der Vaillant Software etwas genauer anzusehen :wink:
Es scheint wirklich so zu sein, dass die Software den Hardwareadapter um bestimmte Parameter abfragt bevor man mit dem Loggen loslegen kann.

Das ist der Befehl, der zum Adapter geschickt wird um zu prüfen ob ein Adapter dran ist:

07 02 00 00 00 04 C4

07 total length
02 data length
00 ??
00 ??
00 ??
04 C4 data (vielleicht mit crc)

Wenn jemand einen RS232 Log zwischen dem Adapter und der Software hat würde ich mich über eine PN freuen!

Hallo,

die Belegung des eBus ist recht einfach, es gibt nur zwei Adern. Wenn du einen Buskoppler mit verpolungssicherem Eingang verwendest, brauchst du auf nichts mehr aufzupassen.

Welchen Buskopller möchtest du einsetzen?

Grüße
Andrge

andrge hat recht mit dem was er schreibt. Allerdings nutzt jede Anlage, und ich glaube das war die eigentliche Frage, andere Stecker. Belegt sind aber immer nur plus und minus. Meine Weishaupt hat zwei-polige Stecker mit Schraubklemme dran sowie glaube ich RJ11.

Hier ein VB-Auszug zur Berechnung von CRC, ob es stimmt… keine Ahnung.


Private Sub Command1_Click()
Dim I As Long
Dim crc As Long
Dim buffer(6) As Long
Dim data
Dim a
Dim polynom
buffer(0) = &H10
buffer(1) = &H8
buffer(2) = &HB5
buffer(3) = &H4
buffer(4) = &H1
buffer(5) = &H0
    
crc = 0
For I = 0 To UBound(buffer) - 1
    data = buffer(I)
    For a = 0 To 7
        If crc And &H80& Then
            polynom = &H9B&
        Else
            polynom = &H0&
        End If
        crc = (crc And Not &H80&) * 2
        If data And &H80& Then crc = crc Or 1
        crc = crc Xor polynom
        data = data * 2
    Next a
Next I
Text1 = Hex$(crc)
End Sub

Näheres zu Befehlen gebe ich gerne per Mail (steht auf meiner WWW). Ich habe ein wenig zusammen getragen, mit der Zeit…

Gruß Helmut

Übrigens - für den nächsten Schritt: Ich bekomme darüberhinaus den Eindruck, dass verschiedene Modelle eines Herstellers teilweise unterschiedliche eBus Befehle fordern. ebus.webhop.org hilft mir bei meiner Anlage zumindest nicht mehr weiter. Bin im Kontakt mit einem Franzosen, der mit VRDialog und USBlyzer dem ganzen auf den Grund geht - das hilft enorm. Mehr dazu hier. Heizkurve und WW-SollTemp habe ich schon produktiv im Einsatz, andere Parameter, welche geändert werden können, sind noch Fleissarbeit. Bleiben noch allgemeine Infos (bspw. Druck) und Statistiken (bspw. Brennerstarts).

Wenn man direkt auf den Bus sendet, dann bleibt noch das Timing-Problem. Ich löse das gerade, in dem ich Befehle bei Nichterfolg einfach noch mal sende (mit einer Art Buffer). Der Franzose hingegen geht über die eBus.dll und hat wohl auch erste Erfolge.

Grüsse, Axel

Das CRC für die Kommunikation zwischen vrDialog und dem Adapter ist ein anderes:
http://www.ab-log.ru/smart-house/heating-automation/vaillant-rs232

Algo Quick & Dirty:

function my_crc(data : Array of Byte; param : Integer = 0) : Byte;
var
  i : Integer;
begin
  Result := 0;

  for i := low(data) to high(data) - param do
  begin
    if (Result AND $80) = $80 then
      Result := (Result SHL 1) XOR 25
    else
      Result := Result SHL 1;

    Result := Result XOR data[i];
  end;
end;

Wie gesagt, die Software schickt 07 02 00 00 00 04 C4 zum Adapter.
Das ‚C4‘ ist das CRC, ‚07‘ ist die Datenlänge.

Wenn ich nun simuliert das als Antwort sende fängt vrDialog mit mir zum Reden an:

08 00 00 9E 0A 0C 6B FD

Danach kommen diese Anfragen von der Software:

07 00 00 00 16 00 CC
07 00 00 00 14 00 C8
07 00 00 00 A2 00 BD
07 0A 00 00 00 04 44
07 0A 00 00 00 04 44
07 02 00 00 00 04 C4
15 80 01 00 06 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 56
07 00 00 00 26 0A A6
07 02 00 00 00 04 C4
07 02 00 00 00 04 C4
07 00 00 00 26 0A A6
07 00 01 00 06 0F EB

Wenn ich mir aber auf der russischen Seite den Protokollmitschnitt etwas ansehe, ist es hier sinnlos weiter zu machen.
Den der Adapter packt die richtigen ‚B5‘ eBus Commandos in die richtigen RS232 Commandos.
Oder erkennt jemand irgendwelche eBus Commands in den RS232 Logs?

Mein Gedanke war ja, einen originalen Adapter zu Simulieren und die vrDialog Software nutzen zu können um die Commands vom eBus auszuwerten.

Edit:
Habe auch noch diese Info gefunden:
http://ccc.zerties.org/index.php/Vaillant_X6_Schnittstelle

Kennt jemand die ‚X6‘ Klemme an dem Vaillant Gerät?

Oha…hier tut sich wieder was …

Ein paar Anmerkungen von mir der nicht mit IP-Symcon arbeitet.

Ich habe mit mittlerweile in Perl einen Daemon geschrieben der den eBus ausliest und fertige Telegrammpakete an ein weiteres Perl Script übermittelt. Das klappt schonmal.

Beim Auswerten von selbstsendenden Stautsmeldungen habe ich ein paar entschlüsselt bzw. auf meine WP ummünzen können (VWS82/3).

Ich kann Befehle mit einer Trefferquote von >95% auf den Bus senden (Heizkurve, WW-Soll, Party, Speicherladung, Heizkurve, Energieintegral usw.). Alles was meine Steuerung verstellt kann ich theoretisch auch über einen Rechner ansteuern … hier fehlt nur noch Fleißarbeit.

Das senden läuft bei mir wie folgt:
Es wird auf dem Port gelauscht und auf ein 0xAA gewartet und erst dann gesendet, dann kurze Wartepause (1-2 Sekunden) und der Vorgang wiederholt. Die Wiederholung ist bislang notwendig da es keine Rückmeldung über einen erfolgreichen Empfang gibt :(.

Bei mir ist das ganze systembedingt allerdings in Perl gehalten. Auch für die bekannten bcd,data1b usw. gibt es Subroutinen die mir ein De- und Encodieren ermöglichen. Wenn jetzt jemand irgendwie an die Befehle zum abfragen von Statusmeldungen kommen könnte wäre das genial … die Wärmepumpen sind leider noch nicht so gut dokumentiert (garnicht) wie die Gasthermen. Dann könnte man nach dem Senden einfach den entsprechenden Status auslesen, auswerten und ggf. erneut senden.

Gruß

Jumi2006, besorg dir VRDialog - ist perfekt für das entschlüsseln. Seitdem mache ich Riesenschritte…

Neee ich schmeiß denen die 200€ nicht in den Rachen :wink: ich hab ja nen Adapter.

Leih dir einen von deinem Heizungs-Fachmann. Brauchst ja nur eine kurze Zeit.