Sensoren zum testen auf verbrauchte Luft

Bei der Aussenmessung vor 2 Tagen war deutlicher Geruch in der Luft, vom Odelwagen am Feld, das bei uns vielleicht einen km weg ist. Ich denke das ware ein paar Aerosole, die sich in der CO2 Messung wiedergespiegelt haben. :roll_eyes: Da bekam ich als Messwert draussen am Balkon 667ppm. Heute beim Stosslüften waren es 403ppm im Raum. Da hatten wir Nebel, ich denke das wird bischen was aus der Luft rausgefischt.

Die normale Außenluft, ohne irgendwelche Belastungen, hat 0,04% CO2 ( luft wiki - Ecosia ). Das sind 400 ppm, drunter wirst Du also nicht kommen.
Ich habe mal nachgerechnet: Mit Deiner Zimmergröße und den Daten aus dem Wiki Artikel erhöhst Du den CO2 Gehalt pro Stunde um 500 ppm, wenn eine Person darin atmet.

Habe jetzt gerade neu draussen am Balkon gemessen. Da kam der selbe Wert wie beim Stosslüften heute morgen im Raum. 403PPM

Das könnte hin kommen mit der zügigen Verschlechterung des Wertes wenn ich mit geschlossenen Türen im Raum sitze.

Genau das war auch mein Ansatz.

An der Sensorik ist wohl nichts auszusetzen.

Dann musst Du Dir irgendwas mit Zwangsluftaustausch einfallen lassen.
Ob es unbedingt das gekippte Fenster sein muss, wäre zu überlegen. Wenn die Türen etwas hergeben, könnte man über Zwangsbelüftung mit speziellen Dichtungen nachdenken.
Das System habe ich einmal im Zuge einer Sanierung gesehen. Da wird ein Teil der Fensterdichtung ausgetauscht.
Ich hab nur noch nicht den richtigen Suchbegriff, wie das hiess.
Es ist nicht Fensterfalz- und auch nicht Microlüfter.

Du wirst Dich früher oder später sowieso mit einem Fensterbauer oder nem guten Energieberater zusammensetzen und das Problem in Gänze angehen müssen...
Jetzt schon mal viel Erfolg bei den weiteren Testreihen. Wenn mir einfällt, wie das System heisst, meld ich mich nochmal.

Es sind doch Falzlüftungssysteme:
https://www.innoperform.de/produkte/fensterluefter/arimeo-fensterfalzluefter
Und dazu passend gibt es dann auch Dichtungen für Türen. - Einfach bei denen auf der Seite oben auf Produkte / Überströmdichtung.

Ja, das ist eh schon jede Nacht Standart. Wir hatten im letzten Winter extreme Probleme mit Tauwasser an den Fensterscheiben innen. Das Wasser steht an der Unterkannte der Scheibe eines jeden Fensters und jeder Terassen- und Balkontüre. Und man muss mehrmals täglich dieses Wasser entfernen, weil sonst Schimmel ensteht. Und wenn der mal da ist, hat man ein richtiges Problem. Das ist bei uns nicht der Fall, weil wir x-mal täglich trocknen und Lüften. Aber das kanns ja nicht sein.

Jetzt will ich zumindest Nachts immer die Rolladen Schlitze offen lassen und die Fenster gekippt, was ich bei mir im Zimmer jetzt schon länger mache. Das sollte eigentlich als "Zwangsbelüftung" reichen. Aber ob das geht werde ich erst in den Nächten sehen, wo die Aussentemperatur in deutliche Minustemperaturen geht. Mal schauen. Ich werde jedenfalls an dem Thema drann bleiben.
Hier ist der aktuelle Wert (742PPM) von heute, der wie gestern schon, eigentlich in dieser Höhe bleibt. Bischen rauf und runter, 650-800, mehr spielt sich nicht ab, wenn ich die Türe ins Haus auf lassen.

kippfenster sorgen eher für kalte wände
(und dadurch noch mehr kältegefühl)
als für frische Luft.

