FHEM Modul (70_HPSU.pm) ROTEX HPSU compact <--> ELM327

Begonnen von ahermann86, 19 Dezember 2019, 21:14:24

Vorheriges Thema - Nächstes Thema

giulup

Super. Danke für die schnelle Antwort. Habe inzwischen meine Zeitprogramme nach fhem migriert und einen workaround für mein 1xWW (Hahnsymbol an der Rotex).
Dank dir ist bei mir jetzt alles ,,vom Bett aus" umsetzbar.

hg6806

Moin zusammen!

Habe auch eine Rotex HPSU 508 und durch Solar-Thermie und Photovoltaik möchte ich tagsüber von der Photovoltaik leben, während sich der WW-Speicher immer mehr auflädt und ich dann über Nacht damit heize.
Somit muss ich dann tagsüber schrittweise die WW Solltemp. erhöhen, so dass kein WW erzeugt wird, aber sich der Speicher auch nicht in die Heizung entleert und abends dann die WW Solltemp. auf ein Minimum herabsetzen, so dass man noch warm duschen kann.
Das möchte ich gerne halbwegs automatisieren und an ioBroker anbinden.

Mein Problem ist, dass ich von SW keine Ahnung habe. Komme eher aus der HW Ecke.
Wenn ich diesen Thread lese, verstehe ich zum Teil nur Bahnhof.
Denkt ihr, ihr könnt mich soweit unterstützen, bis ich das zum Laufen gebracht habe? Dann würde ich mir ein ELM327 besorgen.

Bei Github habe ich schon mal eine ioBroker Adapteranfrage gestellt mit dem Link auf diesen Thread, jedoch bis jetzt ohne Reaktion.
Als HW habe ich einen Pi4 2GB auf dem ioBroker läuft, den ich dafür gerne nutzen möchte. Der Pi ist ca. 10m von der Rotex entfernt was für CAN ja kein Problem ist.

Danke im Voraus!

ahermann86

Hallo,

Damit habe ich auch schon experimentiert und "nur" unser Bad in der Übergangszeit hochgeheizt. Dafür bräuchtest du aber meiner Meinung nach einen größeren Speicher und habe es daher verworfen. Die WW Temperatur sinkt bei Heizen "relativ" schnell...
Der Vorteil von der erhöhten WW Temp ist allerdings, dass die Außeneinheit Nachts zum Abtauen davon leben kann. Somit entfällt Nachts zumindest die WW Bereitung, was auch schon sehr viel Energie spart.
Das sind allerdings nur meine Erfahrungen, vielleicht liege ich da auch falsch...

Ich selbst habe FHEM schon vor der Einbindung der HPSU am laufen gehabt. Somit war die "Infrastruktur" schon vorhanden und habe deshalb dafür ein "natives" Modul geschrieben.
Wie das mit ioBroker geht, weiß ich nicht. Ich weiß, dass es diese Platform/Software gibt - mehr aber auch nicht. Ich meine irgendwo einmal gelesen zu haben, dass es möglich ist,
dass FHEM und ioBroker miteinander kommunizieren können. So könntest du FHEM mit meinem Modul laufen lassen und die Daten mit ioBroker auswerten, verarbeiten oder steuern.

Gruß
Axel

hg6806

#78
Hallo an alle,

nun habe ich mich doch mal an die Sache rangewagt.
Und zwar habe ich einen RaspberryPi ZeroW gekauft, FHEM drauf installiert und alles nach Anleitung gemacht.

Sieht auch ganz gut aus, jedoch kommen von der Rotex keine Daten.
Anbei auch ein Bild.
Fragen dazu. Habe rudimentär mal ein normales  (nicht verdrilltes) 3m langes Kabel genommen. Kann das ein Problem sein.
Wie schnell ist der CAN hier?
Schalter auf HS oder MS?
Kann man den CAN von der Rotex einfach so "hot-plug" auf den Adapter stecken oder sollte man die Rotex generell dazu ausschalten?
Wie erstellt man das Debug Log? Habe unter Attr. Debug-Log auf on, finde aber nirgends eins.

