Raumklima mit dem Raspberry PI überwachen, oder: Wann lüften?
Mit relativ einfachen Mitteln ist es möglich einige das Raumklima betreffend interessante Größen zu bestimmen, die etwa Auskunft darüber geben ob das Öffnen eines Fensters zu trockener Luft führt, oder ob Schimmelgefahr besteht. Mit Hilfe eines RaspyRFM Funkmoduls, der Timeseries-Datenbank influxDB und der Datenvisualisierung Grafana können informative Diagramme über Temperatur, absolute und relative Luftfeuchtigkeit, Taupunkt und mehr erzeugt werden, auf welche einfach über einen Webbrowser zugegriffen werden kann. An Hardware wird benötigt:
- Raspberry PI ab Version 2
- RaspyRFM Funkmodulaufsatz
- Pro Raum ein Funksensor, etwa ein TX29 DTH-IT von Technoline
Zunächst die erforderliche Software, wie in diesem Beitrag unter „Installation“ beschrieben, installieren.
Zunächst alle erforderlichen Bibliotheken und das RaspyRFM Python-Softwarepacket installieren. Im ist ein Skript enthalten welches die Sensordaten empfängt, dekodiert und auf einer HTML Seite zur Verfügung stellt:
apps/lacrossegw.py
Found RaspyRFM twin
RFM69 found on CS 1
Init complete.
mqtt init error
Waiting for sensors…
id: 98 room Druckerraum T: 15.2 °C RH: 43 % battery: OK init: false
id: 18 room Hauptraum T: 20.9 °C RH: 33 % battery: OK init: false
id: 8 room Nebenraum T: 21.6 °C RH: 32 % battery: OK init: false
id: 98 room Druckerraum T: 15.1 °C RH: 43 % battery: OK init: false
id: 18 room Hauptraum T: 20.9 °C RH: 33 % battery: OK init: false
Die Raumzuordnungen und weitere Parameter können in der Datei apps/lacrossegw.conf eingetragen werden:
{
"sensors": [
{
"id": "18",
"name": "Hauptraum",
"tMin": 19.5,
"tMax": 24,
"rhMax": 60,
"rhMin": 40,
"idOutside": "68"
},
{
"id": "8",
"name": "Nebenraum",
"tMin": 20,
"tMax": 25,
"rhMax": 60,
"rhMin": 40,
"idOutside": "68"
},
{
"id": "68",
"name": "Aussen"
}
]
}
Die Parameter tMin
, tMax
, rhMin
, rhMax
bestimmen wann die Werte im Webinterface in rot dargestellt werden. Mit idOutside
wird der Außensensor referenziert welcher für die weiter unten noch genauer erklärten Berechnungen herangezogen wird.
Das Webinterface kann standardmäßig über die Adresse http://<IP Raspberry>:8080
aufgerufen werden. Der Port kann über die obige Konfigurationsdatei geändert werden.

Für jeden Raum werden oben Temperatur und relative Luftfeuchtigkeit angezeigt. Bei Klick auf einen Raum werden weitere Messwerte eingeblendet:
- Absolute Luftfeuchtigkeit (AH)
- AHratio, Verhältnis zwischen absoluter Luftfeuchtigkeit innen und außen
- Taupunkt
- TF80, Temperatur bei der eine Luftfeuchtigkeit von 80 % erreicht wird (Schimmelgefahr!)
- TF60, siehe TF80
Messwerte in influxDB speichern und mit Grafana visualisieren
InfluxDB auf dem Raspberry installieren, z. B. nach dieser Anleitung.
InfluxDB Client für Python installieren:
sudo pip3 install influxdb
Das Pythonskript apps/lacrossegw.py
von oben legt beim ersten Start automatisch alles Nötige an:
- Eine Datenbank „sensors“ mit einer Datenverweildauer von einer Stunde
- Eine retention policy jeweils für eine Woche und ein Jahr
- Ein continous query jeweils 3 Minuten und 3 Stunden
Dieses Datenbankschema speichert die Rohdaten der Sensoren, welche pro Sensor ca. alle 10 s empfangen werden, für eine Stunde zwischen. Alle 3 Minuten werden die Durchschnittswerte der vergangen 3 Minuten berechnet und in eine „retention policy“ gespeichert. Diese reduzierten Datenpunkte werden ihrerseits für eine Woche aufgehoben und alle 3 Stunden wieder gemittelt und abgespeichert. Auf diese Weise kann die Grafanavisualisierung schnell einen größeren Zeitraum anzeigen ohne unnötig viel Datenpunkte. Die auf alle 3 Stunden reduzierten Daten werden für ein Jahr behalten, sollen größere Zeiträume vorgehalten werden kann einfach die obige retention policy abgeändert werden.
Grafana auf dem Raspberry PI installieren, z. B. nach dieser Anleitung
Nun steht standardmäßig unter der URL http://<Raspberry IP>:3000 das Grafana Webinterface zur Verfügung. Nach der Verknüpfung mit der influxDB in Grafana können Dashboards erstellt werden:

