17

Kleine LUA Scripte Teil 4: CO2-Check mit netatmo

YESLY Smart Home
by boomx28. Dezember 2015

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

siio-App
About The Author
boomx
17 Comments
  • Hoggle
    Hoggle
    28. Dezember 2015 at 21:04

    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.

    • 28. Dezember 2015 at 21:14

      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ß

      • Hoggle
        Hoggle
        28. Dezember 2015 at 22:12

        :-)
        Danke!
        Die Auto-Kalibrierung ist aktiviert….. Komisch – macht er angeblich auch selber.
        Ich habe mal das Manuelle angestoßen…

  • crissxcross
    28. Dezember 2015 at 22:07

    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

    • 29. Dezember 2015 at 0:13

      Danke für deine Ergänzungen und deine Idee :)

    • H3nnin9
      25. Januar 2016 at 0:56

      Erst mal Danke Jungs für die tollen Skripte! Weiter so!!! An welcher Stelle des Skripts muss ich denn den Code einfügen/ersetzen damit das Licht nur auf Orange wechselt wenn es eingeschaltet ist? Gruß

      • 25. Januar 2016 at 8:37

        Hi,

        den Wert kannst du in Zeile 41 ändern. Dort steht der Wert, den das Skript bei Werten bei erkannten Werten < 1000 setzt :)Gruß

  • gringo1
    29. Dezember 2015 at 8:08

    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

    • 29. Dezember 2015 at 10:28

      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ß

  • fs1997
    fs1997
    29. Dezember 2015 at 13:33

    Bin auch begeistert von Eurer LUA Scripte Reihe. Danke und gerne weiter so.

    Geht das auch mit HUE´s?

    • 29. Dezember 2015 at 13:36

      Hi,

      danke :)

      Sollte auch mit den HUEs gehen. Schieb ich heute Abend mal nach.

      Gruß

      • 30. Dezember 2015 at 0:01

        Ok, hab es mir angeschaut. Ist ein wenig mehr zum Coden, da die RGBW-Funktion umprogrammiert werden muss. Mach ich morgen.

        • 20. Oktober 2016 at 10:41

          Konntest du sowas für HUE scripten?

          Danke und Grüsse aus der Schweiz

          • 21. Oktober 2016 at 8:37

            Hi,

            hatte ich bis jetzt nicht geplant. Die HUEs werden anders angesteuert als die RGBWs, weshalb dort ein solcher Übergang schwerer abzubilden ist. Man könnte allerdings bei 1000 ppm direkt auf grün schalten und bei 1500 ppm direkt auf rot. Dazu müsstest du nur die if-else-Abfrage anpassen und die Funktion abändern.

            Gruß

  • thebrain
    5. August 2016 at 22:03

    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

  • Danny
    8. Januar 2017 at 7:35

    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

Leave a Response