Naja, das Rollo zu, mit nur ein paar Schlitzen offen, und dann das Kippfenster offen. Das sollte etwa wie ein extrem undichtes Fenster wirken. Jedenfalls ändert es innen am Termometer, das unterm Fenster steht, auch hinterm Komma an der Temperatur nichts. Aber wie gesagt, ich teste halt mal. Das habe ich schon ein paar Nächte so gemacht und es funktioniert. Wie Sinnvoll es ist lasse ich mal offen. Aber ich kann nicht die Fenster umbauen, weil wir nur Mieter sind und auch das Geld nicht haben um es für komplett Umbauten beim Fenster rauszuwerfen.

Bei mir im Raum habe ich ja wie schon beschrieben vor, Das Fenster nachts komplett zu öffnen und eine Platte rein, die als Fensterersatz wirkt, einen automatischen Schieber hat, der den Luftweg zu einem 80 oder 100mm Rohr freigibt. Und in dem Schlauch ein passender Lüfter der mit Arduino geregelten Lauf die Frische Luft zum Atemgerät bringt, das direkt unter dem Fenster ist. Und mit Luftfeuchte- und Lufttemperatur- und CO2 Messung dann den Schieber und den Lüfter nach meinen Vorgaben regeln. Das ist mal erstes Ziel. Wie sinnvoll das dann ist, wird sich zeigen. :grinning: Aber ich verändere damit nichts am Fenster, mache kein einziges Loch in das Fenster. Alle Arbeiten finden nur an dem Fensterersatz statt. Oder an der Wand über dem Fenster einen Zylinder befestigen, der dann über ziehen und schieben das Kippfenster reguliert. Die kalte Luft fällt dann von alleine genau runter zum Atemgerät, das unterm Fenster steht. Das gefällt mir fast noch besser. Aber das sind ungelegte Eier.

So, jetzt habe ich die Luftfeuchte- und Temp. Sensoren bekommen und natürlich gleich eiligst eingebaut :grinning: auf der TestConsole. Am Mittwoch bekomme ich den Stellmotor fürs Kippfenster und das Netzteil dafür. Dann gehts an den Endsprurt. Ich habe mir eine Befestigung überlegt, wie ich den Stellmotor ans Fenster bringe ohne sichtbare Verletzung des Fensters. Aber dazu mehr, wenn ich das Zeug installiert habe.

Ich habe das Gerät inzwischen ziehmlich fertig. Deshalb hier mal der Code.

