Ankündigung

Einklappen
Keine Ankündigung bisher.

Vaillant X6-Schnittstelle - RPi - Homeserver, Wiregate etc

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Vaillant X6-Schnittstelle - RPi - Homeserver, Wiregate etc

    Hallo liebe Forumsmitglieder,

    ich habe letztens mit der X6-Schnittstelle von Vaillant gespielt.

    Die Heizung: VCW 195/2 c-e besitzt keinen eBus-Anschluss, so habe ich mich mit der X6-Schnittstelle versucht.

    Die Anbindung:

    Ich habe jetzt einfach riskiert und die X6-Schnittstelle direkt mit kabel an GPIO von Raspberry angeschlossen (Raspi verfügt über RS232 TTL) und es funktioniert. Ich weiss, ich sollte mindestens die Widerstände zwischen einlöten wegen 5V-3.3V (allerdings habe keine Ahnung, ob die X6 mit 5V arbeitet), funktioniert aber trotztdem seit ca 2 Wochen.

    Ich lese die X6 über einen primitiven Python-Script, schreibe in web-Verzeichniss und lese mit Homeserver per Web-Abfrage ab.

    Vieles habe ich schon "entschlüsselt" (Temperaturen, div. Status-Meldungen), allerdings noch weit entfernt von der Vollständigkeit.

    Heute habe ich irgendwie auch hingekriegt den COM-port am eine VM-XP Installation zu schicken und auch den Vaillant vrDialog dazu zu bewegen diese Schnittstelle zu nutzen.
    Dies habe ich mit ser2net (RPi) und hub4com/com0com (XP) hingekriegt. So konnte ich gerade auch die Kommunikation der vrDialog aufzeichnen (noch nicht ausgewertet).

    Die Kommunikation wird in der der Wiki Vaillant X6 Schnittstelle ? zerties.org beschrieben,
    ich habe für Python die crc-Prüfung so geschrieben:

    Code:
    def crc(s):
        crc = ord(s[0])
        for i in range(len(s) - 1):
            if crc & 128:
                crc = (crc << 1 | 1) & 255 ^ 24
            else:
                crc = (crc << 1 )
            crc = crc ^ ord(s[i+1])
        return chr(crc)
    Meine Farge ist;

    wäre noch jemand am Testen/Weiterentwicklung/Spielen interessiert?

    Ich finde den Einsatz von RPi sehr von Vorteil, da auf diese Weise die die Anbindung Hardwarekosten unter 50 € realisierbar wäre ( zu +200 € bei Vaillant Original-Kabel/Software), abgesehen davon, dass die ältere Heizungen über keine eBus verfügen.

    Ich habe gerade ein Projekt auf github angelegt, werde da meine Scripte bei Interesse posten:

    https://github.com/damianmichna/x6opend.git

    Gruss

    Damian

    #2
    Vaillant X6-Schnittstelle

    Großartig,

    noch mehr Leute mit alter Vaillant X6-Schnittstelle.
    Wir haben ein Ferienhaus an der Ostsee und ich bin schon seit Jahren am Grübeln, wie ich von Dresden aus die Heizung Vaillant ecoCOMPACT VSC 126 mit möglichst geringen Kosten fernsteuern kann.

    Bisher hängt dort ein Vaillant vrnetDialog 840 Analogmodem dran.
    Daher mehrere Ärgernisse:
    1. immer, wenn man sich einwählt (über Vaillant-Server), kleine Gebühren an Vaillant fällig
    2. Analoganschlüsse werden auch bei der Telekom wohl in den nächsten Jahren auf IP umgestellt -> noch immer kein IP-Modem von Vaillant für diese alten Heizungen in Sicht
    3. Fehlerbenachrichtigung klappte bisher nicht
    4. monatliche Telekom-Analoganschlusskosten entstehen nur noch wegen diesem alten Vaillant-Modem; UMTS-Stick an Fritzbox koexistiert dort zur spontanen Internetanbindung

    Ich bin Sysadmin, habe mich schon mit mehreren Makrosprachen beschäftigt, aber nie wirklich lange, sondern immer nur projektgebunden. Mit Python habe ich noch nicht gearbeitet.

    Ich wäre auf jeden Fall an einem Gedankenaustausch zur Ansteuerung der X6-Schnittstelle interessiert.

    Vor zwei Jahren hatte ich schonmal recherchiert und diesen Beitrag verfasst: [Problem] Vaillant Gastherme über Fritzbox 7270 ansteuern - möglich?
    Darin findet sich auch folgender Link zu einer polnischen Bastellösung: Vaillant vrDIALOG kabel RS232 - protokó? Vaillant - elektroda.pl

    Erstmal müsste ich die Kabelverbindung hinbekommen und dann habe ich noch das Problem, dass ich meistens nicht vor Ort bin.
    Vielleicht klappt's in zwei Wochen - da wäre ich oben und könnte meinen Raspberry anschließen.

    Könntest du mir eine Liste zusammenstellen, mit den Bauteilen, die du zum Anschluss Raspberry-X6 gekauft hast? Anbieter?
    Wieviel Zeit brauchtest du zum Kabel basteln + Software anpassen?
    Ich habe nur ca. 4 Tage in Ahrenshoop.

    Danke und Grüße aus Dresden

    Victor

    Kommentar


      #3
      Hallo KNX7,

      theoretisch von der Hardware braucht man nur einen RPI + Netzteil, evtl. WLAN-Stick,
      falls man kein Netzwerkkabel vor Ort hat und ein RJ32-Stecker.

      Wir haben es mal zum Testen angeschlossen und es funktionierte ohne Spannungswandler (direkt an die RPI GPIO Pins angeschlossen), hier besteht natürlich die Gefahr, dass der RPI beschädigt wird, da es mit 3,3V und nicht mit 5V arbeitet (was vermutlich die Heizung liefert (nicht geprüft).

      Mangels Zeit habe ich nicht weiter daran gearbeitet, habe noch einen Kunden,
      der gleiche Therme besitzt, so dass ich vielleicht in der nächsten Zeit wieder daran gehe.

      Bitte PN mit Deiner email, so kann ich Dir die Sachen zuschicken, die ich rausgefunden habe.

      Kommentar


        #4
        Hallo, zusammen der Beitrag ist ja schon lange nicht mehr erweitert worden.
        Ich würde gerne die X6 Schnittstelle von meiner Vaillant Heizung mit einer Wago verbinden.
        Als Adapter für die X6 Schnittstelle habe ich einen XPort installiert.
        Die Kommunikation funktioniert, aber ich bekomme die CRC Prüfung in ST einfach nicht hin.
        Hat vielleicht von euch jemand einen Lösungsansatz für mich?

        Ich bin für jede Hilfe dankbar!!!

        Gruß Christian

        Kommentar


          #5
          Hallo Christian,

          ich weiß nicht, ob das noch aktuell ist. Probier' mal das:

          Funktion mit dem Namen fcVaillantChecksum erstellen, Rückgabewert BYTE.

          Deklarationsteil:

          Code:
          FUNCTION fcVaillantChecksum : BYTE
          VAR_INPUT
          pab:POINTER TO BYTE;
          END_VAR
          VAR
          iNrBytes:INT;
          diAdr:POINTER TO BYTE;
          i:INT;
          END_VAR
          Codeteil:

          Code:
          fcVaillantChecksum := 0;
          iNrBytes :=BYTE_TO_INT(pab^)-1;
          
          FOR i:=0 TO iNrBytes -1 DO
          
          IF (fcVaillantChecksum AND 16#80) = 16#80 THEN
          fcVaillantChecksum:=SHL(fcVaillantChecksum,1) OR 1;
          fcVaillantChecksum:=fcVaillantChecksum XOR 16#18;
          ELSE
          fcVaillantChecksum:=SHL(fcVaillantChecksum,1);
          END_IF;
          diAdr:=pab;
          diAdr := diAdr +INT_TO_DINT(i);
          fcVaillantChecksum:=fcVaillantChecksum XOR diAdr^;
          END_FOR

          Die Anforderung muss in einem Array of Byte stehen, gefüllt mit allem bis auf CRC. Die Funktion bekommt die Adresse des ersten Bytes des Arrays übergeben und liefert dann das CRC:

          Code:
          abSend[X]:=fcVaillantChecksum(ADR(abSend[0]));

          Kommentar

          Lädt...
          X