Rotex HPSU Compact

Aus FHEMWiki
Rotex HPSU Compact
Zweck / Funktion
Auslesen und Steuern einer Rotex HPSU mit Rocon BM1
Allgemein
Typ Inoffiziell
Details
Dokumentation siehe Forum
Support (Forum) Heizungssteuerung/Raumklima
Modulname 70_HPSU.pm
Ersteller Axel
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!

Modul zur Anbindung einer ROTEX HPSU Compact Wärmepumpe über CAN Bus mit einem einfach und günstig beschaffbaren ELM327.

Clock - Under Construction.svg An dieser Seite wird momentan noch gearbeitet.

Allgemein

  • Auslesen und Setzen aller über die Rocon B1 zur Verfügung stehenden Parameter
  • Keine Zugriffsrechte nötig (Benutzer, Fachmann)
  • Anbindung mittels einem ELM327 Adapter an die CAN Schnittstelle der RoCon BM1 an J13

Voraussetzungen

Hardware

ELM327 OBD2 Adapter

Um die Regeleinheit RoCon "BM1" der HPSU an den FHEM Server anzubinden, wird ein ELM327 (OBD2 Fahrzeug Diagnose Adapter) eingesetzt. Dieser wurde gewählt, da man hier an keine spezielle Hardware gebunden ist. Es reicht eine USB Schnittstelle aus.

Bei der Auswahl des ELM327 ist es wichtig, dass dieser das Protokoll "USER2 CAN (11bit ID, 50 kbaud)" implementiert hat. Wenn das Protokoll fehlt, merkt man das bei der erfolgreichen Initialisierung noch nicht. Man merkt es erst dann, wenn alles richtig angeschlossen ist und einfach keine Antworten kommen.

Einen solchen "Billigadapter" erkennt man an einem schwarz vergossenen Punkt auf der Platine.

Um einen funktionsfähigen Adapter zu finden, hat es sich bewährt, dass man nach "elm327 forscan" in den bekannten Onlineshops sucht. Ein weiteres Erkennungsmerkmal ist der Kippschalter zur "HS" und "MS" CAN Umschaltung.

ELM327 OBD2 Adapter Buchsen

Um den Adapter mit der Anlage verbinden zu können, benötigt man zwei Buchsen. Die müssen für CAN-H an Pin 6 und für CAN-L an Pin 14 angeschlossen werden. Auf dem Bild "Buchse Schritt 3" ist Pin 6 die gelbe und Pin 14 rote angesteckte Ader. An die kann man wiederrum eine Leitung angeschlossen werden, welche an die Rocon geht.

Leitung zwischen ELM327 Adapter und RoCon

Es kann eine 2 oder 4 adrige KNX, Telefon, Ethernet (Verlege- oder Patchkabel / CAT egal), ... Leitung verwendet werden. Das grundsätzlich wichtige dabei ist, dass das benötigte Adernpaar verdrillt ist.

Anschluss an die RoCon BM1

Wichtig beim Arbeiten an der RoCon: ALLE Sicherungen ausschalten! Es genügt dabei nicht, die Sicherung von der Steuerung auszuschalten. Es muss auch die vom BackupHeater und der Außeneinheit ausgeschaltet werden!!

An den CAN Bus der RoCon BM1 Platine kommt man über den Stecker J13. Der CAN-H muss an den ELM327 Adapter mit Pin 6 und CAN-L mit Pin 14 verbunden werden. Die Schalterstellung ist zunächst nicht wichtig.

Software

Dateien

Da dieses Modul "inoffiziell" ist, muss man die benötigten Dateien "70_HPSU.pm" und "commands_hpsu.json" händisch in den FHEM Ordner hinein kopieren. Die Dateien sind als Anhang in dem Ersten Post des HPSU Forum Threads als Download verfügbar:

FHEM HPSU Forum Thread

Weiterhin ist hier der Changelog für die Dateien verfügbar.

Wenn sich die Dateien in den FHEM Ordner hinein kopiert wurden, muss das Modul über die FHEM Befehlszeile mit "reload 70_HPSU" bekannt gemacht werden. Gleiches gilt übrigens auch, wenn die Datei "70_HPSU.pm" aktualisiert bzw. ersetzt wurde!

Definition

Syntax

define <name> HPSU <device>


Beispiel

define myHPSU HPSU /dev/ttyUSB0