// Arduino CO2 Sensor - MH-Z19 Beispiel und Sketch
// https://iotspace.dev/arduino-co2-sensor-mh-z19-beispiel-und-sketch
/*
  bis 400   frische Außenluft
  bis 800   hohe Raumluftqualität
  bis 1000  akzeptabel „Pettenkoferzahl“
  1000–2000 Hygienisch auffällig
  über 2000 Hygienisch inakzeptabel
*/
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
#include "DHT.h"
const byte DHTPIN1 = 2;         // Hier die Pin Nummer eintragen wo der Sensor1 angeschlossen ist
const byte DHTPIN2 = 3;         // Hier die Pin Nummer eintragen wo der Sensor2 angeschlossen ist
#define DHTTYPE DHT22     // Hier wird definiert was für ein Sensor DHT11 oder DHT22 !!
DHT dht1(DHTPIN1, DHTTYPE); //Sensor1 einrichten
DHT dht2(DHTPIN2, DHTTYPE); //Sensor2 einrichten
const byte DataPin = 6; // Pin für CO2 Sensor
const byte RPWM = 9;
const byte LPWM = 10;
unsigned long motostart = 0;
unsigned long motolauf = 15000;
//-------Schalter------
const byte offen = 11;
byte schalter1 = 0;
const byte zu = 12;
byte schalter2 = 0;
byte schaltermerker = 0;
byte schaltermerker2 = 0;
//-------Taster-------
const byte Taster = 13;
byte Tasterstatus = 0;
byte Tastenmerker = 0;
unsigned long Sekundenablauf01 = 0; // Tastenabfrage von Taster 300ms aussetzen
const unsigned long Pausezeit01 = 300;
//----CO2 Sensor------
int ppmrange = 5000;
unsigned long pwmtime;
int PPM = 0;
float pulsepercent = 0;
//---Fenstersteller--
byte lueftung = 0;
byte lueftung2 = 0;
//---Programm Pause--
unsigned long Sekundenablauf02 = 5000; // Programmpause 5 Sekunden
const unsigned long Pausezeit02 = 5000;
void setup() {
  lcd.begin();
  lcd.backlight();
  pinMode(DataPin, INPUT);
  Serial.begin(9600);
  // Luftfeuchte und Temperatur Sensoren
  dht1.begin(); // Sensor1 starten
  dht2.begin(); // Sensor2 starten
  //-----------Aus-/Eingänge einrichten-------------------------------------
  pinMode(RPWM, OUTPUT);              // PWM Motorsteuerung auf
  pinMode(LPWM, OUTPUT);              // PWM Motorsteuerung zu
  pinMode(offen, INPUT_PULLUP);       // Schalter Fenster auf
  pinMode(zu, INPUT_PULLUP);          // Schalter Fenster zu
  pinMode(Taster, INPUT_PULLUP);      // Taster Display ein/aus
}
//--------------------------------------------------------------------------
void loop()
{
  //-------------Taster lesen-----------------------------------------------
  if (millis() - Sekundenablauf01 >= Pausezeit01) { // 200msec abgelaufen?
    Tasterstatus = digitalRead(Taster);         // Pin von Taster abfragen
    if (Tasterstatus == LOW) {                    // Ist Taster gedrueckt?
      Tastenmerker = !Tastenmerker;   // Merken dass Taster gedrueckt wurde
      if (Tastenmerker == LOW)
      {
        lcd.noBacklight();
      }
      else
      {
        lcd.backlight();
      }
      Sekundenablauf01 = millis();                  // Die 200ms neu starten
    }
  }
  //-------------------------------------------------------------------------
  if (millis() - Sekundenablauf02 >= Pausezeit02) { // 5000ms abgelaufen?
    Sekundenablauf02 = millis();                     // Die 5000ms neu starten
    //-----------------------------------------------------------------------
    pwmtime = pulseIn(DataPin, HIGH, 2000000) / 1000;
    float pulsepercent = pwmtime / 1004.0;
    PPM = ppmrange * pulsepercent;
    lcd.setCursor (0, 3);
    lcd.print (F(" CO2 in PPM = "));
    lcd.setCursor (14, 3);
    lcd.print (F("     "));
    lcd.setCursor (14, 3);
    lcd.print (PPM);

    float h1 = dht1.readHumidity();    // Lesen der Luftfeuchtigkeit1 und speichern in die Variable h1
    float t1 = dht1.readTemperature(); // Lesen der Temperatur in °C1 und speichern in die Variable t1
    float h2 = dht2.readHumidity();    // Lesen der Luftfeuchtigkeit2 und speichern in die Variable h2
    float t2 = dht2.readTemperature(); // Lesen der Temperatur in °C2 und speichern in die Variable t2
    //--------------------------
    lcd.setCursor (18, 1);
    lcd.print (F(" "));
    lcd.setCursor (0, 1);
    lcd.print (F(" L1 "));
    lcd.print (h1);
    lcd.print (F("% T1 "));
    lcd.setCursor (14, 1);
    lcd.print (t1);
    if (t1 < 10)
    {
      lcd.setCursor (14, 1);
      lcd.print (F(" "));
      lcd.print (t1);
    }
    //------------------------
    lcd.setCursor (18, 2);
    lcd.print (F(" "));
    lcd.setCursor (0, 2);
    lcd.print (F(" L2 "));
    lcd.print (h2);
    lcd.print (F("% T2 "));
    lcd.setCursor (14, 2);
    lcd.print (t2);
    if (t2 < 10)
    {
      lcd.setCursor (14, 2);
      lcd.print (F(" "));
      lcd.print (t2);
    }
    //---Lüftung Einschaltbedingung-----
    if (lueftung == 0)
    {
      if ((t1 >= 23) && (PPM > 900))
      {
        lueftung = 1;
      }
    }
    //---Lüftung Ausschaltbedingung-----
    if (lueftung == 1)
    {
      if ((t1 <= 21) || (PPM < 430))
      {
        lueftung = 0;
      }
    }
    //-------------Schalter lesen-------------------------------------------
    schalter1 = digitalRead(offen);
    if (schalter1 == LOW)
    {
      schaltermerker = 1;
    }
    schalter2 = digitalRead(zu);
    if (schalter2 == LOW)
    {
      schaltermerker = 2;
    }
    if ((schalter1 == HIGH) && (schalter2 == HIGH))
    {
      schaltermerker = 0;
    }
    lcd.setCursor (14 , 0);
    lcd.print (schaltermerker);
    lcd.print (F(" - "));
    lcd.print (lueftung);

    //---------------Motoranforderung überwachen--------------------------------
    if ((lueftung != lueftung2) || (schaltermerker != schaltermerker2))
    {
      //------------------Fenster öffnen--------------------------------------
      if (((lueftung == 1) && (schaltermerker == 0)) || (schaltermerker == 1))
      {
        analogWrite(LPWM, 0);
        analogWrite(RPWM, 255);
        lcd.setCursor (0, 0);
        lcd.print (F(" Fenster auf  "));
      }
      //------------------Fenster schließen-----------------------------------
      if (((lueftung == 0) && (schaltermerker == 0)) || (schaltermerker == 2))
      {
        analogWrite(LPWM, 255);
        analogWrite(RPWM, 0);
        lcd.setCursor (0, 0);
        lcd.print (F(" Fenster zu  "));
      }
      motostart = millis();
      lueftung2 = lueftung;
      schaltermerker2 = schaltermerker;
    }
    if (millis() - motolauf >= motostart)
    {
      analogWrite(LPWM, 0);
      analogWrite(RPWM, 0);
      lcd.setCursor (0, 0);
      lcd.print (F(" Fenster Stop "));
    }
  }
}

