Stiebel Eltron Wärmepumpe mit CAN anbinden

Begonnen von Radiator, 29 März 2015, 18:54:55

Vorheriges Thema - Nächstes Thema

hajo23

Hallo Jürg,
ich setze Hartmuts Modul seit 3 Monaten ein. Ich habe es für meine WPW angepasst, es um eine Zeitsynchronisation erweitert und überwache vor allem die Kommunikation zwischen WPM und den WPn, weil meine Anlage oft gestört ist. Zur Zeit polle ich noch mit diversen DOIF-Definitionen.

Beim Start des WPM wird nach dem PC (680) gesucht. Weißt Du vielleicht, wie man den PC beim WPM anmeldet und ob der WPM dann selbstständig Statusmeldungen sendet? In diesem Fall könnte man sich ggf. das Pollen sparen.

Mich würde auch interessieren, was genau der "System_Reset" macht.

Vielen Dank an Hartmut und Dich für die Unterstützung!
Gruß, Hajo

Radiator

Hallo Hajo,

ich musste schon ein paarmal nach einem Abtaufehler die Pumpe per WP Reset manuell zurücksetzen, und hatte gehofft das auch durch FHEM erledigen lassen zu können.
Den Code hatte ich irgendwo gefunden, aber funktioniert hat er nicht. Da ich jetzt aber den Grund für die Abtaufehler gefunden hatte, habe ich das nicht weiterverfolgt.
Der hydraulische Abgleich war nicht soo toll gewesen, und kombiniert mit einer PWM Regelung der Fußbodenheizung war dann eben ab und zu der Mindestvolumenstrom beim Abtauen unterschritten.

Mittlerweile läuft die Heizung als reine rücklaufgeführte Heizung ohne Vorlaufanteil und ohne PWM. Der hydraulische Abgleich war etwas zeitaufwändig, aber hat sich gelohnt. Habe seit dem keinen Abtaufehler mehr gehabt.

Zu den selbstständigen Statusmeldungen kannst Du ja versuchen die Abfrage in READ: if (($TargetID eq "D200")and ($Elster eq "FA"))  zu ändern in :if ($Elster eq "FA") .
Dann verarbeitet das Modul auch die Kommunikation zwischen anderen Modulen, weil es ja nicht mehr Telegramme, die an andere Module gehen, fallen lässt. Ob bei Deiner WPW da etwas passendes dabei ist, musst Du einfach versuchen. Bei mir war das nicht so richtig ergiebig. Unbekannte Werte erscheinen dann als Reading "RAW_XXXX", wobei XXXX für den Elstercode steht. Wenn Du die Abfrage auf "FA" weglässt, dann bekommst Du auch die Systemmeldungen zu sehen, was immer diese auch bedeuten mögen. Die solltest Du dann aber irgendwie extra abfangen.

Hartmut

hajo23

Hallo Hartmut,

ein WP Reset könnte ich sicher gut gebrauchen.

Bei meiner Anlage liegt das Problem an der Kommunikation der Wärmepumpen mit dem Manager. In unregelmäßigen Abständen bricht sie plötzlich ab. Dann verschwinden die Pumpen aus der Konfiguration des WPM und die Anlage steht. Fehlermeldungen gibt es keine.

Seit einigen Monaten hatte ich auch Probleme auf dem Bus festgestellt. Inzwischen habe ich einen Abschlußwiderstand nachgerüstet. Die Fehler auf dem Bus sind nun scheinbar verschwunden, die sporadischen Ausfälle leider nicht.

Fhem leistet beim Überwachen gute Dienste. Die wichtigen Telegramme kommen ohne Erweiterungstelegramm (FA).  Von 480 "FFFF" an 500 und 501 (A000/A001). Als Antwort kommt ein "FFFF" von 500/501 an 480 (9200) zurück. Der Takt zur WP1 (10s) ist dabei höher als zur WP2 (300s).

Gruß,
Hajo

Radiator

Hallo Hajo,
das ist mal ein guter Hinweis. Da ich ausschliesslich mit Erweiterungstelegrammen arbeite, habe ich kurze Telegramme gar nicht beobachtet. Da kommt Forschungsarbeit auf mich zu.

viele Grüsse,
Hartmut

juerg5524

