Seit einer ganzen Weile steigt unsere Heizung regelmäßig beim Erhitzen von Warmwasser aus und möchte gerne zurückgesetzt werden. Zusammen mit dem Heizungsbauer meines Vertrauens sind wir auf der Suche nach dem Fehler, und da ich langsam keine Lust mehr hatte regelmäßig im Keller nachzusehen ob die Heizung noch läuft habe ich nach Möglichkeiten gesucht festzustellen ob die Heizung noch läuft.
Die Heizung ist eine Buderus GB 112W, rund 17 Jahre alt aber noch soweit in Schuss daß sie noch nicht ausgetauscht werden muß. Von einer Fernauslesbarkeit ggf. sogar über Netzwerk kann man allerdings bei so einem reifen Schätzchen lange träumen..
Wo man recht gut dran kommt sind die Heizungsrohre und so hab ich bei Amazon 5 Temperatursensoren Dallas DS18B20 im Edelstahlgehäuse gekauft und den schon seit einer Weile rumliegenden Raspberry Pi als Auslesegerät für die Sensoren konfiguriert. Ausgelesen werden nun die Temperatur von Warmwasserspeicher, dem Vorlauf der Heizkreises und des Warmwasserkreises, der gemeinsame Rücklauf und die Lufttemperatur im Zuluftschacht.
Die Dallas DS18B20 sind 1-Wire Sensoren die von aktuellen Linux Kernel Versionen ohne Zusatzsoftware ausgelesen werden können, am Raspberry sind sie am GPIO Pin 4 angeschlossen.
Da der Pi nur zum Auslesen dient und die Verarbeitung der eigentlichen Daten an anderen Stellen erfolgen soll, habe ich mal mit Node-Red rumgespielt um die Sensoren auszulesen und die Temperaturdaten per mqtt und HTTP Post an eine InfluxDB weiterzuverteilen.
InfluxDB läuft auf einem kleinen Odroid U2, der neben Grafana 2 noch diverse andere Dienste im Netz übernimmt, (DNS, DHCP, Sixxs IPv6 GW, Icinga).
Ein Grafana 2 Dashboard dient nun als Anzeige für die Heizungstemperaturen und Temperaturverläufe.
Raspberry Setup
Die Temperatursensoren sind mit einer Prototyp-Platine, 3 Pfostensteckern einem 4,7 KOhm Widerstand als Pull-Up zu 3.3V an den GPIO Pin 4 angeschlossen. Die aktuelle Version von Raspian bringt alles mit was man für das Auslesen von 1-Wire Sensoren braucht.
Beim aktuellen 3.18er Linux Kernel in Raspian muss man die Datei
/boot/config.txt
noch folgende Zeile ergänzen damit die 1-Wire
Sensoren beim Booten gefunden werden:
dtoverlay=w1-gpio,gpiopin=4,pullup=on
Die Netzwerkverbindung des RPi erfolgt über WLAN, da WLAN Verbindung allerdings im Keller eher mäßig ist, funktioniert die statische Konfiguration über die Debian intrefcaes Datei leider nur so lange bis das erste mal die Verbindung zum AP abreißt.
Mit der Umstellung auf Roaming mit nur dem gewollten WLAN Netz in der
Konfig verbindet sich wpa_supplicant
immer wieder zuverlässig zum WLAN
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
/etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
id_str="Wifi"
ssid="mySSID"
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP
psk="MyPassword"
}
Node-Red Setup
Das Node-Red Setup für den Raspberry Pi 1 ist auf der Node-Red Homepage beschrieben. Für das Auslesen der Dallas 1-Wire Sensoren braucht man noch ein zusätzliches Modul das man in der Node-Red Library findet.
InfluxDB Setup
InfluxDB gehört definitiv zum aktuellen “Hot Stuff”, geschrieben in Go. Da es ohne diverse Python Dependencies auskommt und Go Binaries ohne großen dependecies erstellt, lässt es sich auch im Gegensatz zu Graphite mit überschaubaren Aufwand auf einem Odroid übersetzen und installieren.
- Clonen von Github
- gvm installieren
- gvm use 1.4.2
- ./package.sh
git describe --tags
- dpkg -i influxdb-{version}
Grafana Setup
Grafana gibt es leider auch nicht als Debian Package für den Odroid also ist hier auch ein Source Build notwendig. Immerhin gibt es auf der Grafana Homepage auch eine Doku wie man Grafana aus den Sourcen baut. Hinterher hat man ein handliches Debian Paket zum installieren.