Update: Der Code ist mittlerweile zu Github umgezogen, ich passe den Thread bei Gelegenheit an.
Ich möchte an dieser Stelle mein Projekt einer feuchtegesteuerten Kellerlüftung vorstellen, das ich mit einem Pi 3 umgesetzt habe.
Da ich kein großer Hardwarebastler bin und keine Löcher in die Hauswand bohren wollte, habe ich für Sensorik und Steuerung auf Fertigteile zurückgegriffen.
Innen- und Außentemperatur und -feuchte werden über zwei Funksensoren ASH 2200 von ELV gemessen:
Der Pi liest die Daten über den USB-Empfänger WDE1-2 (ebenfalls ELV) ein. Die Steuerung je eines Zu- und Abluftventilators erfolgt dann über eine USB-Steckdosenleiste Energenie EG-PMS2.
Dem Pi habe ich noch ein Gehäuse mit 3,5"-Touchscreen [Anzeige] von Tontec spendiert. Am Kellerregal sieht das dann so aus (oben im Bild der Empfänger):
Die Software ist im wesentlichen eine Sammlung von Skripten. Über cron wird @reboot ein Shellskript gestartet, daß seinerseits ein Pythonskript aufruft. Sollte sich das Pythonskript beenden, loggt das Shellskript den return code und startet das Skript dann neu.
Das Pythonskript liest Temperaturen und relative Feuchte per USB ein, berechnet daraus Taupunkt und absolute Feuchte und schreibt alle Werte in RRD-Datenbanken. Die Formeln zur Berechnung von Taupunkt und absoluter Feuchte stammen von http://www.wetterochs.de/wetter/feuchte.html.
Herzstück der Software ist dann ein weiteres Pythonskript fanctl.py, das folgende Befehle versteht:
on,off - zum Ein- bzw. Ausschalten der Lüfter
lock [on,off] <Dauer in Sekunden|inf> - um den Lüfterzustand für die angegebene Zeit zu sperren
unlock - um den Lüfterzustand zu entsperren
und schließlich
cron - mit diesem Befehl wird das Skript alle drei Minuten aufgerufen. Dabei vergleicht es die aktuellen Innen- und Aussenwerte und schaltet die Lüfter entsprechend, sofern sie nicht gesperrt sind. Außerdem erzeugt es Graphiken zum Verlauf und eine kleine HTML-Datei mit den aktuellen Werten.
Auf dem Display am Pi läuft eine kleine Tkinter-GUI, die die aktuellen Werte, den Zustand des Lüfters, ob und wie lange der Lüfter gesperrt ist, sowie graphisch den Verlauf von absoluter und relativer Feuchte und Lüfterzustand der letzten 24 Stunden anzeigt und manuelles Sperren und Entsperren erlaubt:
Etwas gößere Verlaufsgraphiken, auch für tägliche Durchschnitts-, Minimal- und Maximalwerte, sind über eine Webseite zugänglich, die per nginx ausgeliefert wird. Die Webseite bietet die gleichen Steuerungsmöglichkeiten wie das GUI:
Das System läuft jetzt seit etwa einem Monat recht zuverlässig. Leider ist die Lüftung nicht besonders effektiv, evtl. ist unser Keller einfach zu feucht bzw. dringt durch Wände und Boden zu schnell Wasser nach. Wir werden also vermutlich nicht um Dichtungsmaßnahmen herumkommen. Zur Erhöhung der Lüftungseffizienz denke ich zusätzlich über eine automatische Öffnung des Kellerfensters nach.
Zu tun bliebe noch die Implementierung einer Überwachung des Systems. Eventuell lese ich mich dazu mal in Icinga ein. Derzeit tut's aber noch die händische Überwachung durch regelmäßiges Draufschauen.
Der Code ist komplett auf Bitbucket verfügbar:
https://bitbucket.org/m_reiter/klima
Falls jemand etwas Ähnliches vorhat, bin ich gerne bei der Installation behilflich.