Heliotherm RS232 Anbindung
Einklappen
X
-
Hallo dast!
Ich würde gerne meine Heliotherm per RS232 steuern. Hast du das schon gemacht?
Kannst du mir hier helfen?
Danke
lg
Hans -
Nun ist es soweit:
Die Ansteuerung bzw. Anbindung per Loxone der Wärmepumpe Heliotherm über die die serielle Schnittstelle mittels Raspberry Pi und LAN funktioniert.
Grund ist der tolle funktionstüchtige Webserver den Daniel (dast) mit Python programmiert und auf meinem Raspberry zu laufen gebracht hat. Er hat daraus einen Daemon gemacht damit ich ihn beim Booten starten kann.
Mit der Loxone Config fügt man einen Virtuellen Ein- und Ausgang hinzu und fragt die Werte ab bzw. setzt die Werte.
fettes MERCI an Daniel !!
3 BilderKommentar
-
@m.haunschmid:
Leider finde ich gerade keine Zeit das zu dokumentieren. Ich werde es mir aber jetzt einplanen damit ich das erledige. Melde mich dazu in der ersten Märzwoche. -
Ist überhaupt kein Thema, ich bin froh, dass es jemand mit einfachen mitteln hinbekommen hat (Ohne Moxa, Gateway usw.) und es hier preisgibt. Vielen Dank schon mal! -
Wow das würde ich auch gerne bei mir Zuhause in meine LOX integrieren... welche Type von Heliotherm ist es den? Meine ist jetzt 9 Jahre alt, mit Webcontrol und einer RS232 Schnittstelle. Meine Type HP12E-WEB.
Nachdem ich mich mit Raspberry 0 beschäftigt habe, wollte ich fragen ob du das mit der LOX RS232 auch probiert hast?
-
-
Hi!
Hier dürfen nur Ganze Zahlen verwendet werden. Auch der Bereich ist eingeschränkt siehe Doku von Daniel.
Anbei ein Bild wie das in der LoxoneConfig aussieht. Die Betriebsart wird mit Radiotasten umgeschaltet, die Werte werden mittels Virtueller Eingang (Schieber mit 1°C-Schritten) übergeben.
lgZuletzt geändert von Strauchi78; 09.01.2019, 10:46.Kommentar
-
Hi ! Ist ja toll. Ich hab auch eine Heliotherm WP und dachte immer für die Anbindung muss man eine MoxaNPort Express DE-311 nehmen oder gar ein Remote Control Gateway von Heliotherm. Aber du nimmst gleich den Raspi und nicht mal eine Lox RS232 Extension.
In anderen Foren wurde da mit php code ausgelesen. Hast du da ein wenig mehr Info für mich ?
LG BoomerangZuletzt geändert von Boomerang; 01.02.2019, 02:22.LOXONE: seit Dez2011: 1 MS, 1wire-Ext, DMX-Ext
LOXCONFIG: v7.1.9.30 (ab Okt14), v7.1.12.31 (ab Jän15) zuletzt editiert 3.2018
KNX: Aktoren: Jung 6x16SA 2x4DA 5x8JA Sensoren: Merten Fläche
JAL: Metalunix (mit rudimentärer EIB-JAL Ansteuerung)Kommentar
-
@Boomerang:
Du benötigst einen Raspberry Pi (ich hab einen alten 2er verwendet) mit Gehäuse sowie ein USB-232 Kabel (https://www.amazon.de/gp/product/B00...?ie=UTF8&psc=1)
ein 5V Hutschienennetzteil
micro usb kabel für die Versorgung aus dem Netzteil
Nachdem ich gestern und heute dazu gekommen bin hab ich mal mit notiert was ich gemacht habe damit der blanke Raspberry pi die Daten per http zur Verfügung stellt:
#raspian strech lite runterladen und entpacken
#mit win32diskimager auf 4GB SD aufspielen
#mit hdmi-Monitor und USB-Tastatur starten
#einloggen mit pi und passwd: raspberry (Taste z=y)
sudo raspi-config
#interface options -> SSH aktivieren
#localization options -> einstellungen für Sprache und tastatur, zeitzone vornehmen
#finish
sudo reboot
#mit advanced IP Scanner die IP des Raspberry rausfinden
#mit putty per PC mittels SSH auf den raspberry verbinden
#nach dem einloggen feste IP einstellen:
sudo nano /etc/dhcpcd.conf
#Anzeigebeispiel: <<<
interface eth0
static ip_address=192.168.0.156/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1 8.8.8.8
>>>
#(speichern und aussteigen, rebooten) ->
sudo reboot
#mit putty per PC mittels SSH auf den raspberry mit fixer (neuer) IP verbinden
#nach dem einloggen:
sudo apt-get update
sudo apt-get dist-upgrade
sudo reboot
#nun git installieren:
sudo apt-get install git
#klonen:
git clone https://github.com/dstrigl/htheatpump.git
sudo apt-get install python3-dev libffi-dev libssl-dev -y
wget https://www.python.org/ftp/python/3....n-3.6.3.tar.xz
tar xJf Python-3.6.3.tar.xz
cd Python-3.6.3
./configure
make
sudo make install
sudo pip3 install --upgrade pip
cd /home/pi/htheatpump/samples
sudo nano hthttp.py
#IP Adresse ändern, Port kontrollieren, mit Strg+O speichern und mit Strg+X aussteigen
#testen:
sudo python3 hthttp.py start
tail /tmp/hthttp-daemon.log
#stehen keine fehler drinnen sollte es passen
#vom Netzwerk testen im Browser am PC im Netzwerk:
http://IP-Adresse.des.raspi:Portnummer
#Es sollen nun die ausgelesenen Parameter der Wärmepumpe angezeigt werden
#--> Autostart im crontab eintragen:
sudo crontab -e
#eintragen:
@reboot sudo python3 /home/pi/htheatpump/samples/hthttp.py start
#mit strg+o speichern und mit strg+x aussteigen
#neustarten
sudo reboot
#nach dem erneuten verbinden mit putty einloggen und den start kontrollieren:
tail /tmp/hthttp-daemon.log
#stehen keine fehler drinnen sollte es passen
Nachdem der Aufruf aus dem Browser klappt kann in der LoxoneConfig der Virtuelle Eingang angelegt werden:
In den Eigenschaften: URL (also die des raspi bei mir): http://192.168.0.156:8080
Abfragezyklus: (bei mir 20s)
Timeout nach 4000ms
Virtueller "HTTP Eingang Befehl" einfügen
hier ein Beispiel
Befehlerkennung: \iTemp. Brauchwasser": \i\v
Bedeutet er sucht nach der Abfrage den Text
Temp. Brauchwasser":
und holt den Wert ab
Bei Anzeige Einheit kann man die Nachkommastellen und die Einheit eingeben
thats allZuletzt geändert von Strauchi78; 26.03.2019, 21:09. -
Besteht eigentlich auch die Möglichkeit die Werte der WP per UDP weiterzugeben?
Wär es möglich einen Screenshot der Seite mit den Werten zu bekommen? Kann ich auf der Seite selbst schon Änderungen vornehmen oder geht das dann nur über die Loxone Oberfläche?
-
-
Erstmal vielen Dank an Strauchi78 und natürlich auch an dast!
Hab die Kommunikation mit der WP hinbekommen!
Leider gings dann doch nicht so auf Anhieb wie laut Anleitung beschrieben. Beim Ausführen von "sudo python3 hthttp.py start" kam nämlich erstmal die Fehlermeldung: "ModuleNotFoundError: No module named 'htheatpump' " (Bild) .Nach einiger Suche im Netz habe ich dann diesen Beitrag gefunden: "https://stackoverflow.com/questions/...-in-python-3-6" .In diesem Beitrag habe ich dann rausgelesen, dass es wohl an der Ordnerstruktur liegt und habe kurzerhand mal den Ordner "htheatpump" in den Ordner "samples" verschoben. Und siehe da.... es wird schon wärmer. Diesmal kam noch die Fehlermeldung "import serial: no module named serial". Hier musste ich lediglich mit dem Befehl " "sudo pip install pyserial" das Modul nachinstallieren. Danach funktionierte die Verbindung. Alle Werte werden über IP und Port angezeigt.
Was ich aber noch nicht ganz verstanden habe ist, wie das mit dem Setzen der Werte funktioniert...
Über putty kann ich alle im "samples" Ordner vorhandenen Befehle ausführen, also htquery.py, htset.py, htdatetime.py usw. und bekomme die Rückmeldungen dazu.
Aber wie stelle ich das in der Loxone Config an? Hättet ihr hierzu einen Denkanstoß für mich?
Eventuell mal einen Auszug, was im virtuellen Ausgangsbefehl einzutragen ist wäre sehr hilfreich.
Danke schonmal
Mfg Michael
Fehlermeldung beim Ausführen von hthttp.py
Kommentar
-
Sodala. Hab jetzt auch die Ausgänge zum Laufen gebracht, danke für die Hinweise. Hatte ein wenig zu kompliziert gedacht bzw. das Manual nicht gelesen....Werd deine Anleitung, wenn ich dazukomme nochmal neu zusammenfassen, falls das in Ordnung geht. Eine Frage hätte ich noch und zwar wie du das "Heliotherm online" realisiert hast. -
Das geht auf jeden Fall in Ordnung. Die Online Meldung kommt von einem Ping-Baustein. -
Ah ok. So erkennt man schonmal ob der Raspberry im Netzwerk ist. Ich wollte aber auch prüfen, ob die Verbingung zur WP steht. Da man das aktuelle Datum samt Uhrzeit über die Webpage nicht abrufen kann (nur synchronisieren) um diese in Loxone zu vergleichen musste ein anderer Weg her. Deshalb habe ich bei mir folgendes gemacht: Ich rufe die Webpage alle paar Minuten über Node-Red auf und prüfe ob die Seite Werte liefert. Ist diese nicht erreichbar (RS232 Verbindung unterbrochen oder hthttp.py Programm / Raspberry offline) Wird der Virtuelle Eingang auf 0 = offline gesetzt. Kommen Werte wird dieser auf 1 = online gesetzt.
dast Vielleicht könnte man den Aufruf "http://iport/datetime/sync" mit sowas wie "http://iport/datetime/read" erweitern?
-
-
Hallo zusammen,
habe auch eine Heliotherm Wärmepumpe und möchte die einbinden.
Habe das Script auch soweit auf dem RPI zum laufen gebracht.
Leider bekomme ich keine Verbindung.
Meine Frage ist jetzt ob ich vorher umbedingt etwas von Helitherm installieren oder freischalten lassen muss? Habe noch nichts und hatte noch nicht weiter an meiner Wärmepumpe dran (RCG oder Modem).
Wenn ich unter den Einstellungen das Modem anwähle passiert nichts außer dass die Wärmepumpe wieder aus dem Menü springt. Kann also nichts unter Modem oder so anwählen.
Kann mir wer weiterhelfen?
DankeKommentar
-
Hallo zusammen,
meine nächste Aufgabe besteht darin meine HT WP in meine Loxone Oberfläche einzubinden. Ich hab diese Anleitung noch nicht versucht.
Stell mir im Moment jedoch die Frage - einen zweiten Raspberry anschaffen und in der WP mit unterbringen.
Auf der Kostenseite wäre die Frage recht einfach zu beantworten. Komfortseitig würde ich die RS232 Extension von Loxone mein Favorit.
Daher meine Frage ob es schon jemand mit der Extension geschafft hat?Kommentar
-
Guten Abend zusammen.
Ich kämpfe mich (mit bescheidenem Wissen um python & co) durch die Materie und bin "eigentlich fast da"... nur der hthttp.py will nicht als daemon (systemd auf armbian).
Zunächst mal vielen Dank an dast für die unglaubliche Arbeit!!
Was geht: hthttp.py als user ausführen - Verbindet sich, holt die Seriennummer und Firware-Version, trennt sich, und läuft dann brav als webserver. Kommando dafür:
Code:/opt/htheatpump/daemon-dirs/hthttp.py start --device /tmp/ttyVCOMHTWP --baud 19200 --ip 10.0.0.10 --port 9999 --verbose
DAS läuft so, wenn ich eben hthttp.py "von hand" starte. Letzte Zeilen im Log nach dem Start (bevor man weitere Queries per URL absetzt):
Code:[2019-10-24 23:41:13,431][INFO ][htheatpump.htheatpump|logout]: logout successfully [2019-10-24 23:41:13,497][INFO ][__main__|run]: Starting server at: ('10.0.0.10', 9999)
So, nun soll er das halt auch automatisch machen, als systemd-Daemon. Ich bilde mir ein, da alles richtig zu machen, denn ich kann letztlich mit systemctl den daemon starten. Nur: er "stirbt" nach dem ersten automatischen Abruf von Seriennummer und/oder Firmware jedes Mal und ist dann eben nicht erreichbar. Er stirbt an unterschiedlichen Stellen, mal kommt er bis zum "logout successfully", mal bleibt er beim Query für Firmware hängen, z.B. hier:
Code:[2019-10-25 00:04:19,207][DEBUG ][htheatpump.htheatpump|send_request]: send request: [b'\x02\xfd\xd0\xe0\x00\x00\t~SP,NR=9;\xdc']
Es scheint, als wäre er im "daemon Modus" irgendwie zu schnell für die Wärmepumpe oder so. Aber da ich in beiden Fällen den selben --baud 19200 nehme (und das auch im MOXA eingestellt ist) ... keine Idee was hier los ist!?
Wäre toll wenn jemand einen Tipp hätte.
Gute Nacht
Kommentar
-
Gast: Wie sieht denn dein systemd File aus? Das Problem ist vermutlich, dass die hthttp.py Applikation einen Fork macht, was der systemd Dienst nicht mag.
Ansonsten probier doch bitte mal das (angepasste) hthttp.py ohne Fork im Anhang dieses Post.Angehängte DateienKommentar
-
@dast: traumhaft. Die "Dämonenaustreibung" scheint es zu sein, läuft momentan, läuft auch nach einem reboot und anschließendem automatischen service-Start. Hatte das Thema "(double) fork magic in Python" und dann noch "eingepackt im Daemonizing durch systemd" heute früh auch noch anderweitig entdeckt... hätte aber im Leben nicht gewusst, was ich in deiner hthttp "ent-Dämonifizieren" müsste. Ich baue mal weiter an meiner Gesamtlösung und wenn fertig gibt es hier einen Gesamt-Bericht.
-
-
Hallo Leute,
leider ist mein Heliotherm Gateway (RCG2) defekt und das natürlich außerhalb der Garantiezeit.
Da ich aber seit kurzem einen Loxberry im Einsatz habe möchte ich die Heliotherm WP direkt per RS232 (USBtoRS232 Adapter am Loxberry) auslesen.
Kann mir da jemand behilflich sein?
Gibts dazu ein Loxberryplugin oder eine Anleitung?
Ich bin für jeden Tipp & Starthilfe sehr dankbar .
greetings rageKommentar
-
Hallo rage,
ich hab dir zwar schon mal geantwortet, aber scheinbar hast du meine Nachricht nicht bekommen.
Also, mit Hilfe meiner kleinen Open Source Applikation HtREST (https://github.com/dstrigl/HtREST) kannst du recht einfach deine Loxone mit der Heliotherm WP koppeln.
Die HtREST Applikation fungiert dabei als REST Server, welcher GET und PUT Anfragen entgegennimmt und diese an die WP weiterleitet.
Loxberry Plugin oder dergleichen gibt es leider nicht, ich muss gestehen, dass ich mit damit auch nicht auskenne.
Ich hab selber nicht mal eine Loxone *grins* ...
Für die Kopplung brauchst du aber auch kein Loxberry.
Was du benötigst ist zuerst mal ein Raspberry Pi der per serieller Schnittstelle (z.B. mittels USBtoRS232 Adapter) mit der Wärmepumpe verbunden ist.
Desweiteren brauchst du die an der WP eingestellte Baudrate (kann mittels Benutzer "Fachmann" ausgelesen bzw. geändert werden) und unter welchem Device am RPi die serielle Schnittstelle zu finden ist (z.B. /dev/ttyUSB0).
Ist dies bekannt und die Verbindung zwischen RPi und WP steht, kannst du zuerst mal die HtREST Applikation am RPi installieren.
Dazu mittels ssh verbinden und als ersten mal ein virtual environment (venv) für die HtREST Applikation erstellen, damit du dir nicht die system-eigene Python-Umgebung versaust.
Das ganze geht mittels:
Code:mkdir /home/pi/venv cd /home/pi/venv python3 -m venv htrest
Code:sudo apt-get install python3-dev sudo apt-get install python3-venv
Code:source /home/pi/venv/htrest/bin/activate
Danach kannst du auch gleich das HtREST Package installieren:
Code:pip install htrest
Code:htrest -d /dev/ttyUSB0 -b 115200 --host 192.168.11.99 --port 8888
Und wenn du den Server per Hand startest muss immer die venv (htrest) aktiviert sein.
Wenn der HtREST Server jetzt läuft, kannst du von deinem PC aus auf das Swagger UI per Webbrowser schauen und probieren ob das ganze funktioniert:
Code:[URL]http://192.168.11.99:8888/api/v1/[/URL]
In der Swagger UI kannst du dann die verschiedenen unterstützten API-Befehle austesten.
Aber Vorsicht:
Du kannst damit jegliche Parameter auf der WP verstellen und dir damit die WP beschädigen!
Ich übernehme hier keinerlei Garantie oder Gewährleistung!
Am besten am Anfang den HtREST Server mittels "--read-only" starten, dann führt dieser keine Schreibbefehle aus, sondern unterstützt nur das Lesen von der WP.
Code:htrest -d /dev/ttyUSB0 -b 115200 --host 192.168.11.99 --port 8888 --read-only
Dazu sollte es genügend Doku auf der Loxone Seite geben bzw. hier im Forum ...
Aber eines nach dem anderen ...
Wenn das obige soweit funktioniert, melde dich nochmal, dann beschreibe ich dir kurz wie das automatische Starten der HtREST Applikation (beim Bootvorgang) per Service funktioniert.
Ich hoffe das hilft dir soweit mal.
Anmerkung:
Please note that any incorrect or careless usage of this module as well as errors in the implementation can damage your heat pump!
Therefore, the author does not provide any guarantee or warranty concerning to correctness, functionality or performance and does not accept any liability for damage caused by this module, examples or mentioned information.
Thus, use it on your own risk!
LG Daniel.Zuletzt geändert von dast; 16.04.2020, 10:33.Kommentar
-
Hallo dast ... WOW! Danke für die ausführliche Starthilfe... ich bin auch schon halbwegs weit gekommen, doch leider stehts beim Verbindungsaufbau zur WP.
Hier der output aus der shell:
(htrest) root@loxberry:/home/pi/venv# htrest -d /dev/ttyUSB0 -b 57600 --host 192.168.1.88 --port 8899 --read-only
HTHEATPUMP: load parameter definitions from: /home/pi/venv/htrest/lib/python3.7/site-packages/htheatpump/htparams.csv
Namespace(baudrate=57600, bool_as_int=False, debug=False, device='/dev/ttyUSB0', host='192.168.1.88', logging_config='/home/pi/venv/htrest/lib/python3.7/site-packages/htrest/logging.conf', no_param_verification=False, port=8899, read_only=True, user='')
2020-04-16 14:58:17,779 INFO [htrest.app] open connection to heat pump (<htheatpump.htheatpump.HtHeatpump object at 0xb5e2a690>)
2020-04-16 14:58:22,787 WARNING [htheatpump.htheatpump] login try #1 failed: data stream broken during reading response header
2020-04-16 14:58:27,902 WARNING [htheatpump.htheatpump] login try #2 failed: data stream broken during reading response header
2020-04-16 14:58:33,016 WARNING [htheatpump.htheatpump] login try #3 failed: data stream broken during reading response header
2020-04-16 14:58:33,125 ERROR [htheatpump.htheatpump] login failed after 3 try/tries
2020-04-16 14:58:33,126 ERROR [htrest.app] login failed after 3 try/tries
2020-04-16 14:58:38,127 WARNING [htheatpump.htheatpump] logout failed: data stream broken during reading response header
Traceback (most recent call last):
File "/home/pi/venv/htrest/bin/htrest", line 11, in <module>
load_entry_point('htrest==0.1.7', 'console_scripts', 'htrest')()
File "/home/pi/venv/htrest/lib/python3.7/site-packages/htrest/__main__.py", line 186, in main
args.no_param_verification,
File "/home/pi/venv/htrest/lib/python3.7/site-packages/htrest/app.py", line 50, in create_app
ht_heatpump.login()
File "/home/pi/venv/htrest/lib/python3.7/site-packages/htheatpump/htheatpump.py", line 678, in login
raise IOError("login failed after {:d} try/tries".format(retry))
OSError: login failed after 3 try/tries
(htrest) root@loxberry:/home/pi/venv#
Hast du vl. noch einen Tipp für mich?
Ich kann dir auch gerne SSH Zugang zu meinem RPi/Loxberry geben .
greetings rageKommentar
Kommentar