Fürs Gehäuse fehlt mir noch die Allplatte oben. Die bekomme ich wohl die nächsten Tage.
Das Gerät hat schon eine Nacht seine Arbeit getan, und nach ein paar Anpassungen gibts heute die nächste Nacht im Test.
Ich habe eigentlich alles so in etwa umgesetzt, wie ich es mir vorgestellt habe. Dazu kam noch ein Schalter mit drei Stellungen. in Mittelstellung macht das Ding seine Arbeit mit automatischen öffenen und schließen nach meinen Vorgaben, Schalter nach oben, das Fenster macht auf, und bleibt auf, Schalter nach unten, Das Fenster macht zu und bleibt zu. Dann noch ein Taster, mit dem ich das Display dunkel schalten kann, und wieder drauf tippen, dann ist das Display wieder hell. LED´s habe ich keine eingebaut, weil das Licht ja nur stört in der Nacht. Der Fenster Stellmotor hat Endabschaltungen, er braucht von auf nach zu, oder anders herum, etwa 12 Sekunden. Nach 15 Sekunden habe ich eine Spannungsabschaltung drin, dass es keinen Stress gibt, wenn diese Abschaltung mal nicht gehen sollte. Inzwischen macht ich das Fenster schon bei 900ppm auf, bei 430ppm zu. Sollte der Wert nicht erreicht werden, macht das Gerät bei unter 21 Grad zu. Aber ist ja alles noch nicht endgültig. Ich bin auch noch am überlegen, ob ich eine Uhr Einbau. Dass die Reglung auch noch nach Tages oder Nachtzeiten veränderbar ist. Ich sehe dafür noch keinen guten Grund, aber das kann morgen ja schon wieder anders aussehen. :grinning:

Hier das Bild von derzeitigen Stand. Da kommt noch ein Schöner Vorhang hin, dann ist das schon fast nicht mehr da :grinning:

Ich würde das mit einem einem Auslöser hell machen und nach xx Sekunden automatisch dunkel stellen - wenn nicht retriggert wird.

Ja, das wollte ich zuerst. Das könnte ich noch zusätzlich machen. Dass ich dann entweder mit der Taste dunkel schalten kann, oder wenn ich nichts mache, gehts von alleine nach einiger Zeit aus. Das wird wohl demnächst noch passieren :slightly_smiling_face:

