Introduction: Monitoring Gebäudetrocknung
Step 1: Projektbeschreibung
Ziel war die Verringerung der Luftfeuchte in den Kellerräumen durch Einbau von Lüftern in die Aussenmauer.
Da die Luftansaugung der Außenluft nur dann erfolgen soll, wenn diese 'trockener' als die Luft im Keller ist, wurde eine Steuerung der Firma Technische Alternative angeschafft. Diese besteht aus dem Steuergerät UVR61-3 und zwei Temperatur-/Feuchtesensoren RFS-DL. Die Installation und Konfiguration war relativ einfach und rasch erledigt.
Die Verbindung zwischen dem Steuergerät und den beiden Sensoren erfolgt durch einen 2-Draht Bus. Das herstellereigene DL-BUS Protokoll wurde vom Hersteller offengelegt. Eine Doku ist auf Github zu finden https://github.com/ekuiter/uvr2web/blob/master/met...
Um die Sensorwerte Aussen-/Innentemperatur und Aussen-/Innenfeuchte im Web darzustellen, habe ich den DL-BUS angezapft.
Step 2: Funktionsablauf
1. - ein µC-Modul liest am DL-BUS die Sensordaten mit
2. - stehen gültige Daten zur Verfügung werden diese per WiFi an einen IoT-Server gesendet
3. - am IoT-Server werden auf einem Dashboard die Daten dargestellt
4. - dieses Dashboard steht dann per http öffentlich zur Verfügung
Step 3: Hardware
Als µC verwende ich ein WeMos D1mini Modul, das einen Espressif ESP12F und eine intergierte WiFi-Antenne enthält. Damit reduziert sich der Hardware Aufwand gewaltig. Es werden zum D1mini nur mehr 2 Widerstände und ein USB-Netzteil benötigt. Das USB-Netzteil sollte mind. 300mA bei 5V liefern können.
Step 4: Software
Dafür habe ich Teile eines vorhanden Arduino Sketch (ino file) auf GitHub von Elias Kuiter verwendet und für meine Zwecke adaptiert.
Der komplette Sketch besteht aus folgenden files:
uvr2web_D1mini.ino ist das Hauptprogramm
receive.ino und receive.h empfangen, decodieren und speichern eines Datenrahmens vom DL-BUS
process.ino und process.h verarbeiten der gespeicherten Datenrahmen
web.ino und web.h übernimmt den upload zu emoncms.org
Nur wenn 2x die selben Sensorwerte gelesen wurden, werden sie verwedet. Damit konnte ich zeitweise sprunghafte Anweichungen durch Übertragungsfehler elimimieren.
Step 5: Uvr2web_D1mini.ino
Bei Bedarf das Upload Intervall anpassen:
int upload_interval = 5 * 60 * 1000; // alle 5 Minuten ein upload
Bei nodeId und privateKey die eigenen Emoncms Daten eingetragen:
const char* host = "emoncms.org";
const char* nodeId = "2";
const char* privateKey = "00000000000000000000000000000000"; // API Write Key
Für die WLAN Ankopplung wurde der WiFiManager Github verwendet.
Wichtig: Hier eine beliebige, aber NICHT die eigene SSID verwenden:
const char* iot_ssid = "config";
const char* iot_pass = "configneu";
Step 6: Receive.ino
Empfangen, decodieren des Manchester-Codes und speichern der Datenrahmen.
Step 7: Process.ino
Verarbeitung der gespeicherten Datenrahmen.
Bei der ersten Version wurden manchmal fehlerhafte Werte eingelesen.
Bei der aktuellen Version erfolgt ein upload nur, wenn 2x die gleichen Sensorwerte empfangen wurden.
Step 8: Web.ino
Hochladen der Datenrahmen ins Internet
Nach Ablauf von upload_interval werden die zuletzt gespeicherten Daten hochgeladen.
Step 9: Visualisierung
Dazu verwende ich die kostenlose API von emoncms.org
Step 10: Download
Hier sind alle sketches als zip-file.
Attachments
Step 11: Ausblick
Das Projekt ist seit Sommer 2016 erfolgreich im Einsatz.
Eine Änderung bzw. eine Integration in Smart Home Systeme ist nicht geplant.
Bei konkretem Bedarf werde ich zu den vorigen Schritten eine detailiertere Anleitung einfügen.

Participated in the
IoT Builders Contest
3 Comments
6 years ago
Erstmal Glückwunsch zu einem Eintrag auf deutsch, dann natürlich für deine umfangreiche Erklärung. Meiner Meinung nach gibt es ein paar Verbesserungsmöglichkeiten.
1. Bei den Fühlern zeigst du absolute Luftfeuchte und Lufttemperatur, deine Ansteuerung der Lüfter nutzt aber die Lufttemperatur nicht ( if aFA > aFI then 0; if aFA < aFI then 1;). Tatsächlich benötigst du meines Erachtens die relative Luftfeuchte, denn in deinem angeführten Beispiel aus Schritt 1, hat die Innenluft mit 19.9°C und 9.6g/m³ eine relative Luftfeuchte von 59%, wohingegen die Außenluft mit 11.6°C und 8,7g/m³ satte 87% relative Luftfeuchte hat. Das ist ein Unterschied von 30%. Nur durch das Aufwärmen der einströmendenden Luft in deinem Keller wäre diese überhaupt in der Lage mehr Feuchtigkeit aufzunehmen. In der Zwischenzeit würde Wasser im Umfeld des Lüfters kondensieren. Eine Interpretation der Werte wäre sogar, dass du tatsächlich nur Heizwärme und Strom verlierst, während Kondensationswasser unter den Lüftern im Boden versickert.
2. Du bezeichnest das Projekt als einen Erfolg, zeigst aber nicht wie du diesen misst. Wie groß ist die Veränderung durch welche Laufzeiten der Lüfter? Wie groß ist sie ohne Lüfter. Wieviel Stromleistung muß investiert werden um eine höchstmögliche Differenz zu erzeugen? Was passiert wenn die Lüfter nicht Luft in den Raum reinblasen, sondern rausblasen ( nicht {1|0} sondern {1|-1}? Das Projekt benötigt den Beweis eines kausalen Zusammenhangs, eine Abhängigkeit der Laufleistung zur Luftfeuchte, sonst sind die Ergebnisse zufällig.
3. Es fehlt ein Fühler für den Druckunterschied (außerdem kannst du dann den Taupunkt für die rel. Luftfeuchte berechnen). Denn wenn du nur Lüfter für einen Lufteinlaß hast, erhöhst du den Druck im Raum und die Luftfeuchte staut sich. Besser wären Lüfter für den Einlaß und für den Auslaß. Vielleicht könnte man sogar mit verlängerten Abgasrohren einen Bernoulli-Effekt erzielen.
4. Dein Keller ist viel zu warm. Optimal wären 15°C mit 60% Luftfeuchtigkeit. Mit der hohen Temperatur ziehst du praktisch die Luftfeuchte von draußen nach innen.
Ich hoffe du nimmst diese Kritik nicht persönlich, sondern nutzt sie um dein Projekt zu verbessern, dafür hast du sogar noch 2 Monate Zeit. Das Projekt kannst du unveröffentlichen und nach deinen Verbesserungen wieder veröffentlichen, dann geht mein Kommentar verloren aber deine Stimmen für den Wettbewerb nicht.
6 years ago
Zehr gut danke!
6 years ago
Looks like a good system!