Ankündigung

Einklappen
Keine Ankündigung bisher.

Plugin für Stiebel Eltron LWZ 304/404 (CAN Bus)

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

    [Expertenfunktion] Plugin für Stiebel Eltron LWZ 304/404 (CAN Bus)

    Hi!

    Vorsicht: Diese Plugin ist nur etwas für erfahrene Benutzer bzw. Experten.

    Funktion:
    Es stellt eine Bridge zwischen dem CAN Bus der Stiebel Eltron Wärmepumpe und dem KNX/EIB Bus dar.

    Es können Werte regelmäßig von der Wärmepumpe gelesen und am KNX Bus geschrieben werden. Auch können Werte über Gruppenadressen in die Wärmepumpe geschrieben werden.


    Vorraussetzung zur Inbetriebnahme:
    * Kernel Update auf 3.5.1
    * (USB) CAN Adapter mit Linux Treiber
    * iproute2 Package zur Konfiguration

    Eine Beispielkonfiguration für CAN auf dem Wiregate findet sich hier:
    https://knx-user-forum.de/forum/supp...wiregate/30095


    Inbetriebnahme:
    1. Kernel auf 3.5.1 oder neuere Version updaten
    2. Treiber für CAN Adapter einspielen
    3. iproute2 Package in /opt installieren
    4. CAN Adapter einstecken und mit Wärmepumpe verbinden
    5. Start/Stop Script installieren, welches den Adapter auf 20 kBit/sec einstellt.
    6. Perl Modul Convert-Binary-C auf dem Wiregate installieren
    7. Plugin einspielen und konfigurieren


    Beispiel für Start/Stop Script:
    Code:
    #!/bin/sh
    
    ### BEGIN INIT INFO
    # Provides:          can
    # Required-Start:    $local_fs
    # Required-Stop:
    # Default-Start:     S
    # Default-Stop:      0 6
    # Short-Description: can
    # Description:       Configure CAN devices
    ### END INIT INFO
    
    . /lib/lsb/init-functions
    
    PATH=/bin:/usr/bin:/sbin:/usr/sbin
    PROGRAM=/opt/iproute2/ip/ip
    
    test -x $PROGRAM || exit 0
    
    case "$1" in
      start)
            log_begin_msg "Startup can0"
            $PROGRAM link set can0 up type can bitrate 20000 listen-only off
            log_end_msg $?
            ;;
      stop)
            log_begin_msg "Shutdown can0"
            $PROGRAM link set can0 down
            log_end_msg $?
            ;;
      force-reload|restart)
            $0 stop
            $0 start
            ;;
      *)
            log_success_msg "Usage: /etc/init.d/can {start|stop|restart|force-reload}"
            exit 1
    esac
    
    exit 0
    Source:
    Open Automation / Code / [r2229] /wiregate/plugin/generic/StiebelEltron-LWZ-x04.pl

    Konfiguration:
    Open Automation / Code / [r2229] /wiregate/plugin/generic/conf.d/StiebelEltron-LWZ-x04.conf

    #2
    Hallo Bernd,

    das klingt wirklich hervorragend! Kannst du etwas dazu sagen, ob das Plugin auch mit den Sole/Wasser-Wärmepumpe WPC XX (cool) funktioniert?

    VG Thomas

    Kommentar


      #3
      Leider kann ich zu dieser Wärmepumpe nichts sagen. Meine Erkenntnisse beruhen auf Reverse Engineering.

      Ich nehme aber stark an, daß es beim Protokoll Ähnlichkeiten bzw. Gemeinsamkeiten gibt. Vor allem das ähnliche Display (Fernsteuerung) der beiden Modelle lässt darauf schließen. Das aktuelle Plugin würde ich aber nicht einsetzen.

      Aber ich kann dir wahrscheinlich helfen das CAN Protokoll zu verstehen und das Plugin entsprechend erweitern. Falls du dich traust und genug Zeit aufbringen kannst, findest du im Attachment meine Erkenntnisse über das Protokoll.

      Um die CAN Nachrichten mitzulesen kannst du das Perl Tool canbus-dump.pl in der Datei can.zip verwenden. Damit es funktioniert muß du vorher die Schritte 1-6 der oben beschriebenen Inbetriebnahme ausführen.

      Damit Elektrisch nichts (oder nur wenig) passieren kann empfehle ich einen CAN Adapter mit galvanischer Trennung einzusetzen (z. B. 8devices USB2CAN Adapter: EXP TECH).

      Die elektrische Verkabelung kann man selbst mit ein paar 9 pol. D-SUB Buchsen bzw. Stecker löten. CANopen-Stecker 9-Pin D-Sub ? CANopen-Lift

      Optional kann diese aber fast fertig bei Conrad, etc. kaufen:
      EPIC® Data CAN BUS Steckverbinder mit Schraubanschluss EPIC® ED-CAN-90-PG LappKabel Inhalt: 1 St. im Conrad Online Shop | 741670

      Ein Abschlusswiderstand wird normalerweise nicht benötigt.
      Angehängte Dateien

      Kommentar


        #4
        Ich traue mich ganz bestimmt, aber tendenziell eher nächstes Jahr! Im Moment hat der Bau erstmal höhere Priorität.
        Aber wenn dein Angebot dann noch steht, gerne!

        Vg Thomas

        Kommentar


          #5
          Sofern es meine Zeit zulässt steht mein Angebot auch noch nächstes Jahr. Vielleicht gibt es bis dahin auch ein offizielles Kernelupdate (am besten 3.10 oder später), damit das Setup mit dem CAN Bus einfacher wird.

          Kommentar


            #6
            Zusammenführung von verschiedenen Aktivitäten

            Hallo Krumboeck,
            bin gerade auf Deinen Thread gestoßen.
            Ich suche schon länger nach einer Lösung zur Anbindung der LWZ, da die von SE angebotene Funktionalität nicht wirklich berauschend ist.

            Daher habe ich auch bereits verschiedene Aktivitäten inder Richtung gefunden, vielleicht schaffen wir es ja einige davon zusammenzufassen und was ordentliches daraus zu machen:

            1. Anbindung direkt an den CAN Bus:
            2. Anbindung über ISG:
              1. http://energy4power.de/
              2. https://knx-user-forum.de/knx-eib-fo...ation-isg.html
            Gefühlt gibt es auch einige Interessenten an einer solchen Lösung...

            Wahrscheinlich gibt es da ja noch mehr .....
            Gruß
            Georg

            Kommentar


              #7
              Zitat von gekraft Beitrag anzeigen
              Hallo Krumboeck,
              bin gerade auf Deinen Thread gestoßen.
              Ich suche schon länger nach einer Lösung zur Anbindung der LWZ, da die von SE angebotene Funktionalität nicht wirklich berauschend ist.

              Daher habe ich auch bereits verschiedene Aktivitäten inder Richtung gefunden, vielleicht schaffen wir es ja einige davon zusammenzufassen und was ordentliches daraus zu machen:
              Erstmals danke für die Zusammenfassung. Meine letzte Erhebung liegt schon länger zurück und hatte weniger Treffer.

              Was stellst du dir unter "was Ordentliches daraus machen" vor? Was gefällt dir an den aktuellen Implementierungen nicht? Wie sollte es besser aussehen?


              Schaut nicht nach CAN aus. Das ist meiner Meinung nach die USB Schnittstelle in der Wärmepumpe. Diese wird normalerweise von Servicetechnikern etc. genutzt.

              Davon kann ich nur abraten, da Teile der Wärmepumpe geöffnet werden müssen. Diese Änderung ist erstens sofort erkennbar, führt zu einer höheren Geräuschkulisse und birgt sowohl die Gefahr der Zerstörung als auch für Leib und Leben (bei Fehlgriffen, etc.). --> dies möchte ich keinem Benutzer zumuten.


              Schaut sehr ähnlich zu meinen Bestrebungen aus, jedoch wird hier noch nicht das CAN Framework des Linux Kernels verwendet. Dies hat zwar den Vorteil, daß kein Kernelupdate benötigt wird, jedoch ist man beim CAN Adapter auf das Lawicel Protokoll gebunden ist. Der hier verwendete CAN Adapter ist in dem Fall sogar ein Bastelsystem. Kompatible Adapter sollte es für ca. 99 EUR geben.

              Besser ist die Verwendung von SocketCAN und einer galvanischen Trennung ist zumindest empfehlenswert.

              Die im Plugin verwendeten Parameter (ca. 13 Stück) decken sich zum Teil mit den von mir festgestellten. Schaut also sehr nach einem identischen Protokoll aus. Ich habe bisher ca. 150 Parameter ermitteln können.


              Habe nur mal schnell drübergeschaut. Hier wird zwar über CAN und ein paar Bastelein gesprochen, jedoch kaum etwas Konkretes. Von einer ersten Implementierung scheint man hier noch einige Wochen bzw. Monate entfernt.

              Kann mich auch täuschen. Wie gesagt habe ich nur mal kurz quergelesen.


              Ok, jemand scheint irgendwie Zugriff auf das ISG zu haben (HTTP?). Im Augenblick kann er ein paar Werte auslesen und hat eine Webseite dazu gebastelt, jedoch hat er keine Lösung die er publiziert. Es ist ungewiss ob es jemals eine publizierte Lösung gibt und wie diese aussieht.

              Dazu kommt ein minmaler Einstiegspreis von ca. 400 EUR.

              Scheinbar gibt es jetzt doch wieder eine KNX Erweiterung für die Integralgeräte. Damals bekam ich noch als Antwort: "Wurde aus dem Handel genommen, da einige Kunden damit Schaden an der WP angerichtet haben."

              Der Einstiegspreis von mind. 1100 EUR (ISG ca. 400 EUR + KNX Erweiterung ca. 400 EUR + KNX Router ca. 300 EUR) ist aber auch nicht ohne. Noch dazu gibt es diverse kleinere Probleme mit der Lösung.

              Schaut aus als hätte Stiebel Eltron nun endlich reagiert und eine KNX Schnittstelle zur Verfügung gestellt. Vorrausgesetzt die Schnittstelle liefert alle wichtigen Daten und die kleinen Probleme werden in Zukunft behoben, so ist dies die empfehlenswerte Vorgehensweise.


              Nun zu meiner eigenen Lösung:
              Die von mir angebotene Lösung hat den Nachteil eines Kernel Updates beim Wiregate. Weiters kann ich nichts zu Beeinträchtigungen der Gewährleistung seitens SE sagen.

              Der Vorteil meiner Lösung liegt aber eindeutig in den Kosten, der Kompatibelität zu verschiedenen CAN Adaptern und der großen Anzahl an lesenden und schreibenden Parametern (welche ich dokumentiert und implementiert habe).

              ------------------------

              Ich könnte mir durchaus vorstellen die Parameter bzw. das Plugin für die Tecalor zu erweitern. Bzw. kann es eventuell auch ganz ohne Änderung eingesetzt werden.

              Mit Ausnahme der Lösung von Stiebel Eltron, sehe ich sonst keine Lösung welche halbwegs sicher bzw. benutzbar wäre.

              Kommentar


                #8
                Zitat von krumboeck Beitrag anzeigen
                Davon kann ich nur abraten, da Teile der Wärmepumpe geöffnet werden müssen. Diese Änderung ist erstens sofort erkennbar, führt zu einer höheren Geräuschkulisse und birgt sowohl die Gefahr der Zerstörung als auch für Leib und Leben (bei Fehlgriffen, etc.). --> dies möchte ich keinem Benutzer zumuten.
                Stime ich Dir zu, schon alleine aus Gewähleistungssicht.
                Zitat von krumboeck Beitrag anzeigen
                Schaut sehr ähnlich zu meinen Bestrebungen aus, jedoch wird hier noch nicht das CAN Framework des Linux Kernels verwendet. Dies hat zwar den Vorteil, daß kein Kernelupdate benötigt wird, jedoch ist man beim CAN Adapter auf das Lawicel Protokoll gebunden ist. Der hier verwendete CAN Adapter ist in dem Fall sogar ein Bastelsystem. Kompatible Adapter sollte es für ca. 99 EUR geben.

                Besser ist die Verwendung von SocketCAN und einer galvanischen Trennung ist zumindest empfehlenswert.

                Die im Plugin verwendeten Parameter (ca. 13 Stück) decken sich zum Teil mit den von mir festgestellten. Schaut also sehr nach einem identischen Protokoll aus. Ich habe bisher ca. 150 Parameter ermitteln können.




                Habe nur mal schnell drübergeschaut. Hier wird zwar über CAN und ein paar Bastelein gesprochen, jedoch kaum etwas Konkretes. Von einer ersten Implementierung scheint man hier noch einige Wochen bzw. Monate entfernt.

                Kann mich auch täuschen. Wie gesagt habe ich nur mal kurz quergelesen.




                Ok, jemand scheint irgendwie Zugriff auf das ISG zu haben (HTTP?). Im Augenblick kann er ein paar Werte auslesen und hat eine Webseite dazu gebastelt, jedoch hat er keine Lösung die er publiziert. Es ist ungewiss ob es jemals eine publizierte Lösung gibt und wie diese aussieht.
                sieht nach loggen der über das ISG ausgelesenenen Daten aus. Ist zumindest schon mal auf der Datenseite interessant; und offensichtlich ohne eingriff in die HW.
                Zitat von krumboeck Beitrag anzeigen

                Dazu kommt ein minmaler Einstiegspreis von ca. 400 EUR.
                FAck
                Zitat von krumboeck Beitrag anzeigen


                Scheinbar gibt es jetzt doch wieder eine KNX Erweiterung für die Integralgeräte. Damals bekam ich noch als Antwort: "Wurde aus dem Handel genommen, da einige Kunden damit Schaden an der WP angerichtet haben."
                Definitiv ja, SE hat für sein ISG die KNX Erweiterung mittlerweile im Angebot.
                Zitat von krumboeck Beitrag anzeigen

                Der Einstiegspreis von mind. 1100 EUR (ISG ca. 400 EUR + KNX Erweiterung ca. 400 EUR + KNX Router ca. 300 EUR) ist aber auch nicht ohne. Noch dazu gibt es diverse kleinere Probleme mit der Lösung.
                FAck
                Zitat von krumboeck Beitrag anzeigen

                Schaut aus als hätte Stiebel Eltron nun endlich reagiert und eine KNX Schnittstelle zur Verfügung gestellt. Vorrausgesetzt die Schnittstelle liefert alle wichtigen Daten und die kleinen Probleme werden in Zukunft behoben, so ist dies die empfehlenswerte Vorgehensweise.
                Ich habe mir die SE KNX Anbindung mal angeschaut, leider lässt sich darüber nicht viel machen im Bezug auf Eingaben und Steuer, hauptsächlich nur lessen. Dazu ist es dann schon viel Geld.....
                Zitat von krumboeck Beitrag anzeigen


                Nun zu meiner eigenen Lösung:
                Die von mir angebotene Lösung hat den Nachteil eines Kernel Updates beim Wiregate.
                HAst Du mal geschaut, ob das ins Smarthome.py als plugin realisierbar ware?
                Zitat von krumboeck Beitrag anzeigen
                Weiters kann ich nichts zu Beeinträchtigungen der Gewährleistung seitens SE sagen.

                Der Vorteil meiner Lösung liegt aber eindeutig in den Kosten, der Kompatibelität zu verschiedenen CAN Adaptern und der großen Anzahl an lesenden und schreibenden Parametern (welche ich dokumentiert und implementiert habe).

                ------------------------

                Ich könnte mir durchaus vorstellen die Parameter bzw. das Plugin für die Tecalor zu erweitern. Bzw. kann es eventuell auch ganz ohne Änderung eingesetzt werden.
                Wie könnte man Dich dazu motivieren vlt. sogar auf Basis des Smarthome.py?
                Zitat von krumboeck Beitrag anzeigen

                Mit Ausnahme der Lösung von Stiebel Eltron, sehe ich sonst keine Lösung welche halbwegs sicher bzw. benutzbar wäre.
                Gruß
                Georg

                Kommentar


                  #9
                  Sorry, aber ich lese mich jetzt nicht mal schnell in SmartHome.py ein und lerne noch kurz Python um ein weiteres Plugin zu betreuen. Zumindest nicht ohne entsprechende Bezahlung. Und wir reden hier mindestens von einigen Tagen wenn nicht sogar Wochen.

                  Aber ich helfe gerne bei der Umsetzung mit meinem Fachwissen. Falls sich also Pluginschreiber für andere Systeme finden bin ich gerne bereit beim Thema CAN Bus bzw. Protokoll für die Stiebel Eltron (und ähnliches Systemen) zu helfen.

                  Kommentar


                    #10
                    Zitat von krumboeck Beitrag anzeigen
                    Sorry, aber ich lese mich jetzt nicht mal schnell in SmartHome.py ein und lerne noch kurz Python um ein weiteres Plugin zu betreuen. Zumindest nicht ohne entsprechende Bezahlung. Und wir reden hier mindestens von einigen Tagen wenn nicht sogar Wochen.

                    Aber ich helfe gerne bei der Umsetzung mit meinem Fachwissen. Falls sich also Pluginschreiber für andere Systeme finden bin ich gerne bereit beim Thema CAN Bus bzw. Protokoll für die Stiebel Eltron (und ähnliches Systemen) zu helfen.
                    Hallo Krumboeck,
                    verlangt ja auch keiner, hätte ja sein können, dass Du dir das schon einmal angeschaut hast. ich werde mal versuchen in der Smarthome.py Gemeinde jemanden zu finden, der mit Deinen Hinweisen und seinen Kenntnisen, da etwas zu sagen kann.

                    In jedem Fall möchte ich mich schon mal für Dein Unterstützungsangebot bedanken!


                    Ich persönlich ware durchaus auch bereit enen finanziellen Beitrag zu leisten, vielleicht der ein oder andere auch, dazu müssten alle allerdings wissen, worauf sie sich einlassen.
                    Bei genügend Resonanz würde sich ja vlt. sogar eine Produktentwicklung lohnen, aber das ist dann halt noch einmal eine andere Nummer.
                    Gruß
                    Georg

                    Kommentar


                      #11
                      Ein Pluginschreiber aus der SmartHome.py Gemeinde ist hier sicher nicht verkehrt. Am besten jemand mit einem CAN Adapter (mit SocketCAN Treiber).

                      Scheinbar gibt es bereits Python Libraries für CAN (python-can — python-can 1.4 documentation). Da ich keine Ahnung von SmartHome.py habe, kann ich leider nicht sagen, ob oder wie sich diese einbinden lassen.

                      Auch beim Wirgate war dieser Part nicht ganz trivial.

                      Wenn die KNX Anbindung ebenfalls gut funktioniert, sollte der Rest ziemlich problemlos sein.

                      Kommentar


                        #12
                        Zitat von krumboeck Beitrag anzeigen
                        Ein Pluginschreiber aus der SmartHome.py Gemeinde ist hier sicher nicht verkehrt. Am besten jemand mit einem CAN Adapter (mit SocketCAN Treiber).

                        Scheinbar gibt es bereits Python Libraries für CAN (python-can — python-can 1.4 documentation). Da ich keine Ahnung von SmartHome.py habe, kann ich leider nicht sagen, ob oder wie sich diese einbinden lassen.

                        Auch beim Wirgate war dieser Part nicht ganz trivial.

                        Wenn die KNX Anbindung ebenfalls gut funktioniert, sollte der Rest ziemlich problemlos sein.
                        wie gesagt, mal sehen, ob ich jemanden finde.

                        Die KNX Anbindung läuft sauber und auch eine 1-Wire-Pluginn ist bereits vorhanden.
                        Gruß
                        Georg

                        Kommentar


                          #13
                          Hallo Krumboeck,

                          Dein can-protokoll sieht toll aus. Ich bin auf ein ähnliches Resultat gekommen. Wenn Du an mehr "Variablen" (in Deiner Beschreibung beim Write und Request) interessiert bist, dann schau mal unter

                          http://juerg5524.ch

                          in der Datei ElsterTable.inc nach.

                          Viele Grüsse
                          Jürg

                          Kommentar


                            #14
                            Danke für die Info!

                            Die Variablen interessieren mich sehr. Aber ich möchte nur Kennnisse in das Dokument aufnehmen, welche "legal" erworben wurden:
                            Offizielle Dokumentationen, Reverse Engineering, ...

                            Habe demnach einige Fragen:
                            1. Woher stammen die Daten?
                            2. Wenn von dir selbst, habe ich die Erlaubnis die Parameter in mein Dokument einzupflegen (natürlich mit Nennung deines Nicknames bzw. Real Names)?
                            3. Welche Geräte deckt das Protokoll ab?
                            4. Welche Parameter werden von welchem Gerät unterstützt?


                            Meine eigenen Daten basieren auf Reverse Engineering mit einer Stiebel-Eltron LWZ 304 SOL.

                            Kommentar


                              #15
                              Die Elster-Tabelle stammt aus der CommunicationElsterDeclaration.dll. Sie ist Teil der ComfortSoft, welche legal vom Internet heruntergeladen werden kann. Die von mir erstellte Elster-Tabelle enthält noch Fehler. Es gibt zum Teil Verschiebungen, d.h. der Elster-Index muss um eine Zeile zum Text verschoben werden. - Ich arbeite daran.

                              Es handelt sich also auch um Reverse Engineering. Du kannst mit der Elster-Tabelle machen, was Du willst.

                              Welche Parameter von welchem Gerät unterstützt werden, kann ich nicht allgemein sagen. Bei meiner WPL33 steht die Zuordnung in "scan_data.inc" (can_progs.zip). Das lässt sich aber zu jeder WP einfach ermitteln. ComfortSoft kann ich mit einer WP-Simulation verwenden. Das basiert auf den Werten von "scan_data.inc".

                              Mittels WP-Simulation kann ich die Elster-Tabelle fortlaufend verbessern.

                              Deine Frage "Welche Geräte deckt das Protokoll ab?" verstehe ich nicht. Ich gehe davon aus, dass es alle Geräte abdeckt. Bei mir gibt es 9 verschiedene CAN-IDs: 180, 301, 302, 303, 480, 500, 601, 602, 603 (und die 000 für Software-Reset usw.).

                              Gruss
                              Jürg

                              Kommentar

                              Lädt...
                              X