Kleine LUA Scripte Teil 4: CO2-Check mit netatmo

Geschrieben von boomx

Solltet Ihr eine netatmo Wetterstation in eurem Fibaro HomeCenter 2 eingebunden haben, dann ist dieses "kleine" Skript bestimmt interessant für euch.

Bereits vor 150 Jahren wurde durch den deutschen Chemiker Max von Pettenkofer (Wikipedia) die CO2-Konzentration in einem Raum festgelegt, welche zwischen gefühlt angenehmer und unangenehmer Raumluft unterscheidet. Diese liegt bei 1.000 ppm (ppm = Parts per Million). Alles unter diesem Wert wird als gute Luftqualität empfunden. Alles darüber kann zu abnehmender Konzentrationsfähigkeit, Müdigkeit und zu Kopfschmerzen führen.

Mehr Informationen findet Ihr in dem pdf von www.raumluft.org.

CO2-Konzentration mit netatmo messen

Solltet Ihr eine netatmo Wetterstation besitzen, so wird euch die CO2-Konzentration in eurem Raum bereits angezeigt. Die natatmo-App pusht auch bereits eine Meldung auf euer Handy/Tablet, wenn diese Konzentration den Wert von 1.000 ppm übersteigt.

Netatmo-CO2-Push-iPhone

Eine Push wird von der netatmo-App bereits verschickt

Doch das war uns nicht genug. Deshalb haben wir ein Skript programmiert, welches die Farben eines RGBW-Controllers in Abhängigkeit von der CO2-Konzentration ändert. Alles unter 1.000 ppm wird als "Grün" dargestellt, über dieser Konzentration beginnt dann "Gelb" und geht fließend in "Rot" über. Ab einer Konzentration von mehr als 1.500 ppm wird es dann komplett "Rot". So habt Ihr einen guten Indikator, um mit einem Blick die Qualität der Raumluft zu erkennen.

Anpassungen des Skriptes

Dazu müsst Ihr in den Zeilen 3 und 7 nur die ID von eurem CO2-Sensor (In meinem Fall die 141) eintragen. Die ID findet Ihr, wenn Ihr euch die Optionen des Sensors anzeigen lasst. In der Zeile 8 müsst Ihr dann noch die ID eures RGBW-Controllers (In meinem Fall die 171) eintragen.

id_co2

ID des CO2-Sensor

Das Skript könnt Ihr euch einfach kopieren:

Das Skript wird durch den netatmo CO2-Sensor getriggert (Also immer wenn sich der gemessene CO2-Wert verändert) und prüft dann in 50iger Schritten den aktuellen Wert. Abhängig von diesem Wert werden dann an die Funktion die bestimmten RGBW-Werte übergeben. Sollte der RGBW-Controller aus sein, bleibt dieser auch aus und wird durch das Skript nicht angeschaltet.

Habt Ihr noch weitere Ideen, wie das Skript erweitert werden kann? Wenn ja, dann würden wir uns über eure Ideen in den Kommentaren freuen. Viel Spass :)

Icon für das HC2

Icon für das HC2

Diesen Blogpost hat geschrieben ...

boomx

