Home
- Startseite
Linux (english)
- AAM with hdparm
- CapiSuite
- VDR
- LTTng usage examples
Diverses
- Vallox KWL Steuerung
- Golf V Plus Autoradioausbau
Privat
- Über mich
- Links
Infos
- Impressum
Regler für die Vallox KWL 090 SC selbstgebaut

Beim Renovieren unseres Hauses haben wir uns 2012 für eine kontrollierte, aber bezahlbare Wohnraumlüftung von Vallox entschieden, die KWL 090 SC. Auf Dauer konnte ich mich aber natürlich nicht mit dem manuellen 4-Stufen-Schalter zufrieden geben, zumal die technische Anleitung den verheißungsvollen Satz enthielt:

Anstelle des 4-Stufen-Schalters kann die Ventilatorleistung des Lüftungsgerätes über ein Spannungssignal von 0...10 VDC stufenlos geregelt werden. [...] Das Spannungssignal muss bauseits zur Verfügung gestellt werden.

Eine Regelung musste also her. Heute besteht sie aus folgenden Komponenten:

Mit den zwei Boards und dem recht teuren CO2-Sensor (inkl. Lieferung fast 100 Euro) kein ganz billiger Spaß - aber noch immer deutlich günstiger als eine entsprechende fertige Regelung. Wer nicht so viel investieren will, kann auch nur das Web-Interface realisieren, hier braucht es nur einen Arduino plus Ethernet Shield und Bauteile im Wert von ein paar Euro. Auch das ist schon ein großer Komfort-Gewinn, wenn man abends im Bett mit dem Handy die Lüftung kontrollieren kann.

Web-Interface Lüftung: Arduino mit D/A-Wandler

Ein guter Kompromiss zwischen Dauer-Stromverbrauch und Komfort schien mir der Arduino Ethernet zu sein, eine Kombination aus dem Arduino UNO und Ethernet-Shield auf einer Platine.

Als unerwartet aufwändig bzw. teuer stellte sich die Realisierung eines analogen Ausgangs mit 0-10 V heraus, aber schließlich fand ich den 10-bit DAC von Albert van Dalen.

Den LMC6484 als Ersatz für den TLC274 gibt's für gute 2 Euro z.B. bei Reichelt, auch in einer DIL-Variante für Leute ohne SMD-Lötwerkzeug. Sehr hilfreich ist Fritzing - damit kann man schön den Aufbau auf der Steckplatine mit dem Schaltplan abgleichen und später in eine kleinere Lochraster-Variante überführen. So sieht mein Ergebnis aus:

Fritzing-Darstellung DAC-Schaltung

Im Lüftungsgerät findet sich hinter dem Wärmetauscher links eine weiße Blende, die das Frostschutz-Thermostat enthält und mit sechs Schrauben befestigt ist. Dort ist auch reichlich Platz für den Arduino und sogar eine schöne Klemmenreihe zum bequemen Anschließen. Die "Technische Anleitung" von Vallox liefert einen groben Schaltplan und wichtige Hinweise.

Warnung: Hier liegen auch 230 Volt an! Der Einbau ist also von einer Fachkraft zu erledigen und der Arduino geeignet zu isolieren - auch gegen Kurzschlüsse bei Berührung des Blechgehäuses!

Der DAC ist nun statt dem 4-Stufen-Schalter anzuschließen (bei mir waren das die Klemmen 1, 2 und 4 der Lüftung) - in der Fritzing-Zeichnung vom DAC sind die passenden Anschlüsse durch den dunkelgrauen Balken rechts unten markiert. Die 10V von der Lüftung kommen an den 12V-Eingang vom LMC6484, der DAC-Ausgang an die S-Klemme der Lüftung und Masse an Masse. :)

Da sich der Arduino nicht stabil vom 10V-Ausgang der Lüftung versorgen lässt, habe ich ein altes USB-Ladegerät an den 5V-Eingang vom Arduino angeschlossen - z.B. am Debug-Verbinder. Da der Arduino so "ungeschützt" vom eigenen Spannungsregler am Netzteil hängt, sollte das Netzteil wirklich stabile 5V liefern.

Den vorhandenen Vallox-4-Stufen-Schalter habe ich als zusätzlichen Input genutzt, um weiterhin manuell die Lüftung einstellen zu können - dazu wird er an die Arduino-Stromversorgung geklemmt und der S-Anschluss kommt an einen freien analogen Arduino-Eingang, bei mir A3.

Das folgende Bild zeigt noch den fliegenden Testaufbau. Wie zu erkennen ist, habe ich Arduino, Drehschalter und USB-Netzteil über die freien Klemmen 5-7 verbunden.

Foto vom Arduino in der Lüftungsanlage

Hier noch der Quellcode für den Arduino: lueftung.ino. Einige Hinweise dazu:

  • die "Dac Library" gibt es zum runterladen auf der 10-bit DAC-Seite von Albert (siehe Link oben).
  • die Flash- und Streaming-Bibliotheken von Mikal Hart (siehe arduiniana.org) helfen, den Speicherverbrauch zu reduzieren
  • den Webserver habe ich mit der Webduino Bibliothek realisiert
  • die Werte in der "readSchalter"-Funktion müssen mit den vier Schalterstellungen kalibriert werden.

Die auswählbare "Stufe" ist die Steuerspannung für die Lüftung in 10 mV, 560 bedeutet also 5,6 V. Unterhalb von ca. 2 V bleibt die Lüftung stehen, im restlichen Bereich steigt die Drehzahl exponentiell, weitere Details siehe "Technische Anleitung" von Vallox.

