Heliotherm (Open Source)
Eine kleine Warnung vorweg:
Da sich mit Hilfe der hier beschriebenen Informationen jegliche Parameter der Heliotherm Wärmepumpe verändern lassen, besteht die Möglichkeit sich durch unsachgemäßes bzw. unbedachtes Verhalten die Wärmepumpe und/oder zugehörige Komponenten zu beschädigen.
Der Autor übernimmt daher keinerlei Garantie oder Gewährleistung in Bezug auf Richtigkeit oder Funktionalität und übernimmt keinerlei Haftung für Schäden, die durch diese Informationen hier verursacht werden!
Das folgende Dokument beschreibt in einer einfachen Schritt für Schritt Anleitung, wie mit Hilfe der Open Source Applikation HtREST eine Heliotherm Wärmepumpe an eine Loxone Steuerung angebunden werden kann.
Benötigte Hardware & Anbindung
Benötigt wird für die Kopplung nur
ein Raspberry Pi
mit Netzwerkanbindung (kabelgebunden oder per WLAN spielt dabei keine Rolle) und
serieller Verbindung zur Heliotherm Wärmepumpe, z.B. mittels USB auf RS232 Adapter.
Für die serielle Verbindung zur Regeleinheit der Wärmepumpe (D-Sub Stecker -X26 "Modem COM") wird ein ausgekreuztes 9-poliges RS232-Kabel (Nullmodemkabel) benötigt.
Einen möglichen Aufbau zeigen z.B. die folgenden beiden Fotos:
Der Aufbau besteht hier aus einem
Zero4U 4-Port USB Hub an dem
ein USB auf RS232 Adapter für die serielle Verbindung zur Wärmepumpe und
ein USB auf RJ45 Ethernet Netzwerkadapter für die Anbindung ans Heimnetz
angeschlossen ist.
Das ganze montiert auf dem noch freien Platz auf der Hutschiene in der Wärmepumpe.
Natürlich ist es auch möglich den Raspberry Pi außerhalb der Wärmepumpe zu platzieren und nur das serielle RS232-Kabel in die Wärmepumpe zu führen.
Vorbereitung
Als Betriebssystem am Raspberry Pi reicht das Raspbian Buster Lite (Minimal image based on Debian Buster) ohne Desktop-Unterstützung, rein nur mit Konsole.
Für den Zugriff auf den Raspberry Pi wird weiters ein ssh-Zugang benötigt.
Wie dieser aktiviert werden kann ist z.B. hier beschrieben:
https://www.raspberrypi.org/documentation/remote-access/ssh/
Zu empfehlen ist es, dem Raspberry Pi auch gleich eine statische IP-Adresse zu spendieren und ihm einen geeigneten Hostnamen zuzuweisen.
Anleitungen dazu finden sich zur genüge im Netz:
https://www.elektronik-kompendium.de/sites/raspberry-pi/1912151.htm
https://www.elektronik-kompendium.de/sites/raspberry-pi/2007021.htm
Des Weiteren sollte man dann auch gleich kontrollieren, ob Datum und Uhrzeit stimmt oder noch besser die automatische Synchronisierung per NTP einrichten.
Zu beachten ist hier, dass man die richtige Zeitzone verwendet.
Eine ausführliche Beschreibung dazu findet man z.B. hier:
https://raspberrytips.com/time-sync-raspberry-pi/
Installation & Test
Sind diese Grundvoraussetzungen erfüllt, kann auch gleich mit der eigentlichen Installation der benötigten Softwarepakete begonnen werden.
Zuerst verbinden wir uns mittels ssh mit dem Raspberry Pi und führen eine Aktualisierung aller Paketquellen und der installierten Pakete durch:
pi@htrest:~ $ sudo apt-get update && sudo apt-get upgrade -yAnschließend installieren wir noch das benötigte Paket zum Erstellen von virtual environments unter Python:
pi@htrest:~ $ sudo apt-get install python3-venv -ySomit können wir die benötigte HtREST Applikation in einer eigenen, isolierten Umgebung installieren und bewahren uns somit vor möglichen Versionskonflikten installierter Python Pakete.
Python 3.7 oder neuer sollte bereits installiert sein, was ganz einfach mittels folgendem Aufruf überprüft werden kann:
pi@htrest:~ $ python3 -V
Python 3.7.3Danach erstellen wir uns die bereits oben erwähnte virtuelle Arbeitsumgebung (virtual environment) für die HtREST Applikation:
pi@htrest:~ $ mkdir /home/pi/venv
pi@htrest:~ $ python3 -m venv /home/pi/venv/htrest
Diese virtuelle Arbeitsumgebung muss dann noch mittels
pi@htrest:~ $ source /home/pi/venv/htrest/bin/activateaktiviert werden.
Ob eine virtuelle Arbeitsumgebung gerade aktiv ist, lässt sich sehr schön daran erkennen, dass der Name der aktiven (virtuellen) Arbeitsumgebung in Klammern dem Kommandozeilen-Prompt vorangestellt wird:
(htrest) pi@htrest:~ $Verlassen lässt sich die virtuelle Arbeitsumgebung einfach mittels:
(htrest) pi@htrest:~ $ deactivateZum Installieren der HtREST Applikation innerhalb der virtuelle Arbeitsumgebung muss diese aber natürlich aktiviert sein.
Zur Installation selber reicht dann der folgende Aufruf:
(htrest) pi@htrest:~ $ pip install htrestHat das alles ohne Probleme funktioniert, kann die HtREST Applikation auch schon mal testhalber händisch gestartet werden:
(htrest) pi@htrest:~ $ htrest -d /dev/ttyUSB0 -b 115200 --host 192.168.11.99 --bool-as-int --read-onlyHier muss natürlich der richtige Pfad des seriellen Device und die IP-Adresse des Raspberry Pi auf dem die Applikation läuft entsprechend angepasst werden.
Die USB auf RS232 Adapter sind dabei meist unter /dev/ttyUSB0, /dev/ttyUSB1, usw. zu finden, einige wenige Typen allerdings auch unter /dev/ttyACM0, /dev/ttyACM1, usw.:
(htrest) pi@htrest:~ $ ls /dev/
autofs full loop3 mmcblk0p2 ram13 raw tty10 tty21 tty32 tty43 tty54 tty8 vcs vcsa5 video11
block fuse loop4 mqueue ram14 rfkill tty11 tty22 tty33 tty44 tty55 tty9 vcs1 vcsa6 video12
btrfs-control gpiochip0 loop5 net ram15 serial tty12 tty23 tty34 tty45 tty56 ttyAMA0 vcs2 vcsm-cma video13
bus gpiomem loop6 null ram2 serial1 tty13 tty24 tty35 tty46 tty57 ttyprintk vcs3 vcsu video14
cachefiles hwrng loop7 ppp ram3 shm tty14 tty25 tty36 tty47 tty58 ttyUSB0 vcs4 vcsu1 video15
char initctl loop-control ptmx ram4 snd tty15 tty26 tty37 tty48 tty59 uhid vcs5 vcsu2 video16
console input mapper pts ram5 stderr tty16 tty27 tty38 tty49 tty6 uinput vcs6 vcsu3 video18
cuse kmsg media0 ram0 ram6 stdin tty17 tty28 tty39 tty5 tty60 urandom vcsa vcsu4 watchdog
disk log media1 ram1 ram7 stdout tty18 tty29 tty4 tty50 tty61 v4l vcsa1 vcsu5 watchdog0
dma_heap loop0 mem ram10 ram8 tty tty19 tty3 tty40 tty51 tty62 vchiq vcsa2 vcsu6 zero
fb0 loop1 mmcblk0 ram11 ram9 tty0 tty2 tty30 tty41 tty52 tty63 vcio vcsa3 vhci
fd loop2 mmcblk0p1 ram12 random tty1 tty20 tty31 tty42 tty53 tty7 vc-mem vcsa4 video10Sollte ein anderer Port als der standardmäßig verwendete Port 8777 verwendet werden, so muss dieser natürlich auch noch mittels dem Argument "--port" angegeben werden.
Zu beachten ist auch, dass die verwendete Baudrate der seriellen Verbindung mit der Einstellung auf der Wärmepumpe übereinstimmen muss.
Diese lässt sich im Menü der Wärmepumpe unter "Modem", "Baud Rate" ändern.