Keller entfeuchten mit MQTT und Node-Red

Damit keine Missverständnisse aufkommen: Node-Red ist natürlich kein Entfeuchtungsgerät sondern eine  grafische Entwicklungsumgebung für Internet Of Things Anwendungen. Node-Red hat Schnittstellen zu Raspberry Pi bereits integriert, so dass das Ansteuern oder Auslesen der GPIO Pins ein Klacks ist. Die Node-Red Umgebung läuft problemlos auf dem Raspberry Pi, gerne auch zusammen mit einem MQTT Broker wie z.B. Mosquitto.

Da Node-Red auch eine MQTT Schnittstelle hat, können wir unsere Sensoren und andere Komponenten ganz locker integrieren, ohne dass wir zusätzliche Kabel oder Anderes verlöten müssten.

Ebenso gibt es eine Vielzahl von Schnittstellen zu Webservices um beispielsweise den Deutsche Wetterdienst abzufragen und vielleicht mit einer von dort gezogenen Sturmwarnung ein Rollo hochzufahren oder Ähnliches.

So lassen sich auch komplexe Anwendungen relativ leicht entwickeln und produktiv nutzen, ohne dass man sich die Finger wund programmiert um eine schöne Benutzeroberfläche zu bauen. Die Grafische Darstellung von Messwerten etc. ist ebenfalls ganz einfach.

Ich werde hier allerdings nicht das x-te Node-Red Tutorial schreiben. Bei Youtube gibt es eine Reihe gut gemachter Tutorials, außerdem möchte ich wieder auf haus-automatisierung.com verweisen, wo sich ein hervorragendes aber kostenpflichtiges Node-Red Video Tutorial befindet.

Keller entfeuchten

Wie oben erwähnt, dient Node-Red bei mir dazu, eine effektive und kostengünstige Kellerentfeuchtung sicherzustellen. Ansonsten würden mein gesamtes Werkzeug und andere Dinge verrosten bzw. verschimmeln. Mein Keller ist wirklich sehr feucht – trotz Sanierung und Sperrputz.

  1. Ich möchte den Keller trocken halten, indem ich mit einem Fensterventilator bei Bedarf und wenn sinnvoll, die feuchte Kellerluft mit trockener Außenluft austausche.
  2. Dafür messe ich mit Hilfe von zwei Temperatur-/Luftfeuchtigkeitssensoren die Werte im Keller selbst und außerhalb des Kellers.
  3. Die gemessene, relative Luftfeuchtigkeit wird in absolute Luftfeuchtigkeit umgerechnet und die Werte von Innen und Außen miteinander verglichen. (Siehe Kapitel "Physik" weiter unten).
  4. Ist die absolute Luftfeuchtgkeit außen signifikant (~15%) niedriger  als innen, wird der Ventilator eingeschaltet sofern das erforderlich ist; d.h. wenn die relative Luftfeuchtigkeit im Keller über 65% liegt.
  5. Die Luft wird ausgetauscht, die relative Feuchte sinkt unter 60%, der Ventilator stoppt. Die Feuchte steigt über ein paar Stunden hinweg wieder an und sobald 65% überschritten sind, startet der Ventilator neu – vorausgesetzt die Luft draußen ist trockener als drinnen.
  6. Ist der Unterschied zu gering oder ist es draußen absolut feuchter als drinnen, soll ein im Keller stehender Luftentfeuchter eingeschaltet werden um die Luftfeuchtigkeit zu regulieren (optional).

Warum zwei verschiedene Geräte zum Trocknen? Ein Ventilator hat eine Leistungsaufnahme von 30W, ein Trocknungsaggregat meist um die 250W. Je nach den Umständen läuft die Anlage 6-12 Stunden am Tag, der Stromverbrauch läppert sich mit der Zeit. Ein Ventilator ist also deutlich günstiger. Allerdings kann es bei schwül-heißem Wetter durchaus sein, dass der Ventilator nie zum Zuge kommt. Deshalb der Trockner als "Aushilfe".