Zitat von: hajo23 am 27 September 2015, 16:08:16
Beim Start des WPM wird nach dem PC (680) gesucht. Weißt Du vielleicht, wie man den PC beim WPM anmeldet und ob der WPM dann selbstständig Statusmeldungen sendet? In diesem Fall könnte man sich ggf. das Pollen sparen.

Mich würde auch interessieren, was genau der "System_Reset" macht.

Hallo Hajo, hallo Hartmut,

auf diese Fragen habe ich auch keine Antwort. An der Adresse 680 ist entweder das optische  Interface oder das ISG angeschlossen. Beim optischen Interface macht es keinen Sinn, wenn der WPM Statusmeldungen via CAN-Bus sendet. Beim ISG macht das Sinn, aber, ob die bei älteren Geräten an das ISG gedacht haben, bezweifle ich.

Beim System-Reset habe ich die Vermutung, dass ältere WPMs dies nicht unterstützen und man deshalb für ein ISG die Software nachrüsten muss. Dazu das Zitat von chriss1980:

http://knx-user-forum.de/forum/öffentlicher-bereich/knx-eib-forum/code-schnipsel/26505-anbindung-tecalor-ttw13/page7

Wie gesagt, werde ich versuchen mein Perl-Modul einzubringen. Aber momentan erhalte ich auf "define Stiebel WPL15 com1" als Antwort "Cannot load modul WPL15". So wie es scheint, habe ich einen langen Weg vor mir!

Viele Grüsse
Jürg



Radiator

Hallo Jürg,

ich habe FHEM unter Ubuntu laufen, und habe die Win Version nicht getestet.
Also flugs ActivePerl auf den Rechner gezogen, fhem installiert, und ausprobiert. Mein Laptop hat ein Win7 32 Bit System.

Während ich schön über CS_Brücke mit der Comfortsoft kommunizieren kann, bekomme ich unter FHEM den gleichen Fehler wie Du.
Auf einen virtuellen Port (mit com0com angelegt) verbindet sich FHEM aber.

Meine Vermutung ist, dass Perl da nicht mit dem USB/Serial Treiber klar kommt. Habe den schon mal auf die neueste Version upogedated, aber das hilft auch nichts.

Hatte auch versucht FHEM als Admin zu starten, denn Portmon hatte das gleiche Problem, bin da aber noch nicht weitergekommen.

Gruß
Hartmut, der die nächsten zwei Wochen offline ist



juerg5524

Hallo Hartmut,

danke für Deine Unterstützung. Ich kann nun Dein Modul laden. Es waren einfache Anfänger-Fehler (habe "//" als Kommentar-Markierung verwendet und musste das Modul "win32-serialport" nachladen). Die USBtin-Simulation funktioniert noch nicht ganz richtig. Das sollte aber kein grosses Problem darstellen.

Viele Grüsse
Jürg

juerg5524

Das WPL15-Modul läuft bei mir mit der USBtin-Simulation. Ich verwende dazu die folgende Anordnung:

  fhem (WPL15) <=> com0com <=> USBtin-Simulation <=> CS_Bruecke <=> com0com> <=> ComfortSoft

Damit greife ich vom fhem und der ComfortSoft auf dieselben Simulationsdaten zu.

Danach habe ich WPL15 an meine eigenen C++-Treiber angepasst. Das Resultat liegt in "Elster.pm" vor (siehe Beilage). Zuerst verwendete ich eine Simulation in einem virtuellen Windows XP (USBtin-Simulation). Auf meinem Raspberry mit der echten WP (WPL33 und SocketCAN) funktioniert es auch. (Mit funktionieren meine ich: einzelne gets und in der Simulation auch sets absetzen.)

Jetzt sollte ich nur noch fhem verstehen, damit ich eine sinnvolle Darstellung hinkriege!

Viele Grüsse
Jürg

Radiator

Hatte etwas Zeit, und habe ein paar Ergänzungen in das Modul eingebaut.
Für die wichtigen Parameter habe ich interne Timer erstellt deren Intervallzeiten über Attribute eingestellt werden können.
Danke vielmals an Immi! Ich habe hierzu sein THZ Modul geplündert.