17 Kommentare

  • Coole Idee.
    Davon aber mal abgesehen - mein CO2-Sensor hat nicht mal die 40 ppm geknackt.
    Meistens ist er bei Null.
    Ist das Ding dann eher kaputt (weil unglaubwürdig) oder die Raumluft wirklich so toll????

    VG Hoggle.

    • Hi,

      oh, ne... Das kann eigentlich nicht sein. In der Atmosphäre herrscht ein CO2-Gehalt von über 300 ppm vor. Bei mir schwankt es so zwischen 400 & 1000 ppm. Über die netatmo-Webseite kannst du den Sensor Kalibrieren. Vielleicht läuft es danach.

      Gruß

  • so, cooler Artikel Daniel. Jetzt will ich mal Klugscheissen. Eine Sache hast du vergessen zu erklären :-)
    Also: Das Script wird von dem CO2 Sensor getriggert. Das würde bedeuten, das dass Licht auch immer angehen würde wenn ein neuer Wert gemessen wurde. Damit das nicht passiert, ist in dem Script eine Prüfung, ob das Licht schon eingeschalten ist und nur dann wird die Farbe anhand des CO2 Wertes verändert.
    Zuständig dafür ist diese Funktion:

    if (tonumber(fibaro:getValue(deviceID, "brightness")) ~= 0) then
    fibaro:call(deviceID, "setColor", RGBWTable[1], RGBWTable[2], RGBWTable[3], RGBWTable[4])
    else
    fibaro:debug('Funktion aufgerufen; RGBW ist aus')

    Das Ganze ist ausgelegt für das Fibaro RGBW Modul. Mit dem Wert brightness kann aber die Zipato RGBW Bulb nichts anfangen. Hier müsst ihr statt brightness -> value nehmen. Das sieht dann so aus:
    ----------------------------------------
    ZIPATO RGBW BULB
    ----------------------------------------
    if (rgbw_option) then
    if (tonumber(fibaro:getValue(deviceID, "value")) ~= 0) then
    fibaro:call(deviceID, "setColor", RGBWTable[1], RGBWTable[2], RGBWTable[3], RGBWTable[4])
    else
    fibaro:debug('RGBW = true; RGBW ist aus')
    end

  • Moin Daniel,

    wieder eine super Idee. Eure Lua Scripte Reihe ist echt klasse. Weiter so.

    Da ich im Wohnzimmer gute 11m RGBW Stripe verbaut habe und mir spontan eine Person einfällt die meckert wenn da alles grün oder orange leuchtet, wäre es doch cool einen eher unauffälligen Wallplug als,Indikator zu nutzen.

    Die blenden einen auch nicht so :).

    So, jetzt erstmal eine Netatmo Wetterstation samt Zubehör kaufen :).

    Grüße
    gringo

    • Hi,

      danke für dein Lob :) Freut mich sehr.

      Coole Idee. Da bräuchte man auch nicht so viele Abfragen, da die Farben des Wallplug beschränkt sind. Aber grün, orange, rot gibt es ja. :)

      Werd ich mal umsetzen.

      Gruß

  • Hallo Daniel,

    vielen Dank für die immer wieder tollen LUA Skripte. Ich bin seit heute Besitzer einer Netatmo Wetterstation, aktuell bin ich sehr begeistert. Ich würde mit den CO2 Werten gerne meine Belüftungsanlage im Haus steuern. Die Idee ist, den vorhanden Schalter (Serienschalter) mit einem Fibaro Relais Unterputzeinsatz 2 Schalter a 1.5 kW auszustatten und die Bedingungen entsprechend zu prüfen. D.h. bei CO2 Werten unter 500 ppm = Stufe 0 (aus), bei werten von 500ppm – 1000ppm = Stufe1, bei 1000-1500ppm = Stufe 2 und bei über 1500ppm = Stufe 3. Bei jeder Schaltänderung würde ich mir eine Push aufs handy vorstellen können.
    Ändere ich bei deinem Code „einfach nur“ die RGB Funktion durch die Schaltzustände des Release?
    Die Stufen würden sich wie folgt zusammensetzen:
    Stufe 0 = beide Schalter 0 (aus
    Stufe 1 = Schalterwippe 1 an
    Stufe 2 = Schalterwippe 12 an
    Stufe 3 = Schalterwippe 1&2 an

    Vielen Dank für die Hilfe
    LG Daniel

  • Hi, interessanter Artikel! Ich plane die netatmo co2 Sensoren für die Steuerung einer Lüftung (0-10V) zu nutzen. Könntest du mir erklären wie ich das Script anpassen muss, um mit dem RGBW die 0-10V in Abhängigkeit vom co2 Gehalt auszugeben? Danke!
    VG
    Danny

Gib deinen Senf dazu!

Cookie Consent mit Real Cookie Banner