Die Leistung der Lüftung lässt sich damit über drei Wege beeinflussen:

  • manuell über den Drehschalter
  • manuell über die Weboberfläche mittels /set?www=<Stufe>. Die Oberfläche gibt ein paar Stufen vor, der Wert kann aber beliebig editiert werden.
  • über eine gesonderte Regelung mittels /set?reg=<Stufe>. Dieses Kommando wird nur ausgeführt, wenn die Lüftung über Drehschalter oder Web in den "Auto"-Modus gesetzt wird. Am Schalter habe ich dazu die Stufe "1" in "A" umgewidmet.

Randnotiz: Wer sich für den Stromverbrauch der Lüftung interessiert - bei mir waren es ca. 8,6 W für die Stufe 200 (2 V) bis zu 145 W bei 1023 (ca. 9,82 V). Folgendes ungefähr passende Modell habe ich aus 10 Messwerten mit R abgeleitet: Verbrauch [W] = 13,7 - 0,07 * Stufe + 0,0002 * Stufe2.

CO2-Sensor und erste Arduino-Regelung

Messgröße für die Lüftungssteuerung sollte der CO2-Gehalt der Luft sein. Der Sensor K-30 von der schwedischen Firma SenseAir kommt vorkalibriert auf einem handlichen Modul. Mittels I2C und serieller Schnittstelle lässt er sich gut anbinden, ist aber mit ca. 80 Euro nicht wirklich billig. Und leider auch nicht ganz einfach zu bekommen - der deutsche Distributor Driesen+Kern ist nicht auf Privatkunden ausgerichtet und verlangt ordentlich Versandkosten. Alternativ gibt es co2meter.com in den USA - auch hier kostet die Lieferung natürlich einiges.

In dem Forum-Thread zum K-30-Modul für FHEM sind noch einige Alternativen zu finden, i.W. der Luftgüte-Sensor MQ 135, für wenige Euro bei Watterott erhältlich, mit dem ich mich aber noch nicht näher beschäftigt habe. Es scheint aber deutlich unpräziser und mühsamer in der Anwendung zu sein.

Nachdem der Arduino in der Lüftung so schön lief und die Application Note 126 von co2meter.com auch die Arduino-Anbindung des Sensors mit Beispiel-Code beschreibt, lag es auf der Hand, die Regelung mit einem zweiten Arduino im Wohnbereich umzusetzen. Ein langer Kampf um jedes Byte im RAM und Flash und viele Kompromisse folgten, aber spätestens nachdem ich eine sporadische Verklemmung zwischen Web-Interface und Netzwerk-Code zum Ansteuern der Lüftung wochenlang nicht in den Griff bekam, musste ein leistungsfähigeres Board mit richtigem Betriebssystem her.

Falls es trotzdem jemanden interessiert, hier der alte Arduino-Regler-Code mit der passenden Version der Lüftungs-Software: co2sensor.ino lueftung-old.ino.

Regelung über Raspberry Pi

Als Ersatz bot sich ein Raspberry Pi an - sicherheitshalber gleich die Version 2, um für künftige Erweiterungen gerüstet zu sein. Dank FHEM konnte ich auf die Module HTTPMOD für den Zugriff auf den Arduino in der Lüftung und PID20 für den Regler zurückgreifen. Für den CO2-Sensor gab es noch nichts passendes, aber ausgehend von anderen I2C-FHEM-Modulen war ein entsprechendes Modul (I2C_K30) schnell gestrickt. Es ist inzwischen auch im SVN-Repository von FHEM verfügbar: TODO.

Die Raspberry-Anbindung des Sensors ist an sich einfach: I2C-Pins vom Sensor-Modul an die passenden Pins vom Raspberry hängen, in raspi-config die I2C-Unterstützung einschalten, neu booten und fertig. Leider klappte damit das Auslesen des Sensors nur sporadisch. Erst nach Reduktion der I2C-Frequenz auf 90 kHz (options i2c_bcm2708 baudrate=90000 z.B. in /etc/modprobe.d/i2c-options.conf eintragen, Reboot) funktionierte der Zugriff auf den Sensor in 90% der Fälle. Gelegentliche Fehler sind wohl auch normal - das K-30-Datenblatt erwähnt, dass der Microcontroller auf dem Sensormodul bei laufender Messung die externen Interfaces u.U. nicht korrekt bedienen kann.

Hier noch ein Auszug aus meiner FHEM-Konfiguration: fhem.cfg

Fazit

Folgendes habe ich in dem Projekt gelernt:

  • Es ist faszinierend, wie deutlich sich An-/Abwesenheit, Schlafphasen etc. in den CO2-Messkurven spiegeln, selbst wenn der Sensor in einem anderen Raum ist.
  • Damit zusammenhängend sieht man auch deutlich, dass bereits nach wenigen Stunden die Luftqualität ohne Lüften deutlich schlechter wird.
  • Für Projekte mit Netzwerk-Anbindung, die über sehr einfache Dinge hinausgehen, sollte man sich ein Board mit Betriebssystem gönnen, ein Arduino stößt da doch sehr schnell an diverse Grenzen. Kostet zwar rund 1,5 Watt mehr Strom, aber das ist es mir wert.
  • Linux, FHEM und Open Source braucht der Mensch. :)

© 2002-9 Gernot Hillier
letzte Änderung: 2021-11-07 20:47:08
Valid XHTML 1.0!Valid CSS!