Da meine Fußbodenheizung nun als reine rücklaufgesteuerte Heizung arbeitet, kann die Stromsparfunktion der WPL für die Heizkreispumpe nicht verwendet werden. Dies schaltet die Pumpe in Intervallen ab, ich brauche aber kontinuierlich Fluß, da die Regelung ja auf der Rücklauftemperatur aufsetzt. Deshalb habe ich eine Funktion ergänzt, bei der die Leistung der Umwälzpumpe reduziert wird, wenn die WP nicht heizt. Auch hier kann die Funktion über Attribute eingestellt werden.

Grüße
Hartmut

immi

still too many comments/variables in a strange mixture of engl./italian
:)
reuse what you need
well done

Radiator

Hi Immi,
No worries, the code was easy to read, and I learned a litte bit Italien 8)
Thanks for your work, I just needed to copy and paste.
Hartmut

mv

Hallo zusammen
Ich würde gerne von FHEM via CAN Bus auf meine Stiebel Eltron WP zugreifen.
Was ich habe:
Raspberry Pi model B
pican board
Stiebeleltron WPM II
Kann mir jemand einen Step by Step Guide zur Verfügung stellen?
Welche SW-Komponenten neben FHEM benötige ich für die Anbindung?

Radiator

#27
Halo mv,
Mit dem Raspi habe ich noch nicht gearbeitet. Ich habe einen Intel Nuc, auf dem Ubuntu läuft, und daran einen USBTIN angeschlossen. Den Usbtin gibt es hier: http://www.fischl.de/usbtin/

Juerg hat ein Projekt mit Raspi realisiert, Details findest Du auf seiner Homepage http://juerg5524.ch/list_data.php ,
und hier im Forum https://forum.fhem.de/index.php/topic,42248.0.html
Ich glaube, das passt besser für Dich.

Mit Sicherheit musst Du an der Zuordnung von Elster Codes zu Funktionen etwas anpassen, die sind bei jeder Pumpenkonfiguration anders.
Juerg hat hier ein schönes Tool, CS_Brücke, mit dem man das aber sehr schnell hinbekommt. Die Zuordnung in meinem Modul basieren auf Juergs Arbeit, ich musste ca. 50% anpassen.

Radiator




Radiator

Nachdem ich mich heftigst über Ubuntu und die murksige Treiberversorgung für den Intel NUC aufgeregt habe, bin ich auf Windows 10 umgestiegen. Alles lief prima von Anfang an, superschnell und flüssig, bis eben auf mein eigenes Modul zur CAN Anbindung meiner WPL. Auch unter Linux verschluckte der Adapter ab und zu ein paar Werte... wollte ich ja schon immer mal richtig machen... 8)

Hier also das Modul mit komplett umgebauter Sende-, und Empfangslogik. Ein Sendebuffer stellt sicher, dass nicht zuu viele Anforderungen an die Pumpe gesendet werden. Die Errorliste wird abgefragt, und zusammengestze Werte (z.B. Wärmeertrag) werden korrekt erstellt. Läuft seit einem Monat superstabil.

Ich benutze jetzt die Register des USBtin, und filtere pumpeninterne Telegramme weg, so dass die Systemlast noch geringer wird. Mein NUC langweilt sich jetzt richtig. Da der MCP2515 im USBtin aber einen anderen Registeraufbau hat als der SJA1000 im Lawricell CAN232, läuft das Modul nicht mehr mit dem CAN232 Adapter.

Der ECO-Mode für die Umwälzpumpe funktioniert jetzt stabil, und die Umschaltung auf Sommerbetrieb wird erkannt.

Hartmut

mmeine

Hallo Hartmut,

ich möchte meine SE WPC mit WPM3i gern in FHEM einbinden. Ich selber versuche das mit einem raspberry und dem pican.
Ich habe bereits einen Kommunikation mit Jürg seinem 50_Elster.pm hinbekommen. Allerdings läuft das recht instabil und mit der ganzen C++ Einbingung komme ich nicht mehr mit.

Nun bin ich auf deine 00_WPL15.pm gestoßen, welche ich auch schon in wenig auf meine Bedürfnisse angepasst habe. Das Hauptproblem ist im Moment die Herstellung der Verbindung zu meinem SocketCan ("can0"). Kannst du mir dabei helfen. Du scheinst dich ja mit der ganzen FHEM und Perl-Geschichte bestens auszukennen. Es müssten doch beim Aufruf der "sub DevIo_OpenDev" bestimmt nur die richtigen Parameter übergeben werden oder?


Grüße Markus.