Autor Thema: Rotex HPSU via CAN-Bus(ELM327) nach FHEM monitoren; Bitte um Unterstützung  (Gelesen 10195 mal)

HPSU_Mic

  • Gast
Hallo Rotex HPSU und FHEM Gurus,

seit ca. einem Jahr bin ich nun auch Besitzer einer HPSU 508 BIV mit 11 KW Außengerät. Ich lese hier seit dieser Zeit mit und habe sehr viele nützliche Tipps über hydraulischen Abgleich, Einzelraumregler, die Funktionsweise von Wärmepumpen und vieles andere mehr erhalten.

Allerdings war es auch immer ein Ratespiel, viele Informationen fehlen einfach weil man sie einfach nicht weiß, zum Beispiel bei dem leidigen Thema „Takten“. Bis heute kann ich nicht nachvollziehen, wie oft und warum die Wärmepumpe ein -und ausschaltet und welche Parameter wann dafür verantwortlich sind.

Somit war ich es leid! Es muss eine Monitoring Funktion her. Das Rotex Gateway scheint hierzu keinerlei sinnvolle Funktionalität zu bieten…

Zu meinem Weg:
Auf der Platine ist ein CAN-Bus Anschluss verfügbar, das Display kommuniziert darüber mit der Steuerung, auch der Raumthermostat wird darüber angeschlossen, wie auch das Gateway. Prinzipiell muss man die Daten also abgreifen können!
Es gibt Lösungen für den RasPi und CAN-Huckepack Platinen, die haben mir allerdings nicht wirklich zugesagt, sind auch ziemlich teuer…

ODB2, die Auto-Kommunikations, spricht auch CAN und ist recht preigünstig, warum nicht damit probieren?

Ein Scan mit dem Oszi zeigte 50 mS Signale, also handelt es sich wohl um einen 20KBaud-Bus.

Ein günstiger ODB2 Vertreter ist der ELM327, bei Ebay in der USB Variante http://www.ebay.de/itm/221534256084?_trksid=p2060778.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT für 11€ in der WiFi-Variante http://www.ebay.de/itm/251766007255?_trksid=p2060778.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT für 24,50€ zu bekommen. Ein Kabel zum Anschluss http://www.ebay.de/itm/221240328296?_trksid=p2060778.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT kann man bei Ebay für 10€ bekommen.

Ich benutze die WiFi-Variante. Die funktioniert allerdings nur, wenn sie mit 12 Volt versorgt wird. VCC vom CAN-Bus liefert leider ca. 23 Volt, also habe ich an Kabel 4 (Fahrzeug Masse, HellBlau) und Kabel 16 (Batterie Spannung 12V, Rot) ein extra 12V Netzteil aus der Krabbelkiste im Keller angeschlossen.
Den CAN-Bus High habe ich an Kabel 6 (Lila), den CAN-Bus Low habe ich an Kabel 14 (Weiß) und CAN-Bus Signal Masse habe ich an Kabel 5 (Gelb) angeschlossen.

Das WiFi ist ein AdHoc und kann direkt verbunden werden

Den ELM 327 kann man nun beispielsweise mit telnet 192.168.0.10 an Port 35000 ansprechen (Putty).
Um den ELM327 für das 11Bit CAN-Bus auf 20KBaud zu programmieren, muss man folgende Befehle an den ELM327 absetzen:
AT PP 2F SV 19
AT PP 2F ON
AT D
Jetzt noch das geänderte Protokoll auswählen:
AT SP C
Die Header einschalten:
AT H1
Nun kann man mit
AT MA
die Kommunikation auf dem CAN-Bus mitlesen, wenn man sich zum Beispiel den Wasserdruck anzeigen lässt sieht es folgendermaßen aus:
10A 31 00 1C 00 00 00 00
180 22 0A 1C 05 3B 00 00
Diese beiden Zeilen werden ca. alle 5 Sekunden wiederholt.
Nach den 3 Hex-Header-Addressen kommen die 3 Bytes der Frage und hier sind das 4. und 5. Byte der Antwort die gewünschte Information: 053Bhex sind 1339dez, geteilt durch 1000 macht die angezeigten 1,3 bar.

T-WE Soll [°C] kommuniziert folgendermaßen:
10A 31 00 02 00 00 00 00
180 22 0A 02 01 26 00 00
Auch hier das 4. und 5. Byte die Antwort: 0126hex sind 294dez, geteilt durch 10 macht die angezeigten 29,4 °C.

