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. Anschließend das 868gw Skript starten:
.env/bin/python apps/868gw.py
Found RaspyRFM twin
RFM69 found on CS 1
Init complete.
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 Messwerte und Konfigurationseinstellungen sind nun unter der URL http://<IP Raspberry>:8081
zu erreichen:
Pro Sensor können Grenzwerte für Temperatur und Luftfeuchtigkeit hinterlegt werden. Außerhalb der eingestellen Grenzwerte werden die entsprechenden Werte in der Übersicht und in den Balkendiagrammen rot dargestellt. Außerdem kann für jeden Sensor die ID eines Außensensors angegeben werden, welcher für weitere Berechnungen zum Lüften verwendet wird, siehe weiter unten.
Bei Klick auf einen Raum werden weitere Messwerte eingeblendet:
- Absolute Luftfeuchtigkeit (AH) in g / m³
- AHratio, Verhältnis zwischen absoluter Luftfeuchtigkeit innen und außen. Ist die absolute Luftfeuchtigkeit draußen höher (positives AHratio) wird die relative Luftfeuchtigkeit beim Lüften steigen und umgekehrt.
- Taupunkt
- TF80, Temperatur bei der eine Luftfeuchtigkeit von 80 % erreicht wird (Schimmelgefahr!). Unterschreitet die Temperatur einer Wandfläche im Raum den TF80 Wert droht dort Schimmelbildung. Maßnahmen: Lüften (nur wenn die absolute Luftfeuchtigkeit draußen geringer ist!), Entfeuchten mit Lufttrockner, Heizen.
- TF60, siehe TF80
- aw Wert; wenn in der Konfiguration zum entsprechenden Sensor eine Bauteiletemperatur angegeben wird, z. B. Temperatur der kältesten Ecke im Raum, gibt der aw Wert die relative Luftfeuchtigkeit an der Oberfläche an. Ab 80 % besteht Schimmelgefahr!
Unten werden zwei Säulendiagramme dargestellt, in denen jeweils die Temperaturen bzw. relative Luftfeuchtigkeiten aller Räume dargestellt werden. Die gelbe horizontale Linie ist jeweils der Wert vom Außensensor so dass mit einem Blick abgelesen kann ob Lüften zur Temperaturerhöhung / -erniedrigung bzw. zur Erhöhung / Erniedrigung der relativen Luftfeuchtigkeit im entsprechenden Raum führt.
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, bei über +10 % feuchter.
API
Das Script lacrossegw bietet einen Endpunkt unter http://<ip>:8081/data an über den auf die gemessenen und berechneten Werte aller Sensoren zugegriffen werden kann:
{
"sensors":[
{
"id": "a4", eindeutige ID des Sensors
"T": 24.8, Temperatur in °C
"RH": 66, relative Luftfeuchtigkeit in %
"DEW": 18, Taupunkt in °C
"AH": 15, absolute Luftfeuchtigkeit in g / m³
"SDD": 31.28001543349199, Sättigungsdampfdruck in hPa
"DD": 20.644810186104714, Dampfdruck in hPa
"DEW80": 21.6, TF80 Wert in °C, siehe http://www.tf80.de/
"DEW60": 26.4, TF60 Wert in °C, siehe http://www.tf80.de/
"aw": 70, relative Luftfeuchtigkeit an konfigurierter Oberflächentemperatur
"rssi": -77.5, RSSI in dBm des zuletzt empfangenen Pakets
"batlo": false, Batterie-schwach-Flag
"init": false, Flag nach Batteriewechsel
"room": "Hauptraum",
"tMin": 24.8, Minimaltemperatur in °C seit Skriptstart
"tMax": 29.6, Maximaltemperatur in °C seit Skriptstart
"rhMin": 47, Minimale relative Luftfeuchtigkeit in % seit Skriptstart
"rhMax": 67, Maximale relative Luftfeuchtigkeit in % seit Skriptstart
"tStatus": "high", Temperaturgrenze high | ok | low, konfigurierbar über 868gw.conf
"AHratio": 4, Verhältnis der absoluten Luftfeuchtigkeit außen/innen in %
"RHvent": 68, theoretisch erzielbare Luftfeuchtigkeit nach "idealem Lüften"
"rhStatus": "high", Feuchtigkeitsgrenze high | ok | low, konfigurierbar über 868gw.conf
}
]
}
Messwerte in influxDB speichern und mit Grafana visualisieren
influxDB / influxDB 2
InfluxDB auf dem Raspberry installieren, z. B. nach dieser Anleitung.
In der Konfigurationsdatei 868gw.conf
einfach unter influxdb bzw. influxdb2 die Einstellungen vornehmen, das 868gw.py Skript speichert dann alle empfangenen Messwerte entsprechend ab.
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:
Hallo Herr Seegel,
der Einbau des Doppelmodul und die Einrichtung und Konfiguration in Home Assistent hat alles gut geklappt mit den Intertechno Steckdosenschalter und den TX-29DHT. Ich habe nun auf einem zweiten RaspberryPi eine Influxdb2 am laufen. Wie bekomme ich die Daten der TX-29DHT über das lacrossegw in die influxbd2? Können Sie mich dabei unterstützen?
Vielen Dank und Gruß
Jörg Zipperer
Hallo Herr Zipperer,
die Unterstützung für InfluxDB2 wird gerade eingebaut und steht bald zur Verfügung.
InfluxDB2 Unterstützung steht ab sofort zur Verfügung!
Hallo Herr Seegel,
vielen Dank für die schnelle Bereitstellung der Funktion.
Ich habe dies in der Konfiguration auch nun eingegeben aber leider sehe ich keine Werte in der InfluxDB2.
Wenn ich mit dem gleichen Token die Werte über MQTT und Node-Red in die InfluxDB2 schreiben lasse geht es.
Gibt es eigentlich eine Art von Debug-Log? Im Log von der InfluxDB ist jedenfalls nichts zu sehen, auch wenn ich den Token in der Konfig leer lasse. Es sieht so aus als wird keine Verbindung aufgebaut.
Vielen Dank.
Gruß
Jörg Zipperer
Am besten in der Konsole lacrossegw starten und schauen ob beim Initialisieren und/oder beim Schreiben der Messwerte Fehlermeldungen auftauchen.
Hallo Herr Seegel,
es sind keine Schreibaktionen zusehen:
RFM69 found on CS 1
Init complete.
InfluxDB1 Exception: No module named ‘influxdb’
influx client 2 loaded
Switch baudrate to 17.241 kbit/s
|id: 64 Balkon |T: 17.8 C|RH: 92 %|battery: OK |init: 0|RSSI: -85.5 dBm|FEI: -18.9 kHz|
|id: 64 Balkon |T: 17.7 C|RH: 92 %|battery: OK |init: 0|RSSI: -81.0 dBm|FEI: -34.1 kHz|
|id: 64 Balkon |T: 17.7 C|RH: 92 %|battery: OK |init: 0|RSSI: -80.0 dBm|FEI: -34.5 kHz|
|id: 64 Balkon |T: 17.8 C|RH: 92 %|battery: OK |init: 0|RSSI: -85.5 dBm|FEI: -10.9 kHz|
Switch baudrate to 9.579 kbit/s
Switch baudrate to 17.241 kbit/s
|id: 64 Balkon |T: 17.7 C|RH: 92 %|battery: OK |init: 0|RSSI: -83.0 dBm|FEI: -26.6 kHz|
id: 64 Balkon |T: 17.8 C|RH: 92 %|battery: OK |init: 0|RSSI: -84.0 dBm|FEI: -17.0 kHz|
|id: 64 Balkon |T: 17.8 C|RH: 92 %|battery: OK |init: 0|RSSI: -83.0 dBm|FEI: -35.0 kHz|
|id: 64 Balkon |T: 17.7 C|RH: 92 %|battery: OK |init: 0|RSSI: -84.0 dBm|FEI: -3.2 kHz|
Switch baudrate to 9.579 kbit/s
Vielen Dank
Gruß
Jörg Zipperer
Ist nun behoben; wenn InfluxDB1 nicht geladen wurde, wurden auch keine Daten in InfluxDB2 gespeichert.
Hallo Herr Seegel,
bin erst heute dazu gekommen das Programm neu zu laden. Es klappt nun.
Vielen Dank.
Gruß
Jörg Zipperer
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