Moderne Heizungsanlagen bieten häufig den Zugriff auf Verbrauchs- und Temperaturwerke über ein optionales (meist auch proprietäres) Zusatzmodul.
Wenn allerdings die Heizung bereits seit einiger Zeit in Betrieb ist, Zusatzmodule nicht verfügbar sind oder wem die Ausgabe für die herstellereigenen Erweiterungen zu hoch sind, der kann bereits zu relativ geringen Kosten eine Temperaturüberwachung vornehmen.
Das nachfolgende Beispiel setzt auf eine Integration der Temperaturfühler in die OpenSource-Hausautomationssoftware FHEM auf, die wiederrum auf einem RaspberryPi installiert ist.
Einkaufsliste
- 1-Wire USB Adapter DS9490R 16,72 EUR
- 1-Wire Verteiler 8-fach 11,90 EUR
- 1-Wire Temperatursensoren DS18S20+ ca. 19,00 EUR für 10 Stück
- RJ45-Stecker ca. 10,00 EUR für 100 Stück
Werkzeug
- Seitenschneider
- Crimpzange für RJ45
Installation OWServer
Zum Auslesen der 1-Wiresensoren wird eine Zusatzsoftware benötigt. Im späteren Verlauf wird sich FHEM an die Schnittstelle dieses OWServers anbinden um die Daten aufzubereiten.
Der OWServer steht unter http://sourceforge.net/projects/owfs/files/latest/download?source=files zum Download bereit.
Für den Raspberry gibt es für Raspbian bereits ein vorkompiliertes Paket (owfs_2.8p17-1_all.zip). Dieses müssen nur heruntergeladen und installiert werden.
Die Installation erfolgt mit:
dpkg -i *.deb
Anschließend muss der OWServer noch konfiguriert werden. Dies geschieht über Anpassungen in /etc/owfs.conf.
mkdir /mnt/1wire/ nano /etc/owfs.conf mountpoint = /mnt/1wire/ allow_other fs: nozero server: port = 127.0.0.1:4304 /etc/init.d/owfs restart
Integration in FHEM
Anlegen eines Gerätes für OWServer
define OWServer OWServer localhost:4304
attr OWServer room Verwaltung,1wire
define FileLog_OWServer FileLog ./log/OWServer-%Y-%m.log OWServer
attr FileLog_OWServer logtype text
attr FileLog_OWServer room Logs
Anlegen der Temperatursensoren
Jeder Sensor wird in /mnt/1wire als separates Verzeichnis dargestellt. Hier lassen sich die eindeutigen ID ablesen.
cat /mnt/owfs/28.12345C060000/temperature
define TempSensor1 OWDevice 28.12345C060000 120 attr TempSensor1 IODev OWServer attr TempSensor1 model DS18B20 attr TempSensor1 room Heizung
Logdatei und Diagramm
define TemperaturenHeizkreislauf FileLog ./log/TemperaturenHeizkreislauf-%Y-%m.log TempSensor1:temperature:.* | TempSensor2:temperature:.* | TempSensor3:temperature:.* | TempSensor4:temperature:.* attr TemperaturenHeizkreislauf logtype text attr TemperaturenHeizkreislauf room Logs define TemperaturenHeizkreislauf_weblink SVG TemperaturenHeizkreislauf:my_temperaturen:CURRENT attr TemperaturenHeizkreislauf_weblink alias TemperaturenHeizkreislauf attr TemperaturenHeizkreislauf_weblink label "Min $data{min1}, Max $data{max1}, Last $data{currval1}" attr TemperaturenHeizkreislauf_weblink room Heizung
Plotdatei
nano /opt/fhem/www/gplot/my_heizkreislauf.gplot
set terminal png transparent size <size> crop
set output '<out>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<l1>'
set ytics
set y2tics
set grid y2tics
set ylabel ""
set y2label "Temperatur in C"
#FileLog 4:TempSensor1.temperature\x3a.(?!85)::
#FileLog 4:TempSensor2.temperature\x3a.(?!85)::
#FileLog 4:TempSensor3.temperature\x3a.(?!85)::
#FileLog 4:TempSensor4.temperature\x3a.(?!85)::
plot "<in>" using 1:2 axes x1y2 title 'Rücklauf DG (°C)' ls lw 0.5 with lines,\
"<in>" using 1:2 axes x1y2 title 'Rücklauf EG (°C)' ls l2 lw 0.5 with lines,\
"<in>" using 1:2 axes x1y2 title 'Rücklauf OG (°C)' ls l4 lw 0.5 with lines,\
"<in>" using 1:2 axes x1y2 title 'Vorlauf (°C)' ls l0 lw 0.5 with lines