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

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