Kacke, war vorhin schon nicht schick.
Die FunkTastatur verschluckt sich - ich muss dringend die Batterien wechseln.
Es sollte heissen:
mit einem Merker und einem Auslöser
sorry....

Aber wir meinen hoffentlich das selbe :wink:

Ich habe jetzt mal die Displaybeleuchtung nach 10 Min. aus. Wenn sich was tut, was man am Display angezeigt bekommt, geht die Beleuchtung auch wieder für 10 Min. an. Und natürlich kann man mit dem Taster weiterhin ein- und ausschalten.

// Arduino CO2 Sensor - MH-Z19 Beispiel und Sketch
// https://iotspace.dev/arduino-co2-sensor-mh-z19-beispiel-und-sketch
/*
  bis 400   frische Außenluft
  bis 800   hohe Raumluftqualität
  bis 1000  akzeptabel „Pettenkoferzahl“
  1000–2000 Hygienisch auffällig
  über 2000 Hygienisch inakzeptabel
*/
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
#include "DHT.h"
const byte DHTPIN1 = 2;         // Hier die Pin Nummer eintragen wo der Sensor1 angeschlossen ist
const byte DHTPIN2 = 3;         // Hier die Pin Nummer eintragen wo der Sensor2 angeschlossen ist
#define DHTTYPE DHT22     // Hier wird definiert was für ein Sensor DHT11 oder DHT22 !!
DHT dht1(DHTPIN1, DHTTYPE); //Sensor1 einrichten
DHT dht2(DHTPIN2, DHTTYPE); //Sensor2 einrichten
const byte DataPin = 6; // Pin für CO2 Sensor
const byte RPWM = 9;
const byte LPWM = 10;
unsigned long motostart = 0;
unsigned long motolauf = 15000;
//-------Schalter------
const byte offen = 11;
byte schalter1 = 0;
const byte zu = 12;
byte schalter2 = 0;
byte schaltermerker = 0;
byte schaltermerker2 = 0;
//-------Taster-------
const byte Taster = 13;
byte Tasterstatus = 0;
byte Tastenmerker = 0;
unsigned long Sekundenablauf01 = 0; // Tastenabfrage von Taster 300ms aussetzen
const unsigned long Pausezeit01 = 300;
unsigned long Sekundenablauf03 = 0; // Displayzeit 10 Min. hell
const unsigned long Pausezeit03 = 60000 * 10UL;
//----CO2 Sensor------
int ppmrange = 5000;
unsigned long pwmtime;
int PPM = 0;
float pulsepercent = 0;
//---Fenstersteller--
byte lueftung = 0;
byte lueftung2 = 0;
//---Programm Pause--
unsigned long Sekundenablauf02 = 5000; // Programmpause 5 Sekunden
const unsigned long Pausezeit02 = 5000;
void setup() {
  lcd.begin();
  lcd.backlight();
  pinMode(DataPin, INPUT);
  Serial.begin(9600);
  // Luftfeuchte und Temperatur Sensoren
  dht1.begin(); // Sensor1 starten
  dht2.begin(); // Sensor2 starten
  //-----------Aus-/Eingänge einrichten-------------------------------------
  pinMode(RPWM, OUTPUT);              // PWM Motorsteuerung auf
  pinMode(LPWM, OUTPUT);              // PWM Motorsteuerung zu
  pinMode(offen, INPUT_PULLUP);       // Schalter Fenster auf
  pinMode(zu, INPUT_PULLUP);          // Schalter Fenster zu
  pinMode(Taster, INPUT_PULLUP);      // Taster Display ein/aus
}
//--------------------------------------------------------------------------
void loop()
{
  //-------------Taster lesen-----------------------------------------------
  if (millis() - Sekundenablauf01 >= Pausezeit01) { // 200msec abgelaufen?
    Tasterstatus = digitalRead(Taster);         // Pin von Taster abfragen
    if (Tasterstatus == LOW) {                    // Ist Taster gedrueckt?
      Tastenmerker = !Tastenmerker;   // Merken dass Taster gedrueckt wurde
      if (Tastenmerker == LOW)
      {
        lcd.noBacklight();
      }
      else
      {
        lcd.backlight();
        Sekundenablauf03 = millis();
      }
      Sekundenablauf01 = millis();                  // Die 200ms neu starten
    }
  }
  if (millis() - Sekundenablauf03 >= Pausezeit03)  // 10 Min. abgelaufen?
  {
    Tastenmerker = LOW;  // Tastenmerker auf Displaybeleuchtung aus
    lcd.noBacklight();   // Displaybeleuchtung aus
  }
  //-------------------------------------------------------------------------
  if (millis() - Sekundenablauf02 >= Pausezeit02) { // 5000ms abgelaufen?
    Sekundenablauf02 = millis();                     // Die 5000ms neu starten
    //-----------------------------------------------------------------------
    pwmtime = pulseIn(DataPin, HIGH, 2000000) / 1000;
    float pulsepercent = pwmtime / 1004.0;
    PPM = ppmrange * pulsepercent;
    lcd.setCursor (0, 3);
    lcd.print (F(" CO2 in PPM = "));
    lcd.setCursor (14, 3);
    lcd.print (F("     "));
    lcd.setCursor (14, 3);
    lcd.print (PPM);

    float h1 = dht1.readHumidity();    // Lesen der Luftfeuchtigkeit1 und speichern in die Variable h1
    float t1 = dht1.readTemperature(); // Lesen der Temperatur in °C1 und speichern in die Variable t1
    float h2 = dht2.readHumidity();    // Lesen der Luftfeuchtigkeit2 und speichern in die Variable h2
    float t2 = dht2.readTemperature(); // Lesen der Temperatur in °C2 und speichern in die Variable t2
    //--------------------------
    lcd.setCursor (18, 1);
    lcd.print (F(" "));
    lcd.setCursor (0, 1);
    lcd.print (F(" L1 "));
    lcd.print (h1);
    lcd.print (F("% T1 "));
    lcd.setCursor (14, 1);
    lcd.print (t1);
    if (t1 < 10)
    {
      lcd.setCursor (14, 1);
      lcd.print (F(" "));
      lcd.print (t1);
    }
    lcd.setCursor (19, 1);
    lcd.print (F(" "));
    //------------------------
    lcd.setCursor (18, 2);
    lcd.print (F(" "));
    lcd.setCursor (0, 2);
    lcd.print (F(" L2 "));
    lcd.print (h2);
    lcd.print (F("% T2 "));
    lcd.setCursor (14, 2);
    lcd.print (t2);
    if (t2 < 10)
    {
      lcd.setCursor (14, 2);
      lcd.print (F(" "));
      lcd.print (t2);
    }
    lcd.setCursor (19, 2);
    lcd.print (F(" "));
    //---Lüftung Einschaltbedingung-----
    if (lueftung == 0)
    {
      if ((t1 >= 23) && (PPM > 900))
      {
        lueftung = 1;
      }
    }
    //---Lüftung Ausschaltbedingung-----
    if (lueftung == 1)
    {
      if ((t1 <= 21) || (PPM < 430))
      {
        lueftung = 0;
      }
    }
    //-------------Schalter lesen-------------------------------------------
    schalter1 = digitalRead(offen);
    if (schalter1 == LOW)
    {
      schaltermerker = 1;
    }
    schalter2 = digitalRead(zu);
    if (schalter2 == LOW)
    {
      schaltermerker = 2;
    }
    if ((schalter1 == HIGH) && (schalter2 == HIGH))
    {
      schaltermerker = 0;
    }
    lcd.setCursor (14 , 0);
    lcd.print (schaltermerker);
    lcd.print (F(" - "));
    lcd.print (lueftung);
    //---------------Motoranforderung überwachen--------------------------------
    if ((lueftung != lueftung2) || (schaltermerker != schaltermerker2))
    {
      Tastenmerker = HIGH;  //Tastenmerker auf Displaybeleuchtung ein
      lcd.backlight();      // Displaybeleuchtung ein
      //------------------Fenster öffnen--------------------------------------
      if (((lueftung == 1) && (schaltermerker == 0)) || (schaltermerker == 1))
      {
        analogWrite(LPWM, 0);
        analogWrite(RPWM, 255);
        lcd.setCursor (0, 0);
        lcd.print (F(" Fenster auf  "));
      }
      //------------------Fenster schließen-----------------------------------
      if (((lueftung == 0) && (schaltermerker == 0)) || (schaltermerker == 2))
      {
        analogWrite(LPWM, 255);
        analogWrite(RPWM, 0);
        lcd.setCursor (0, 0);
        lcd.print (F(" Fenster zu  "));
      }
      motostart = millis();
      lueftung2 = lueftung;
      schaltermerker2 = schaltermerker;
    }
    if (millis() - motolauf >= motostart)
    {
      analogWrite(LPWM, 0);
      analogWrite(RPWM, 0);
      lcd.setCursor (0, 0);
      lcd.print (F(" Fenster Stop "));
    }
  }
}