Relative und absolute Luftfeuchtigkeit
Spricht man von „Luftfeuchtigkeit“, ist damit meist die relative Luftfeuchtigkeit in % gemeint. Eine bestimmte Menge Luft kann abhängig von dessen Temperatur unterschiedlich viel Wasser speichern. Wärmere Luft kann größere Mengen an Wasserdampf aufnehmen als kalte. Diese relative Luftfeuchtigkeit gibt an, wieviel Wasserdampf die Luft im Verhältnis zum Aufnahmevermögen bei der momentanen Temperatur enthält. Das bedeutet, dass sich die relative Luftfeuchtigkeit in einem geschlossenen Raum ändert, wenn die sich dessen Temperatur, etwa durch Heizen oder Abkühlen, verändert. Hier einige Beispiele:
– Im Wohnzimmer herrscht eine Temperatur von 20 °C bei einer relativen Luftfeuchtigkeit von 50 %. Nun wird die Raumtemperatur auf 22 °C durch Heizen erhöht. Da die wärmere Luft mehr Wasserdampf aufnehmen könnte, aber noch die selbe Masse an Wasserdampf vorhanden ist beträgt die relative Luftfeuchtigkeit nun 45 %.
– Das Badezimmer hat eine Temperatur von 25 °C und er herrscht eine Luftfeuchtigkeit von 60 %. Durch Abkühlung sinkt die Lufttemperatur auf 20 °C. Die kleinere Aufnahmefähigkeit der abgekühlten Luft von Wasserdampf sorgt dafür dass die relative Luftfeuchtigkeit auf 80 % steigt.
Die relative Luftfeuchtigkeit in Räumen sollte ca. 40 % – 60 % betragen. Zu trockene Luft führt zur Austrocknung der Schleimhäute so dass man sich leichter Infektionen einfangen kann, zu feuchte Luft dagegen führt in Räumen zu Schimmelbefall. Bei Erreichen von 100 % relativer Luftfeuchtigkeit kann die Luft keinen weiteren Wasserdampf aufnehmen, so dass die Luft beginnt zu kondensieren.
Im Gegensatz zur Relativen gibt die absolute Feuchtigkeit an, welche Masse an Wasserdampf die Raumluft enthält. Sie wird in der Einheit g / m³ angegeben. Findet kein Luftaustausch statt und wird kein Wasserdampf, z. B. an Wände etc., abgegeben oder aufgenommen, bleibt die absolute Luftfeuchtigkeit auch beim Ändern der Temperatur konstant. Eine Raumluft mit der Temperatur 20 °C enthält z. B. bei einer relativen Luftfeuchtigkeit von 60 % die Masse von rund 10 g pro m³ Raumluft, d. h. die absolute Luftfeuchtigkeit beträgt hier 10 g / m³. Die absolute Luftfeuchigkeit kann errechnet werden, wenn Temperatur und relative Luftfeuchtigkeit bekannt sind.
Lüften oder nicht Lüften?
Angenommen an einem Wintertag wird im Badezimmer geduscht, so dass dort die relative Luftfeuchtigkeit auf 70 % bei einer Temperatur von 22 °C steigt. Außen herrscht eine Temperatur von 2 °C bei 85 % relativer Luftfeuchtigkeit. Kann die Luftfeuchtitkeit im Badezimmer unter diesen Bedingungen durch Öffnen des Fensters gesenkt werden?
Die korrekte Antwort lautet: JA!
Obwohl die Außenluft eine höhere relative Luftfeuchtigkeit hat als die Raumluft nach dem Duschen, muss hier aber die jeweilige absolute Luftfeuchtigkeit herangezogen werden:
T | RH | AH | |
Badezimmer | 22 °C | 70 % | 13,6 g/m³ |
Außen | 2 °C | 85 % | 4,7 g/m³ |

Die kleine Zahl gibt die theoretisch erreichbare Veränderung der relativen Raumluftfeuchtigkeit an, wenn die beiden Luftmassen innen und ausgetauscht werden würden und die Luft innen wieder auf die vorherige Raumtemperatur gebracht werden würde. Bei einem Wert unter etwa -10 % würde die Raumluft beim Lüften trockener werden.
Hallo Herr Bayerl,
es wird die für jeden Sensor die Temperatur, relative und absolute Luftfeuchtigkeit sowie der Taupunkt in der influxDB Datenbank abgespeichert. Zusätzlich können an einem http-Endpunkt (http://:8081/data) noch folgende aktuelle Werte abgefragt werden:
– RSSI Wert
– Dampfdruck
– Sättigungsdampfdruck
– TF-60 und TF-80 Wert
Grüße
S. Seegel
Hallo Seegel Team,
Tooles Tool!
Kann man in dem Grafana auch den Taupunkt über die Zeit darstelle.
Bedeutet, die Temperatur in einem Raum und den dazugehörigen Taupunkt.
Hintergrund, wenn die Temperatur unterhalb der Taupunkttemperatur liegt besteht Schimmelgefahr.
Daher meine Frage, ob auch der Taupunkt mit geloggt wird.
Besten Dank.
Mb
Hallo Herr Bayerl,
es wird die für jeden Sensor die Temperatur, relative und absolute Luftfeuchtigkeit sowie der Taupunkt in der influxDB Datenbank abgespeichert. Zusätzlich können an einem http-Endpunkt (http://:8081/data) noch folgende aktuelle Werte abgefragt werden:
– RSSI Wert
– Dampfdruck
– Sättigungsdampfdruck
– TF-60 und TF-80 Wert
Grüße
S. Seegel