Die Laufzeit des Kompressors sieht folgendermaßen aus:
10A 31 00 FA 06 A5 00 00
180 22 0A FA 06 A5 06 7F
Hier sind das 6. und 7. Byte die Antwort: 067Fhex sind 1663dez, geteilt durch 1 macht die angezeigten 1663 Betriebsstunden.

Soweit war es eigentlich nicht so schwierig, jetzt aber benötige ich Eure Unterstützung:

Den CAN-Bus habe ich bislang nicht verstanden, ich habe es bislang nicht geschafft eine Frage zu stellen auf der die Antwort nicht “No Data“ war…

FHEM zu installieren und zu starten ist nicht so besonders schwierig. Auf meinem TP-LINK 1043ND soll es später mal unter OpenWRT laufen, im Augenblick benutze ich aber noch ein normales Linux. FHEM kenne ich allerdings noch nicht, aber es sieht wirklich vielversprechend aus, siehe
https://drive.google.com/file/d/0B1UL59HBifIPdjIzVHpseHBXQlU/view?usp=sharing von HAJO23.
Was ich jetzt noch benötigt würde,
wäre der Anschluss des ELM327 als CUL/CUN/CUNO für FHEM
und die Interpretation der CAN-Telegramm-Befehle und CAN-Telegramm-Antworten.
Die erforderliche Übersetzungstabelle würde ich dann mit der Zeit erstellen, damit ich die HPSU ähnlich monitoren kann wie HAJO23 seine Heizung in dem obigen Beispiel.