Jetzt habe ich meine Kiste endlich zu. Also die Alufront ist drauf.
Hier mal ein Bild davon.

2 Likes

Ich schreibe den Beitrag jetzt nochmal, da ging was schief.

Das Gerät ist jetzt fertig, läuft wie ich es wollte. Optisch ist es sicher durch den großen Fenstermotor nicht der Hingucker, aber die Optik ist schon immer nicht das, was mich interessiert. Aber soooo schlecht ist es nicht geworden. Der Vorhang verdeckt fast die ganze Schandtat :roll_eyes: aber ansonsten habe ich was ich wollte.

1 Like

Glückwunsch! :slight_smile:

Auch daß Du jetzt bessere Luft bekommst?

Ja, das ist tatsächlich schon ein wenig besser. Ich habe jetzt extra um das zu testen, seit drei Tagen wieder die Zimmertüre die ganze Nacht zu, und ich habe wieder deutlich bessere Atemwege. Also die Nase macht nicht gegen Morgen zu. Und ich bekomme so dreimal pro Nacht mit, dass das Fenster öffnet. Wie oft es wirklich ist, weiß ich nicht. Ich werde mal einen Zähler einbauen und am Display anzeigen, weil es mich interessiert wie oft wirklich gelüftet wird.

Schönes WE
Franz