Was brauche ich dazu?

Benötigt werden:

  • zwei Luftfeuchtigkeits-/Temperatur Sensoren mit MQTT Eigenschaft. Das können welche aus meinem Artikel Wemos ESP8266 (D1 MINI) Sensor mit MQTT sein oder Shelly H & T Sensoren oder andere. WLANfähigkeit und MQTT Protokoll sind ein Muss für die hier beschriebene Lösung
  • Ein Raspberry Pi – egal welcher – ein Pi Zero reicht aus. Darauf muss ein MQTT Broker (ich empfehle Mosquitto) und Node-Red installiert sein (Anleitung z.B. bei https://nodered.org/docs/getting-started/raspberrypi)
  • zwei WLAN Steckdosen z.B. Shelly Plug S oder die etwas günstigeren Delock WLAN Steckdosen Schalter zum Einschalten des Ventilators und des Trockners.
  • einen Fensterventilator, oder Rohrventilator oder was auch immer. In jedem Fall muss der Ventilator die Luft von außen nach innen blasen. Damit die feuchte Luft auch abziehen kann, empfiehlt es sich, am anderen Ende des Kellers eine Einweg-Abluftklappe oder einen Ventilator mit Blasrichtung nach außen  – gesteuert durch dieselbe Schaltung – einzubauen.
  • Optional einen Luftentfeuchter und zwar einen, der nach dem Unterbrechen des Stroms automatisch wieder anläuft. Viele Luftentfeuchter wollen, dass man nach dem Einschalten irgendwelche Tasten drückt – bei vollautmatischem Betrieb eher hinderlich. Ich habe mich deshalb für den Aktobis WDH-610HA Luftentfeuchter entschieden, ausreichend für meinen 12m² großen Keller, 180W Leistungsaufnahme, ohne überflüssiges Chi-Chi und mit ca. 130€ recht günstig.
  • Der oben erwähnte Luftentfeuchter ist inzwischen nicht mehr verfügbar. Eine Alternative wäre z.B. das Modell WDH-310EKW das sogar WiFi tauglich ist und über das Tuya Home Automation System gesteuert werden kann. Auch für Node-Red gibt es ensprechende Tuya Nodes. Leider ist die Integration nicht ohne, da man sich dann erst einen Tuya Developer Account zulegen und anschließend durch eine vermurxte Website hangeln muss, nur um die sogenannte Device ID des Geräts herauszufinden. Die Dokumentation dafür ist schrottig-grottig – so wie die meiste Software, die uns aus dem Reich der Mitte erreicht. Schlampig übersetzt, bzw. in BSE (badly spoken English), durchsetzt mit chinesischen Schriftzeichen, komplett verschwurbelte Logik etc. Ich hab's erst einmal sein lassen und verwende weiter meine Shelly Steckdosenadapter.

Achtung: Physik

Warum verwende ich die absolute Luftfeuchtigkeit und nicht die relative Luftfeuchtigkeit zum Vergleich zwischen außen und innen?

Physikalisch gilt: je wärmer die Luft ist, desto mehr mehr Feuchtigkeit kann sie aufnehmen.  Luft mit einer relativen Feuchte (= Sättigungsgrad) von 80% enthält bei 10°C ca. 7,5 Gramm Wasser pro m³ (= absolute Luftfeuchtigkeit).
Bei 25°C enhält sie 18.4 g/m³, also mehr als das Doppelte. Oder anders ausgedrückt kann es durchaus sein, dass warme Luft mit einer niedrigeren relativen Feuchtigkeit de facto "nasser" ist als kalte Luft mit einer hohen relativen Feuchtigkeit.

Ziel ist also, kalte, möglichst trockene Luft gegen warme, feuchte Luft auszutauschen. Es macht deshalb oft keinen Sinn, den Ventilator tagsüber laufen zu lassen, da die absoute Luftfeuchtigkeit draußen höher ist als drinnen – so würde die Feuchtigkeit in den Keller hineintransportiert werden anstatt hinaus.

Zum Berechnen gibt es eine Näherungsformel , die ich bei Wetterochs.de gefunden habe. Optimalerweise würde man auch noch den Luftdruck benötigen, aber die Näherung basierend auf Temperatur und relativer Feuchte reicht uns. Siehe Formel im nächsten Kapitel Flow.

Diese Formel habe ich in einen Function Node von Node-Red übertragen.

Flow

Hier zuerst einmal der zugegebenermaßen recht aufwendige Flow (anklicken für vergößerte Darstellung):

Die JSON Datei zum Herunterladen findet ihr hier. Ich lerne hier jeden Tag etwas Neues hinzu, es ist also sehr wahrscheinlich, dass mein Flow noch einiges Optimierungspotenzial aufweist.

Der Flow ist in kreuzförmig in vier bzw. fünf Teile aufgeteilt.
Links oben die Messung der Außentemperatur und Luftfeuchtigkeit (MQTT) mit Konversion.
Links unten dasselbe nur für innen.
In der Mitte die Entscheidung ob Trocknung nötig, also ob die Luft getrocknet werden muss bzw. ob sie ausreichend trocken ist.
Rechts davon die Berechnung der Methode (draußen absolut trockener als innen) –> Ventilator, sonst Trockner.
Rechts oben dann die Steuerung des Ventilators und
rechts unten dann die Steuerung des elektrischen Luftentfeuchters.

Zusätzlich sind noch diverse Nodes für das Dashboard angeschlossen.

Die Function Nodes rel2abs wandelt die relative Luftfeuchtigkeit in absolute Werte um.

Die Formel läuft sinngemäß wie folgt:

Für den Innensensor muss das entsprechend angepasst werden. Die Variablen T und r verwende  ich als Flow Variablen, da sie im weiteren Verlauf des öfteren gebraucht werden.

Dashboard

Ich habe zwei Dashboards, eines für die Messwerte:

Und eines für die Effizienz der Methode in einem eigenen Flow:

Grün ist hierbei der Ventilatorbetrieb, gelb der Trocknerbetrieb.

Der JSON Flow dazu sieht wie folgt aus:

 

Zugegebermaßen ist das Alles nicht ganz einfach zu verstehen bzw. seine Hirn um die Thematik zu wickeln. Wenn ihr Fragen oder Kommentare habt, dann freue ich mich über euer Feedback.

5 Gedanken zu „Keller entfeuchten mit MQTT und Node-Red

  1. Prima Anleitung, hat mir sehr geholfen. Da ich den Keller nicht unnötig abkühlen will, schalte ich den Lüfter nur ein, wenn es da mehr als 15℃ hat.

    Irgendwie will das Chart für den Lüfter/Kondensator Status nicht laden, da muss ich noch schauen, was da falsch ist.

    Danke auf jeden Fall, habe viel gelernt!

    Norbert

    1. Prima, freut mich, wenn ich die helfen konnte! Falls du einen Fehler in meiner Anleitung entdeckst freue ich mich über einen Hinweis.
      Viele Grüße
      Chris

Schreibe einen Kommentar

Ich freue mich über Lob und Kritik.
Falls du Probleme mit der hier vorgestellten Anleitung hast und nicht weiter kommst:
Bitte das Problem oder die Fehlermeldung(en) möglichst genau beschreiben, auch an welcher Stelle (z.B. in welchem Node oder Befehl) und unter welchen Umständen der Fehler auftritt.
Gerne kannst du mir auch ein Mail schreiben. Die Adresse findest du im Impressum.
Ich gebe mir viel Mühe, meinen Lesern weiterzuhelfen. Je konkreter du bist, desto einfacher und schneller kann ich versuchen zu helfen.
Deine E-Mail-Adresse wird nicht veröffentlicht.
Erforderliche Felder sind mit * markiert