oder: (wie es meiner Meinung nach besser ist)

define myHPSU HPSU /dev/serial/by-path/pci-0000:00:13.0-usb-0:2:1.0-port0

Anwendung

Attribute

Parameter in () sind default.

  • AutoPoll (on),off
Parameter, bei denen in der "commands_hpsu.json" über "FHEMPollTime" eine Pollzeit angegeben ist, zyklisch abfragen und die resultierenden Readings aktualisieren bzw. generieren.
  • AntiMixerSwing on|(off)
Workaround für "Schwingen des Mixers 3UVB1 unterdrücken". Manchmal schwingt der Mixer im ungünstigsten Fall stundenlang hin und her. Das scheint ein FW Bug der RoCon zu sein und passiert nach Abschalten der Außeneinheit wenn die Zieltemperatur im Heizmodus erreicht wurde.
Das Modul greift mit AntiMixerSwing dann ein, wenn das Reading "HPSU.Direkter_Heizkreis_Modus" von active auf inactive wechselt und das ganze 2,5 Minuten so ansteht. Außerdem muss die Soll_Vorlauftemperatur_Waermeerzeuger > 0 sein. Sind diese Bedinungen erfüllt, schaltet das Modul die RoCon in vom "Heizen" in "Bereitschaft" und dann wieder in "Heizen".
  • CheckDHWInterrupted on|(off)
Wenn vor 11:00 Uhr Warmwasser erzeugt wird und das über die Zeit andauert, wird das um die Uhrzeit unterbrochen. Der Kompressor geht dann aus und die Anlage bleibt weiterhin in "Warmwasserbereitung". Das ist der 3-Wege-Umschaltventil Referenzfahrt geschuldet und so ähnlich auch in der Bedienungsanleitung beschrieben. Das Problem dabei ist, dass nach der Zeit "Wartezeit BOH" der Backup Heater eingeschaltet wird obwohl der Kompressor das machen könnte... Dieser Workaround beendet nach der Referenzfahrt dann kurz die "Warmwasserbereitung" und startet sie dann nochmal. Nun startet der Kompressor wieder "ganz normal".
  • AntiContinousHeating on|(off)
Dieser Workaround bewirkt, dass während dem Abtauen nicht das Brauchwasser zum "weiterheizen" verwendet wird. Das hat den positiven Effekt, dass beim Abtauen die WW Temperatur nicht um 3-4K sondern nur noch um 1-2K sinkt.
Um das zu erreichen, schaltet das Modul die Regelung während dem Modus "Heizen" beim Abtauen in den Modus "Sommer". Gleichzeitig wird "T-Frostschutz" temporär ausgeschaltet, falls dieser aktiviert ist. So wird wärend dieser Zeit das 3-Wege-Umschaltventil "3UVB1" auf 100% gestellt und der Heizkreis somit komplett geschlossen. Nach dem Abtauvorgang geht die Anlage wieder in den Heizbetrieb und "T-Frostschutz" wird auf den voherig eingestellten Wert gesetzt.


  • RememberSetValues on|(off)
Wenn FHEM neu gestartet wird oder ein "Connect" ausgeführt wird, wird die zuletzt über "set" im Modul vorgegebene Betriebsart an der RoCon aktiviert.
Das Modus merkt sie die Vorgabe über das Reading "FHEMSET.Betriebsart".
Beispiel:
Die RoCon ist im Modus "Heizen". Nun "stürzt" FHEM während dem Abtauen und aktiviertem "AntiContinousHeating" ab. In diesem Moment ist und bleibt die RoCon im Modus Sommer. Wenn nun FHEM neu gestartet oder die Verbindung wiederhergestellt wird, setzt das Modul die RoCon wieder auf den Modus Heizen.
  • SuppressRetryWarnings (on)|off
Immer wieder treten bei der Kommunikation Timeouts auf, welche normal sind und nicht weiter stören. Wer die Readings "Comm.xxx" auswertet oder das DebugLog an hat, bekommt immer wieder Einträge. Mit diesem Attribut werden die "retries" unterdrükt und "entlasten" das Auswerten bzw. die Logausgabe.
  • DebugLog on|onWithMsg|onDHW|(off)
