ich möchte euch in diesem kleinen Tutorial beschreiben, wie ihr euren Fröling-Heizkessel mit 3100-Steuerung (z.B. Fröling FHG-Turbo 20kw) über die COM-Schnittstelle in das Homematic-System einbindet.
Nach langer Suche bin ich im mikrocontroller-Forum fündig geworden, denn für den P4 Kessel mit 3200-Steuerung geht es etwas einfacher da er bereits einen "echten COM-Anschluss" besitzt.
So nun auf geht´s
1.) welche Hardware wird benötigt ?
- Raspberry PI 3+ https://www.amazon.de/Raspberry-1373331 ... ers&sr=1-3 (ca.35€)
- microSDHC-Karte 16GB Class 10 https://www.amazon.de/SanDisk-Ultra-mic ... 153&sr=1-2 (ca.7€)
- Netzteil https://www.amazon.de/Aukru-Micro-USB-L ... ers&sr=1-5 (ca.10€)
- Nullmodemkabel https://www.amazon.de/InLine-12225-verg ... way&sr=8-5 (ca.10€ je nach Wunschlänge)
- RS232 Erweiterungsplatine https://www.conrad.de/de/p/rs232-erweit ... 37093.html (ca.10€)
- Jumper-Kabel female/female https://www.amazon.de/Aukru-20cm-female ... way&sr=8-6 (ca.4€)
- Gehäuse je nach Einsatzbereich wählbar (ca.6€ - 15€)
2.) Installation
- Raspberry Noobs downloaden https://www.raspberrypi.org/downloads/noobs/
- Win32 Disk Imager downloaden https://sourceforge.net/projects/win32diskimager/
- Erweiterungsplatine einbauen (Anleitung liegt bei)
- Raspberry Image auf SD-Karte schieben
- HDMI Kabel , Maus, Tastatur, Strom an den Raspi stecken und SD-Karte einschieben und los geht´s Noobs ist selbst erklärend fast wie Windows eine Step by Step installation
- Danach empfehle ich gleich den root-User zu konfigurieren und ein Passwort zu vergeben. In der Kommandozeile/LX-Terminal folgendes eingeben:
Code: Alles auswählen
sudo passwd root
Über Shutdown -> Logout mit dem Root-User anmelden
- Um den Raspberry Pi bequem per Remotedesktopverbindung von einem anderen Windows-PC aus zu konfigurieren, muss xrdp installiert werden.
Der Remoteserver VNC ist zwar integriert, der sich aber mit xrdp leider nicht verträgt. In dem Fall sollte man VNC entfernen, bevor man xrdp installiert.
Code: Alles auswählen
sudo apt-get purge realvnc-vnc-server
Code: Alles auswählen
sudo apt-get install xrdp
Wir öffnen /boot/config.txt file mit
Code: Alles auswählen
sudo nano /boot/config.txt
Code: Alles auswählen
# Disable Bluetooth
dtoverlay=pi3-disable-bt
gefolgt von den Befehlen
Code: Alles auswählen
sudo systemctl disable hciuart.service
sudo systemctl disable bluealsa.service
sudo systemctl disable bluetooth.service
Code: Alles auswählen
apt-get update
apt-get upgrade
apt-get dist-upgrade
rpi-update
Code: Alles auswählen
reboot
https://www.mikrocontroller.net/attachm ... rry_pi.zip
Ich habe sie ins home Verzeichnis des Benutzers root entpackt. Die enthaltene Readme Datei bitte lesen ist fast selbst erklärend
- So nun gehts an das Nullmodemkabel ..... da die Heizung keinen "echten COM-Port" (Anschluss) besitzt habe ich die beiden Kabel-Enden mit einem Cutter geöffnet da wir ja nur 3 Kabel benötigen (RX,TX,GND) aber die Belegung so nicht sichtbar ist. Jetzt kommen die Jumper-Kabel zum Einsatz....
Wir öffnen den Deckel der Bedieneinheit der Heizung und sehen auf dem Mainboard den Bedienerweiterungsanschluss hier habe ich die female Jumper-Kabel auf die male-Anschlüsse gesteckt (Rx,Tx,GND) am anderen Ende der Jumper-Kabel je 1 male/male Stück gesteckt. Die jetzt fertigen Enden mit einem Lötkolben an je ein Kabel vom Nullmodemkabel gelötet (Farbe des Kabels merken). Das andere Kabelende die passenden Farben an den frei gelegten Stecker anlöten aber aufpassen !!!!!
Rx = 2<->3 = Tx
Tx = 3<->2 = Rx
GND = 5<->5 = GND
Die Steckerbelegung welcher PIN was ist findet ihr auf google zu genüge.....
Wichtig vor dem Anschluss an die Heizung Strom abstellen !!!
- So nun nachdem alles angeschlossen ist wechseln wir im root Verzeichniss in den Ordner des Loggers mit
Code: Alles auswählen
cd froeling_p3100_logger
Code: Alles auswählen
./froeling_p3100_logger 3 5 60 1
sollte nichts passieren dann müssen wir den seriellen Anschluss noch im Programmcode ändern hierzu bitte folgendes erledigen:
Die Datei (froeling_p3100_logger.c) öffnen und in Zeile 680 ca. sollte so geändert werden
Code: Alles auswählen
char *ComPort[] = {"/dev/ttyS0","/dev/ttyS1","/dev/ttyAMA0","/dev/ttyUSB0","/dev/ttyUSB1","/dev/ttyS3","/dev/ttyS4"};
das ganze speichern und nun ein Terminal Fenster in diesem Ordner öffnen und folgenden Befehl eingeben um ein neues File zu erstellen
Code: Alles auswählen
Makefile
Code: Alles auswählen
cd froeling_p3100_logger
Code: Alles auswählen
./froeling_p3100_logger 3 5 60 1
Ich hoffe die Erklärung war halbwegs verständlich geschrieben .... für Fragen stehe ich natürlich gerne bereit !!
Wichtig wer seine Daten im Browser sehen möchte muss auf dem Raspi noch (Apache2, PHP) installieren alle erforderlichen Programme liegen im Logger-Verzeichnis bereits bei ! bei Fragen einfach melden
- Mit dem nachfolgende Script sende ich die Daten vom Raspi an die CCU
Code: Alles auswählen
#!/bin/bash
>/root/CCU/Rohdaten.txt
>/root/CCU/PufferOben.txt
>/root/CCU/PufferUnten.txt
>/root/CCU/KesselTemp.txt
>/root/CCU/BoilerTemp.txt
>/root/CCU/VorlaufTemp.txt
>/root/CCU/RaspiTemp.txt
sed "s/.* //" /root/froeling_p3100_logger/actual_data.txt >> /root/CCU/Rohdaten.txt
sed -ne '17p' /root/CCU/Rohdaten.txt >> /root/CCU/PufferOben.txt
sed -ne '18p' /root/CCU/Rohdaten.txt >> /root/CCU/PufferUnten.txt
sed -ne '6p' /root/CCU/Rohdaten.txt >> /root/CCU/KesselTemp.txt
sed -ne '19p' /root/CCU/Rohdaten.txt >> /root/CCU/BoilerTemp.txt
sed -ne '22p' /root/CCU/Rohdaten.txt >> /root/CCU/VorlaufTemp.txt
sed "s/\(...\)$/.\1/" < /sys/class/thermal/thermal_zone0/temp >> /root/CCU/RaspiTemp.txt
PO=$(sed -ne '17p' /root/CCU/Rohdaten.txt)
PU=$(sed -ne '18p' /root/CCU/Rohdaten.txt)
KT=$(sed -ne '6p' /root/CCU/Rohdaten.txt)
BT=$(sed -ne '19p' /root/CCU/Rohdaten.txt)
VT=$(sed -ne '22p' /root/CCU/Rohdaten.txt)
RT=$(sed -ne '1p' /root/CCU/RaspiTemp.txt)
curl -s -k "http://192.168.xxx.xx:8181/rega.exe?x=dom.GetObject(14514).State(${PO})"
curl -s -k "http://192.168.xxx.xx:8181/rega.exe?x=dom.GetObject(14515).State(${PU})"
curl -s -k "http://192.168.xxx.xx:8181/rega.exe?x=dom.GetObject(14516).State(${BT})"
curl -s -k "http://192.168.xxx.xx:8181/rega.exe?x=dom.GetObject(14517).State(${VT})"
curl -s -k "http://192.168.xxx.xx:8181/rega.exe?x=dom.GetObject(14518).State(${KT})"
curl -s -k "http://192.168.xxx.xx:8181/rega.exe?x=dom.GetObject(14478).State(${RT})"
exit 0
Das ganze gesteuert über crontab alle 5 Minuten und schon sind alle mir wichtigen Werte der Heizung in der CCU. Anpassbar natürlich an Lust und Laune
So nachdem der Raspi damit nicht gerade gefordert ist (1% Last) und trozdem 5Watt Stromverbrauch hat habe ich ihn dazu genötigt nebenbei noch nach COINS zu schürfen um zumindest den Stromverbrauch wieder zu bekommen (es funktioniert relativ gut ca. 25Cent im Monat Ertrag) bei Fragen hierzu einfach melden.
Vielen Dank an alle hier im Forum für eure Hilfe bei meinen Problemen und Fragen ich hoffe ich kann hier etwas wieder zurück geben.