Ich habe festgestellt, dass es nicht immer gut ist, wenn ich die Zimmertüre offen habe. Gerade vor einer Std. hatte ich eine Beobachtung. Die Zimmertüre war einen Spalt offen. Der CO2 Sensor kam mit seinem Wert über 900ppm. Also machte das Gerät das Fenster auf. Da habe ich nach etwa 20 Min. festgestellt, dass das Fenster immer noch offen ist, weil der ppm Wert nicht besser wurde, sondern schlechter (1100ppm). Ausserdem wurde die Temperatur nicht niedriger. Draussen hatte es -0,5 Grad. Also MUSS es im Raum unter dem Fenster kälter werden. Tat es aber nicht. Ich habe daher angenommen, dass die Luft im Haus von unten durch irgend ein Fenster einströmte, und bei mir beim Fenster die Luft nicht rein, sondern raus strömte. Also Zimmertüre zu, und innerhalb von 10 Min. machte es wieder das, was es machen sollte. Die Luft wurde wieder sehr gut, unter 420ppm, die Temperatur ging runter auf 22,4 Grad. Das Fenster machte zu, weil der ppm Wert unter 420 war. Alles gut. Also wenn die Lüftung arbeitet, ist es nicht unbedingt gut, wenn die Zimmertüre offen ist, weil dann die Luftströmung in einer ungewünschten Richtung ziehen kann.

Vielleicht sollte ich einen Art Plausiblitäts-Test in die Software einbauen. Wenn das Fenster geöffnet ist, draussen sehr niedrige Themperaturen herrschen, aber die Themperatur innen nach 10 Min. nicht absinkt, Fenster wieder schließen und eine Std. warten. Weil ich nicht das ganze Haus lüften will, sondern meinen Raum. Eine Alternative wäre natürlich, die Zimmertüre automatisch schließen und weiter Lüften. Aber das ist mir vom Aufwand her zu groß. Auch noch eine automatische Türschießung einzubauen :roll_eyes: :pleading_face:

Würde ich auch machen. Wenn nach 10 min. Lüften die ppm nicht signifikant abgenommen haben, dann mache ich das Fenster wieder zu.