Nur zur Modulentwicklung nötig und daher normalerweise immer off bzw. erst gar nicht als Attribut definiert. Das sollte nur dann aktiviert werden, wenn der Entwickler das benötigt. Wenn das aktiv ist, wird die Datei "70_HPSU_Log.log" im FHEM Ordner erstellt. Achtung: diese wächst theoretisch unendlich groß und sollte dann im Auge behalten werden!

Set

set <name> <parameter>

  • Connect
Adapter (neu) verbinden / Reset durchführen
  • Connect_MonitorMode
Adapter mit Monitor (Schnüffelmodus) verbinden.
Das ist ein Modus zur Weiterentwicklung des Moduls und wird im Normalbetrieb nicht gebraucht. Die Nutzung ist dann nötig, wenn z.B. eine neue Steuerungsart hinzu kommt, die die aktuelle "commands_hpsu.json" noch nicht unterstützt.
Ist das Modul mit diesem Modus aktiviert, werden Messages, welche in der "commands_hpsu.json" gefunden werden, regulär decodiert. Kommen unbekannte Messages hinzu, werden Reading mit folgendem Aufbau generiert:
Reading: Name: [AA]_[AA]__[S] Wert: [RequestByte1 (uint)] - [RequestByte2 (uint)] - [Request (float)] - [RequestByte1 (bits)] - [RequestByte2 (bits)]
AA = Adressbytes
S = Status -> 0=Schreiben 1=Lesen 2=Antwort
Beispiel: empfangene RAW Message: 20 0A FA 06 D9 00 01 wird zu Reading mit dem Namen: 06_D9__0 und dem Wert: 0 - 1 - 1 - 0b00000000 0b00000001
  • Disconnect
Adapter trennen
  • ForceDHW
Warmwasser vorzeitig nachladen. Das mach im Prinzip das gleiche, wie wenn der Drehschalter an der RoCon auf Position 6 ("1x Hahn") gestellt und der Modus gestartet wird. Der Unterschied liegt darin, dass dieses Modul die Solltemperatur hochsetzt, wartet bis die Warmwasserbereitung gestartet ist und dann die Solltemperatur wieder auf den vorher eingestellten Wert setzt. Das hat den Vorteil, dass die Anlage das wie eine "normale" Warmwasserbereitung durchführt. Würde man das mit dem "1x Hahn" über die RoCon machen, passier es, dass die Warmwasserbereitung nicht der Kompressor sondern der Backupheater durchführt!
  • <HPSU.><Parameter> <Wert>
Einen Wert der RoCon einstellen.
Die Liste der verfügbar und einstellbaren Werte mit den zugehörigen Grenzen, sind in der "commands_hpsu.json" definiert. Es gibt mehrere Möglichkeiten, wie man einen RoCon Wert setzt. Zum Einen über die Weboberfläche mit jeweils einem Slider oder Dropdown Menü. Zum Anderen über die FHEM Befehlszeile. Hierbei ist es offen, ob man die ID oder den NAMEN eines Parameters übergibt. Fängt ein "set" mir "irgendwas." an, wird "irgendwas." ignoriert.


Nachfolgend ein paar Beispiele mit dem Setzen der Betriebsart (ID: mode_01 Namen: Betriebsart):


"set myHPSU HPSUVal.Betriebsart_[mode_01] Heizen"
Ab 70_HPSU.pm Version 1.11 (in Arbeit):
"set myHPSU HPSU.Betriebsart_[mode_01] Heizen"
"set myHPSU HPSUVal.Betriebsart Heizen"
"set myHPSU HPSU.Betriebsart Heizen"
"set myHPSU Betriebsart Heizen"
"set myHPSU mode_01 Heizen"

Get

get <name> <parameter>

  • UpdateJson
Die JSON Datei "commands_hpsu.json" neu lesen und parsen. Ggf. den Browser danach aktualisieren.
  • <HPSU.><Parameter> <Wert>
Einen Wert der RoCon lesen. Hiermit können auch Werte gelesen werden, welche verfügbar sind und nicht automatisch nach einem in der JSON vorgegebenen Zeitraster gelesen werden. Das Bedienen dieser Funktion verhält sich genauso wie mir der "set" Funktion.

Readings

Alle Gepollte, manuell angefragten und zu schreibende Wert werden automatisch als Reading angelegt. Die Werte die von und zu der HPSU gehen haben den Präfix: HPSU.<Parametername>

ToDo

Der Ursprung

ToDo Allgemein

Weblinks