Kann mich da jemand unterstützen?
Welche Befehle kann man bei FHEM benutzen? Telnet?
Es gibt ein perl-modul mit  CAN-Bus unterstützung, siehe  (http://forum.fhem.de/index.php?topic=14992.0).

Die Übersetzungstabelle müsste dann also ungefähr folgenden Form haben:
Telegramm, PositionStartWert, Divisor, Bescheibung [Einheit]
Also vielleicht
00 FA 06 A5, 6, 1, Laufzeit Kompressor [h]
00 1C, 4, 1000, Wasserdruck [bar]

Na, hab ich Euer Interesse geweckt?

Vielen Dank im Voraus.
« Letzte Änderung: 11 März 2015, 19:59:04 von HPSU_Mic »

HPSU_Mic

  • Gast
Hallo All,

wenn ich meinen Header setze in den Bereich von der Empfängeradresse z.B. auf 190 (ATSH190) bei einem Empfänger aus dem Bereich 180, bekomme ich Antworten von der Heizung.
Für einen Empfänger aus dem Bereich 300 (Außentemperatursensor) muss ich den Header auf beispielsweise 310 setzen.
Wenn ich mich auf die gleiche Adresse setze oder das Filterkommando (ATCRA180) benutze, dann stirbt die Heizung. Einzige Lösung: Aus- und wieder Einschalten. Jegliche Befehle werden mit dann lediglich mit CAN-ERROR quittiert...

Ansonsten scheint die Kommunikation zu funktionieren. Ich werden mal ein bisschen Perl lernen und zu großen Teilen 89_VControl für Viessmann Heizungen von Adam kopieren, das funktioniert fast genauso. Ein kleines Perl-Testscript funktioniert bereits.

Michael

Offline ingmar

  • New Member
  • *
  • Beiträge: 8
Hallo  HPSU_Mic,
Auch ich bin auf der Suche den ELM327 an Fhem zu basteln. Bei mir aber, um aktuelle Fahrzeugdaten (km Stand) auszulesen.
Ich scheitere schon daran den ELM327 in mein Netz zu bekommen. Wie kann man ein adHoc WLAN Gerät mit fix 192.168.0.10 mit einem Netzwerk (192.168.0.x) verbinden?
Zu deinem Vorhaben: Ich würde die Dekodierung  auserhalb von Fhem machen, da CAN meist zyklisch sehr viele Daten sendet, und ein Perl-Interpreter da schon ins schwitzen kommen kann. Einige Geräte bei mir habe ich nach dem Prinzip nativer C-Dämon, der nur relvante und gefilterte Daten an Fhem per 7072-Socket sendet.
Falls du Interesse hast, kann ich dir Source-Code zukommen lassen (z.B. Auslesen eines SolarLadereglers Phocos CVM40).

Gruß
Ingmar
1 Raspberry Pi 2
Cul , EIB/KNX, Dreambox,STV,HMLAN,Fritzbox,KM271, FS20
per Dummy angebunden:
EDS OWServer, phocos CWM40, USB airquality CO20..

HPSU_Mic

  • Gast
Hi ingmar,

wie ich oben beschrieben hatte benutze ich OpenWRT auf meinem Router. Dort wurde der ELM327 sofort gefunden und konnte leicht ergänzt werden. Das Ganze hat 5 Minuten gedauert und funktioniert seitdem (fast) einwandfrei. Fast bedeutet, das nach ca. 55 Stunden die Verbindung kurz getrennt und wieder neu aufgebaut wird, das hatte zu Anfang mein Logging gekillt.

Meine Strategie ist im Augenblick folgende:
Der Elm wartet im Standard 204 ms auf eine Antwort, danach kommt NO DATA. Ich warte, setze  den Header wie oben beschrieben, warte, lese die Antwort. Diese Antworten beinhalteten (bislang) nie mehr als zwei Datensätze (also zwei Zeilen zu 2 x 7 NutzByte). Ich filtere mir die richtige Antwort raus, rechne um und schreibe diese in eine Log-Datei, die ich über FHEM auslesen kann.
Das kleine Perl Script funktioniert seit zwei Wochen auf dem TP-Link 1024 ND unter OpenWRT einwandfrei, wird alle 3 Minuten per cron angestoßen. Zusatzlast für bislang 30 Messwerte, also top für 15 Minuten: 0.01 also nichts. Es wird ja auch meistens gewartet, die 30 Messwerte brauchen auf diese Art und Weise schon fast 30 Sekunden...

Im Augenblick passiert allerdings nicht viel, da der Sonnenkollektor für alles ausreicht und die Heizung somit fast komplett steht.

Generell bin ich natürlich an Deinem Quellcode interessiert, das meine Strategie sicherlich nicht optimal ist.

Viele Grüße

Michael

Offline Spanni

  • New Member
  • *
  • Beiträge: 9
Moinsen,

hab seit 3 Monaten auch ne HPSU 508 BIV, heute hats draußen 25-30 Grad und gerade läuft sie auf dem Heizstab.
Um sowas aufzuzeichnen würde ich gerne die ganzen Werte mitloggen.

@ HPSU-Mic: Tut deine Lösung?

Gruß

Spanni

HPSU_Mic

  • Gast
Hallo Spanni,

so wie ich es beschireben habe funktioniert es:
- Das Script (siehe Anhang) liegt in dem log - Verzeichnis von fhem.
- Dort wird es vom cron alle 3 Minuten angestoßen und produziert täglich eine fhem - FileLog -ähnliche Datei.
- In fhem habe ich mir einen Dummy angelegt, damit ich das Fillog einlesen kann, siehe die Screenshots im Anhang.

Dort siehst du
- Wie mein Außentemperaturfühler nicht richtig posioniert ist (Ostseite), wenn vormittags die Sonne scheint wird falsch gemessen (die beiden Beulen)
- Zweilmal geheizt wurde: Die Mischer regelten in die andere Endposition, die Pumpe habe ich auf 60-70% eingestellt, trotzdem geht sie beim ersten Mal auf 100%, beim 2. Mal nicht.
- Der Wasserdruck ziemlich rauscht und an der WW-Temperatur hängt, wie auch die Vorlauf- und Rücklauftemperaturen.
- Meine suboptimalen Sonnenkollektoren (West-Ausrichtung) erst Mittags zuheizen und bis ca. 19:00 Uhr einen Beitrag bringen.

Interessant: Vor ein paar Tagen hatt ich mein Außengerät abgeschaltet (braucht über ein kW pro Tag fürs Nichtstun), trotzdem hat der Energiezähler hochgezählt (siehe Screenshots vom 22.05), da er ja den Befehl bekommen hat. Ist also nur ein ungenauer empirischer Zähler. Deswegen die Fragen bei der Einrichtung bzg. Außengerät...?

Außerdem:
Als ich die Abfrage für die zweite Außentemperatur (TA2) ergänzte, hat auch die erste nicht mehr funktiniert (konstant 16,3°C), deswegen ist sie auskommentiert.

Gegen den Heizstab hat du vier Möglichkeiten (alle aus diesem Forum):
1. Den Parameter für den Heizstab auf -15° zu verschieben.
2. Die Zeit, nach der er die Heizung unterstützen soll, hochsetzen.
3. Die Sicherung für den Heizstab herausnehmen.
4. Den Stecker am Heizstab ziehen.

Falls Du fhem bzw. Perl - Guru bist, kannst Du meinen schlecht dokumentiertden Spaghetti Code ja gerne als Grundlage für das Modul RCONTROL nehmen. Ich werde frühestens im Winter wieder dazu kommen.

Viel Spaß mit dem Gerät

Michael
« Letzte Änderung: 04 Juni 2015, 22:16:19 von HPSU_Mic »

Offline Spanni

  • New Member
  • *
  • Beiträge: 9
Moin,

bin weder FHEM- noch Perl-Guru...mit FHEM hatte ich bis dato noch nie was am Hut (bis jetzt nutze ich Volkszähler), perl...naja, hier und da mal Scripte erweitert oder umgeschrieben....bringt der Job als Unix-Admin so mit sich.

Ich weiß zuwenig über die FUnktion von FHEM.....muss ich mir mal anschauen.
Momentan läuft bei mit Volkszähler mit 2 USB-Leseköpfen auf nem BananaPro. Hab mir jetzt auch mal einen CAn-USB-Adapter besorgt und schau mal wie ich da rankomme.
Wo hast du das an der Platine angeklemmt? J19=? Hast du da nen kleinen Plan.

Ich hab nen bekannten bei Rotex sitzen, aber die Entwickler werden da nichts rausrücken...da geht per CAN bestimmt noch mehr.


Gruß

Spanni

HPSU_Mic

  • Gast
Hallo Spanni,

schade, dann werd ich im Herbst daran wohl aleine weiterarbeiten.

Laut ROTEX HPSU compact Installations- und Wartungsanleitung, Ausgabe 12/2014, Seite 21, habe ich mich an den J13 für RoCon U1/ RoCon M1 drangehängt. Details stehen oben im ersten Beitrag.

Michael

Offline Spanni

  • New Member
  • *
  • Beiträge: 9
Sorry, dass ich hier nicht helfen kann.
Hast du denn alle Kommandos die du schicken musst? Und kannst du alle Antworten richtig interpretieren?
Wenn ich mir die Steuerung so anschaue...sind ja schon ne Masse an werten....

Gruß

Spanni

HPSU_Mic

  • Gast
Hallo Spanni,

nein lange nicht! Vielleicht 60% der Info-Werte frage ich ab. Bislang habe ich noch keinen einzigen Parameter-Wert abgefragt, geschweige denn verändert.
Also grob geschätzt keine 5% dessen, was die Maschine intern bearbeitet.
Ist auch nicht mein Ziel! Man kann - meiner Meinung nach - an der Maschine ganz komfortabel alles einstellen, nur weiß man häufig nicht, welche (meist indirekten) Folgen die Veränderung des Parameters hat.

Was mir noch vorschwebt ist also eine Parameterabfrage um Werte in eine Community-"Datenbank" zu bringen. Zum Beispiel erzählt Priusfahrer er schaffe eine JAZ von über 4. Davon bin ich himmelweit entfernt. Aber, wie ich oben beschrieben habe, scheinen die Energiezähler der Machine ja auch sehr ungenau zu sein. Oder einfach nur nicht vergleichbar, bspw. eine 8 mit einer 11 kW Maschine. Man weiß halt nicht, wie verschiedene Leute ihre Zahlen ermitteln und weiterverarbeiten.

Ich will einfach eine Analyse machen können. Zum Beispiel rätsel ich immer noch an dem hohen Wärmeverlust beim Warmwasser. Die Machine ist mit einer kWh Wärmeverlust in 24h angegeben, bei mir ist er viel höher. Irgendwas stimmt mit meiner Rezirkulationssteuerung nicht...

Schließlich nervt mich noch der hohe Standby Verbrauch, insbesondere des Außengerätes. 10% meines Jahresverbrauches geht für Standby des Außengerätes drauf. Da werde ich mir noch eine Logik ausdenken, diesen um 50% zu verringern. Sind auch 45 € im Jahr. FHEM bietet da ja extreme Möglichkeiten, unter bestimmten Randbedingungen die Maschinen komplett von der Stromversorgung zu trennen. Dafür werde ich dann allerdings auch einige Set-Parameter verändern müssen...

Wenn man den Heizungsbauern oder Rotex zertifizierten Inbetriebnehmern diese Fragen stellt, bekommt man meist nur Fragezeichen zu sehen. Ist mir jedenfalls so ergangen.

Viele Grüße

Michael

Offline Spanni

  • New Member
  • *
  • Beiträge: 9
Ich ? hab ich auch gerade......soweit hab ich mich mit der Thematik "Wärmepumpe" noch nicht befasst (zur Zeit noch besseres zu tun, bin ja gerade erst eingezogen, fertig ist auch noch nicht alles), will aber schonmal soviel Daten wie Möglich haben um dann später mal auswertungen machen zu können...
Wie kommst du z.B. auf denen Wärmeverlust beim WW?
Und den Standby-Verbrauch? Einfach am Stromzähler abgelesen?


Gruß

Spanni
« Letzte Änderung: 10 Juni 2015, 14:27:09 von Spanni »

HPSU_Mic

  • Gast
Hi Spanni,

bei meinen 500l Speicher machen 2°C eine kWh an Energie. Wenn ich in 24h 10° Temperatur verliere, ohne das jemand Wasser gezapft hat, sind das 4 kWh zuviel. Im Winter wäre es ja egal, im Sommer pumpst Du diese 5 kWh unnötigerweise in dein Super-gedämmtes Haus und wunderst Dich, warum es so warm ist...

Wenn Du Deinen dedizierten Stromzähler abliest und 1,5 kWh Verbrauch pro Tag siehst, obwohl die Maschine auf Bereitschaf steht, dann weißt  Du, dass das Standby sein muss, oder?

Das sind alles alte Diskussion in diversen Foren (haustechnikdialog.de), genauso wie die Ventile für die Fußbodenheizung, welche ja optimalerweise immer offen sein sollen (Stichwort takten), aber nur als stromlos geschlossen verbaut werden. Damit produzierst du bei 18 Ventilen * 5W/Ventil und Stunde * 24 Stunden = 2,1 KWh Verlustleistung am Tag.

Hat mir vorher auch niemand gesagt. Ist aber gesezlich vorgeschrieben. Hatte halt ne zeitlang täglich abgelesen und ne JAZ von um die 2 gehabt. Deswegen nun dieser Weg.

Viele Grüße

Michael

Offline Spanni

  • New Member
  • *
  • Beiträge: 9
Hast du denn schon Übersetzungstabellen?

HPSU_Mic

  • Gast
Hallo Spanni,

nur die 27 Codes, die oben in dem Perl Script stehen.

Michael

Offline oti

  • New Member
  • *
  • Beiträge: 45
Hallo,

ich finde es Klasse hier im Forum Rotex-Besitzer zu finden. Ich besitze seit 2 Jahren eine GCU 524 Kompakt und war das erste Jahr ungewollter Beta-Tester für die Firma.
Wäre toll, wenn es irgendwann ein FHEM-Modul für die Heizung und für die autarke Solaris R3 geben würde.

Ich hatte in der Vergangenheit versucht den CAN-Bus über das Gnublin-Modul "http://shop.embedded-projects.net/embedded-projects-gmbh/gnublin-module-can-3.3v-transceiver.html?c=13" anzuzapfen, leider erfolglos. Ich habe das Projekt dann verworfen.
Jetzt hängen in der Heizung meine eigenen Fühler (Vorlauf/Rücklauf/Speicher) und weiterhin steuere ich die Grundfunktionen (Heizen/Sommer/Bereitschaft/Absenken/...) über eine Widerstandskette an J8 "BSK", die mit meinen Raspi potentialfrei verbunden ist. Zumindest das klappt sehr gut.

An die Betriebspumpe der Solaris R3 habe ich ein Relais gehängt, um zumindest aufzeichnen zu können, wann die Pumpe aktiv ist. Hier gäbe es noch eine Menge weiterer Werte die ich gerne in FHEM hätte.

Ich hätte sicherlich Interesse das Gnublin-Modul noch einmal zu aktivieren, wäre die Frage, ob es noch andere Leute gibt, die damit rumexperimentieren.

Gruß
OTi
« Letzte Änderung: 26 September 2015, 13:57:28 von oti »