Btw. gibt es tatsächlich in ioBroker ein FHEM Adapter. Damit sehe ich schon das HPSU Modul (jedoch noch ohne Werte).


hg6806

Es läuft! Lag doch an dem zu langen CAN Kabel. Habe es jetzt mal auf 50cm Länge gekürzt. Da es jetzt läuft werde ich es mit einem verdrillten Kabel "schön" machen.
Schalter muss auf HS - heißt wohl HighSpeed.
MS keinen Ahnung, kenne eigentlich nur noch Low Speed bei CAN.

Daten und Werte kommen auch in ioBroker an.
Auch die Set-Werte wie z.B. fhem.0.myHPSU.HPSUVal_Soll_T_Warmwasser_1__t_dhw_setpoint1_
Wenn ich hier in ioBroker jedoch den Wert setze, kommt es in FHEM bzw. im Modul nicht an. In FHEM geht das Setzen der Werte.
Hat jemand eine Ahnung wieso? Wenn nicht muss ich mal im ioBroker Forum nachfragen oder hier dann einen neuen Thread aufmachen.

ahermann86

Hallo "hg6808",

freut mich zu lesen, dass es funktioniert.  ;)

Ich habe den Text des Ersten Posts mit dem Absatz "Falls es nicht funktioniert:" ergänzt. Vielleicht hilft das beim nächsten Mal.

Weiterhin habe ich die Version aktualisiert. Ich habe zwischenzeitlich wieder weiter gebastelt bzw. optimiert.

Es betrifft vorallem das ForceDHW, falls man kurz vorher die t_dhw_setpoint1 geändert hat.. Weiteres in dem Changelog direkt in der 70_HPSU.pm.

Gruß
Axel

hg6806

Hallo Axel,

super, werde morgen mal versuchen ein Update zu machen.
Da ich absoluter Neuling in FHEM bin, genügt es die beides Files auszutauschen und ein Reboot zu machen?
Oder ein Reload?
Auf jeden Fall bin ich beim Problem mit dem Schreiben von ioBroker auf FHEM etwas weitergekommen.
Und zwar "versteht" ioBroker die eckigen Klammern der Set-Werte nicht und wandelt die eckigen Klammern in Unterstriche um.
Ich kann mir vorstellen, dass dann sowas zurückgeschickt an FHEM nicht gelesen werden kann.
Ist halt die Frage auf welcher Seite hier der Fehler liegt.

ahermann86

Hallo "hg6808",
der Updatevorgang wird wie folgt durchgeführt. Zuerst werden die Files ersetzt. Danach wird mit Eingabe "reload 70_HPSU" in die FHEM Befehlzseile das Modul neu geladen. Um die json neu zu laden, muss man noch in dem Modul das "get myHPSU UpdateJson" ausführen.
Alternativ geht natürlich auch ein reboot (was bei der Entwickling natürlich lästig wäre...)

Um einen Wert zu setzen, kann man das über das Modul mit dem set Dropdown Menü machen. Alternativ auch mit einem Befehl wie z.B. für das Warmwasser "set myHPSU t_dhw_setpoint1 48". Die Variante mit "set myHPSU HPSU.Soll_T_Warmwasser_1 48", wie ich vor kurzem auch feststellen musste, funktioniert im Moment leider nicht.

Erst wenn das setzen der Werte mit "set myHPSU xxx" über die Befehlszeile funktioniert würde ich mit ioBroker weitere Versuche machen.

Vielleicht gehe ich das bei der V1.6 an. An der mache ich gerade weiter. Da gibt es noch ein paar Baustellen, wie z.B. Timeouts in den Griff zu bekommen oder Werte wie z.B. "Funktion_EHS" zu setzen...

Gruß
Axel

hg6806

Hi Axel,

in ioBroker habe ich es durch deren Hilfe geschafft einen Befehl abzusetzen, der mir dann in FHEM und der Rotex den Wert verstellt.
"set myHPSU HPSUVal_Soll_T_Warmwasser_1_[t_dhw_setpoint1] 46" hat funktioniert.
Der ioBroker Adapter setzt eckige Klammern in Unterstriche um und wahrscheinlich zum Setzen von Werten nicht mehr zurück, so glaube ich eher an ein Problem beim ioBroker Adapter.

Aber durch das Absetzen eines Befehls und Ausführung in der Rotex habe ich im Prinzip fast alles was ich brauche.

Vielen Dank nochmals für das Modul und den Support!

ahermann86

Hallo,

ich habe weitere Optimierungen an dem Modul durchgeführt. Das betrifft die Version ab 1.6.

Nach einer Anfrage eines Wertes, kommen manchmal mehrere Antworten als String über den ELM zurück. Die werden nun alle gesplittet und ausgewertet. Das ermöglicht ab jetzt sogar, dass das Setzen der Werte wie z.B. func_heating, quiet_mode, hc_func... auch funktioniert. Weiterhin gibt es "fast" keine Timeouts mehr. Allerdings habe ich festgestellt, dass der Timeout von 4 Sekunden in seltenen Fällen nötig ist. Vermutlich laufen in der Steuerung dann andere Abläufe, die die CAN Kommunikation kurzzeitig blockieren.

Eine weitere Erweiterung ist die Verbindungsmethode "Connect_MonitorMode".

Viel Spaß beim Testen.

Gruß
Axel

Fuxi

Hallo!

Was bedeuten die neuen Werte zum setzen, wie func_heating etc...
Danke
Achja, Danke nichmal, mein Modul läuft seit über einem Jahr hervorragend!

hg6806

Prima, probiere ich dann auch mal aus.

Interessant wären noch "Fachmann-Einstellungen" wie Abschalten des Heizstabs etc, aber ich denke dafür muss man noch den Code übermitteln.

ahermann86

#87
Hallo,

"Werte wie z.B. func_heating, quiet_mode, hc_func..." heißt, dass alles was in der commands_hpsu.json auf "writable" : "true" steht nun auch funktioniert.

Ein Beispiel ist das Deaktivieren des Heizstabs. Das habe ich gebraucht, deshalb musste ich da auch nochmal ran.
Um den zu deaktivieren, führt man "set myHPSU func_heating "0"" aus. Zum Einschalten genügt "set myHPSU func_heating 1". Nur mit 0 geht im Moment nicht (was ich gerade feststellen musste). Deshalb muss 0 in "". Das werde ich bei der nächsten Version noch korrigieren.. man findet doch immer wieder etwas  ???

Der Fachmanncode schaltet "nur" in dem Display die Werte frei. Deshalb muss man den beim direkten Schreiben über CAN nicht setzen.

Gruß
Axel

Edit: Da die Version 1.6 noch niemand herunter geladen hatte, habe ich das mit der 0 noch kurz in der aktuellen Version korrigiert.
Zum Abschalten des Heizstabes führt man nun "set myHPSU func_heating 0" aus. Zum Einschalten in Modus 1 "set myHPSU func_heating 1" usw.

Fuxi

Danke, werde am WE mal ein Modul Update machen.
Grüße

hg6806

#89
Kann mir jemand erklären was eigentlich der Unterschied zwischen Soll_T_Warmwasser und Soll_T_Warmwasser_1 ist?
Letzteres wird nach 1-2 Sekunden geschaltet, nach Verstellen, erster Wert braucht länger und auch nur wenn sich das Gerät nicht im Standby befindet.

Wenn ich Warmwasser erzeugen möchte erhöhe ich den WW-Soll Wert um einiges höher als die derzeitige WW Temperatur + Hysterese.
Jetzt dauert es aber manchmal sehr lange (1/2h-1h) bis überhaupt die aktive Betriebsart auf Warmwasserbereitung springt und die Wärmepumpe WW erzeugt.
Liegt das an der HPSU itself oder FHEM?