CO2 Sensor für Homematic und ioBroker im Eigenbau!

In der heutigen Zeit mit Corona – Homeoffice und anderen Viren die so rumfleuchen ist es wichtig, dass man sich auch um die eigene Atemluft in Räumen kümmert. Hierfür wichtig ist unter anderem der CO2 Gehalt im Sauerstoff. Dieser sollte möglichst um die 400ppm (parts per million) liegen …. weniger ist natürlich besser. Dafür hier einmal eine kleine Übersicht:

CO2 Gehalt im ppmCO2 in %Luftqualität
Unter 800<0,08 %Hohe Raumluftqualität
800 – 1.0000,08 – 0,1 %Mittlere Raumluftqualität
1.000 – 1.4000,1 – 0,14 %Mäßige Raumluftqualität
Über 1.400>0,14 %Niedrige Raumluftqualität
Übersicht der CO2 Werte

CO2 Sensor selbst bauen

Um nun die Luftqualität messen zu können benötigen wir also irgendwie ein Messgerät. Hierfür kann man sich natürlich eins kaufen, jedoch sind diese nicht ganz günstig. Kürzlich würde von HMIP ein Sensor vorgestellt, der als Selbstbausatz noch 150Euro kostet! Das war mir dann doch zu viel Geld.

Auf Amazon habe ich einen günstigeren Sensor entdeckt – den MH-Z19. Dieser misst neben dem CO2 Gehalt der Luft auch die Temperatur – praktisch! Viele Anleitungen hierzu gibt es schon im Internet, wie man den Sensor in den ioBroker einbinden kann – aber noch nichts zu Homematic.

Um nun die Sensordaten auslesen zu können, benötigen wir einen ESP8266. Mit der Easy ESP Software ist dieser recht einfach zu konfigurieren – und das machen wir jetzt zusammen.

ESP8266 flashen

Zunächst einmal laden wir uns die Easy ESP Software von Github herunter und entpacken diese. Das tolle an diesem Paket ist, dass für Windows bereits ein tool zum flashen dabei ist. Der Flashvorgang ist hierbei recht simpel. Die Software starten. Dann die Firmware aussuchen, die wir flashen wollen (in meinem Fall die ESP_Easy_mega_20210223_normal_ESP8266_4M1M.bin

Als nächstes mit einem USB Kabel den ESP8266 anstecken. Wichtig dabei ist, dass der Flash Button auf dem ESP gedrückt wird und auch während des Flash Vorgangs immer gedrückt bleiben muss! In der Software erscheint nach dem Vorgang ein “Done” – somit ist dies schonmal erledigt.

Den ESP können wir dann wieder vom Strom trennen – ein paar Sekunden warten und wieder mit dem Strom verbinden. Nun muss noch das WLAN eingerichtet werden. Um dies zu tun, baut der ESP ein eigenes WLAN auf. Hierbei nutzte ich einfach mein Handy und habe mich mit diesem WLAN verbunden. Das Passwort hierbei ist : configesp

Im normalfall öffnet nun das Handy automatisch einen Browser und man ist in der Konfigurationsoberfläche vom ESP, um diesen mit dem WLAN zu verbinden. Klappt das bei Dir nicht (so wie es bei mir auch nicht geklappt hat) öffnen wir einen Browser auf dem Handy und geben als Adresse die 192.168.4.1 ein. Nun können wir das WLAN auswählen – das Passwort eintragen und schon ist der ESP im heimischen Netz zu finden. Unten auf der Konfigurationsseite wird dann noch die IP Adresse angezeigt, unter der der ESP nun zu erreichen ist.

Konfiguration vom ESP8266

Da das Gerät nun im heimischen WLAN ist, können wir damit beginnen den Sensor zu konfigurieren. Dafür trennen wir den ESP erstmal wieder vom Strom. Am CO2 Sensor habe ich erstmal eine kleine Steckerstiftleiste angelötet – somit ist es einfacher diesen zu verbinden. Dies ist kein “muss” – ebenso kannst Du auch direkt den Sensor an den ESP anlöten, wenn Du willst. Hier nun die Daten zum verbinden:

Pin am ESP8266Pin am MH-Z19
5,5V oder V.USBVCC oder Vin
GNDGND
D7 oder GPIO 13TX
D5 oder GPIO 14RX
Ansschlußbelegung

Sehr geholfen hat mir hier auch die folgende Grafik vom ESP8266:

Sind diese nun verbunden, so kannst Du den ESP wieder mit Strom versorgen.

Weiter geht’s nun in der Oberfläche vom ESP. Wir verbinden uns also wieder mit der Weboberfläche und öffnen hier den Devices Tab. Die Tabelle sollte hier leer sein – klicken also auf “Add” in der ersten Spalte.

Gut zu wissen ist hier, dass viele Einstellungen erst auftauchen wenn Du unter “Serial Port” – “SoftwareSerial” auswählst. Diesen Schritt also als erstes durchführen. Hast Du andere GPIO Ports am ESP genutzt kannst Du diese auch hier nochmal anpassen. Sind alle Daten eingetragen, dann können wir dieses unten auf der Seite mit “Submit” bestätigen.

Die ersten Werte sollten nun auch im Sensor hier auftauchen:

Einbindung in die Homematic

Um den Sensor nun in die Homematic einbinden zu können erstellen wir uns als erstes eine Systemvariable. Diese einfach im WebUI unter Einstellungen -> Systemvariablen hinzufügen mit den folgenden Daten:

Diese Systemvariable wollen wir nun mit dem ESP beschreiben. Hierfür nutzen wir die Möglichkeit, diese via http Befehl zu aktualisieren. Wir verbinden uns also wieder auf unser ESP und können hier nun im Tab “Controllers” einen neuen Controller hinzufügen.

Als Protokoll wähle ich hier “Generic http” aus. Die Controller IP ist die IP Adresse Deiner CCU zuhause. Als Port bitte 8181 eintragen. Nun müssen wir noch unten den “Controller Publish” ändern. Hier trägst Du nun das folgende einfach ein:

verdrahtet.exe?ret=dom.GetObject(%27CO2%27).State(%val1%)

Auch nicht vergessen diese Einstellungen zu aktivieren – also den Haken bei “Enable” setzen. Die Einstellungen sehen bei mir nun wie folgt aus:

Als letzten Schritt müssen wir nun aber noch dem Sensor sagen, dass er die Daten via Controller 1 an die Homematic senden soll. Also wieder die Einstellungen vom Device öffnen und hier den Haken setzen:

Unten bei “Interval” kannst Du noch bestimmen wie oft nun der Wert an die CCU geschickt werden soll. Zu testzwecken hatte ich dies auf 5 Sekunden gesetzt – 60 Sekunden oder gar noch länger reicht aber dicke aus!

Einbindung in den ioBroker

Im ioBroker kann der Sensor natürlich auch eingebunden werden. Hierfür nutze ich einfach MQTT. Den MQTT Broker habe ich bereits im ioBroker installiert. Hier einfach mal meine Einstellungen:

Sind hier nun die Daten hinterlegt konfigurieren wir noch den ESP. In der Weboberfläche unter “Controllers” einen neuen Controller erstellen. Als Protocol – auch wenn wir den ioBroker nutzen – wählen wir hier den Home Assistant aus. Einfach hier die Controller IP (also die vom ioBroker) sowie den Port eintragen.

Solltest Du ein Benutzername und Kennwort hinterlegt haben, so müssen diese unter “Credentials” eingetragen werden.

In den MQTT Einstellungen diese einfach übernehmen:

Controller Client ID: %sysname%_%unit%
Controller Subscribe: %sysname%/#
Controller Publish: %sysname%/%tskname%/%valname%

Als letztes diesen Controller via “Enable” einfach aktivieren.

Als letzten Schritt müssen wir nun aber noch dem Sensor sagen, dass er die Daten via Controller 1 an den ioBroker senden soll. Also wieder die Einstellungen vom “Device” öffnen und hier den Haken setzen:

Unten bei “Interval” kannst Du noch bestimmen wie oft nun der Wert an den ioBroker geschickt werden soll. Zu testzwecken hatte ich dies auf 5 Sekunden gesetzt – 60 Sekunden oder gar noch länger reicht aber dicke aus!

Die Daten tauchen nun nach Aktualisierung in den Objekten auf und können dann von hier aus weiter verarbeitet werden:

Video:

Links:

Hier die von mir verwendeten Artikel:

ESP8266MOD: https://amzn.to/2NGVEAC

MH-Z19 CO2 Sensor: https://amzn.to/3uvMo33

Kurze Jumper-Kabel zum verbinden: https://amzn.to/2O1Z2Wx

Das von mir erstellte und gedruckte Gehäuse: https://www.thingiverse.com/thing:4775093

HMIP-BSL Schalter: https://amzn.to/3qU6stI

Vielleicht auch interessant?

Es wurden keine Ergebnisse gefunden, die deinen Suchkriterien entsprechen.

Beitrag teilen:

55 Kommentare. Hinterlasse eine Antwort

  • Lars-Henning Oberfeld
    27. Februar 2021 10:39

    Da habe ich drauf gewartet. Ich bin gespannt. 👌

    Antworten
  • Und wenn man keinen 3D-Drucker hat, wie kommt man dann an so ein Gehäuse?

    Antworten
    • Vielleicht hat jemand im Freundes und Bekanntenkreis einen 3D Drucker? Oder frag mal auf Facebook in der verdrahtet Gruppe ob Dir jemand das Gehäuse drucken kann

      Antworten
  • Wo kann man das Gehäuse kaufen?

    Antworten
  • Hallo,
    Kann man auch das neuere Modell mit deiner Anleitung verwenden: MH-Z19C ?
    Grüße Kai

    Antworten
  • Hallo toller Beitrag.
    Ich will das nachbauen, von dem Sensor gibt 3 Versionen mit c und und ohne. C ist mit connector so wie ich verstanden habe, aber was ist b. Oder sind die alle gleich.?

    Antworten
  • Hallo Stefan,
    vielen Dank für die Anleitung. Funktioniert klasse.
    Könnte man neben dem CO2 Wert eigentlich auch noch den Temperaturwert den der Sensor liefert übertragen?

    Antworten
  • … und noch eine Frage, kann so eine Systemvariable über RedMatic auch an Home von Apple weitergegeben werden?

    Antworten
  • In welchem Raum habt ihr eigentlich den Sensor so untergebracht, oder habt ihr in jedem Raum so einen CO2 Sensor geplant/installiert?

    Antworten
  • Hallo, was bewirkt das “verdrahtet.exe?ret” im Feld Controller Publish?

    Antworten
    • Damit kann ich mich in deine CCU haken 🙂

      Nee – Spaß beiseite. Das führt hier an der Stelle einen Befehl auf der CCU aus. Du kannst auch ccu.exe schreiben oder ähnliches – das ist hier nur wie ein Platzhalter zu sehen

      Antworten
  • Kai Kuklinski
    5. März 2021 18:38

    Ich verwende den MH-Z19C.
    Der Sensor liefert:
    PPM = 5000
    Temperatur = 3
    U = 0
    Ich habe den Sensor draußen positioniert.
    Die Temperatur stimmt.
    Aber der angezeigt PPM Wert mit 5000 stimmt nicht.
    Was mache ich falsch?

    Antworten
  • Hi,
    Super Idee und Anleitung, vor Allem in Zeiten von HomeOffice.
    Ich wollte meinen habe esp32 mit espeasy und einem dht22 erweitern.
    Nun wollte ich TX und RX an Gpio 1 bzw 3 anschließen, diese sind ausgegraut.
    Wo sollte ich diese nun anschließen?
    Vermutlich einfach, aber kenne mich noch nicht so aus und stehe gerade am Schlauch….
    Danke schon im Voraus.

    Antworten
  • Thomas Kuhn
    16. März 2021 15:45

    Heute ist endlich der Sensor gekommen. Hab gleich alles angeschlossen und eingerichtet. Läuft. 🙂 Hab ihn gerade an der frischen Luft zum kalibrieren. Das Gehäuse ist toll, aber um den Temp-Sensor mit zu benutzen zu klein. Der geht beim mir auf 30 Grad in einem raum mit 22 Grad, da hab ich aber auch andere. Was soll uns der U-Wert sagen, der immer auf 0 steht?

    Hab mir gleich 2 weitere CO2 Sensoren bestellt für 2 weitere Räume die man im Auge behalten sollte. 🙂

    Antworten
  • Hi, heute ist mein Sensor gekommen, ich habe es sofort zusammen gesteckt. Aber die Werte sind etwas merkwürdig. Zuerst zeigte er 1250 ppm und 50 grad.
    Der Wert U bei 0, was ist das eigentlich?
    Zwischenzeitlich war er bei 550,was ich als realistischer ansehe, aber 50 grad?
    Ich habe mal geschaut , der Sensor pcb ist schwarz, konnte das ein Fake Sensor sein?
    Nun ja ich habe mir mal nen teuren bei reichelt bestellt. Ich berichte dann.
    Oder hat jemand einen Tipp?
    Gruß
    Jan

    Antworten
    • Ein Nachtrag. Man kann in der Konfig den gemessenen Wert einfach durch zwei Teilen , nur ist das Richtig? Aber der Tempwert bleibt fix bei 50 bzw 25…

      Antworten
    • Thomas Kuhn
      17. März 2021 12:03

      Bei mir zeigt er jetzt einen U-Wert von 29696 an. Was der bedeutet, weiß ich leider auch nicht und bin da genauso neugierig wie du. 🙂 Die Temp variiert bei mir, aktuell bei 30Grad, was wohl durch den ESP mit beeinflusst wird. Ich habe das C-Model des Sensors im Einsatz.

      Antworten
  • Hi
    Ich denke ich habe einen fake sensor oder er ist defekt. Er zeige bei mir genau das doppelte an. Zumindest vermute ich das. Wenn ich es durch zwei teile scheint es zu stimmen. Aber die Temperatur toggelt zwischen – 10 und 50 Grad. Also mist.
    U ist bei mir 0. Weiß das jemand.

    Antworten
    • Wenn du eine schwarze Platine hast, dann soll es sich um einen Fake-Sensor handeln. So habe ich es zumindest gelesen.

      Ich habe jetzt mal den NodeMCU mit Tasmota geflasht, also der Tasmota-Sensors.bin. Dort wird kein U-Wert ausgegeben. Da es mit Tasmota etwas besser klappen soll und es weniger Konfigarbeit ist, und weil ich mich durch meine Steckdosen damit auskenne, werde ich es auch so laufen lassen. Aktuell ist der Sensor auf der Terrasse zum kalibrieren und dort bleibt er auch die nächste Stunde.

      Antworten
  • Alles klar, hatte ich vermutet. Was auch immer u ist. Ich lasse es raus und warte mal was der Chinese zu dem sensor sagt. Ich habe bereits einen neuen bei reichelt einen neuen bestellt. Hätte ich mal gleich machen sollen.

    Antworten
  • Andre Resties
    18. März 2021 20:05

    Naben, sehr schönes Projekt, funktioniert 1A. In welcher Höhe hängt man den Sensor am besten auf?
    Übrigens, ein Knaller wäre eine Wetterstation auf diese Basis.

    Gruß

    André

    Antworten
  • Hallo,

    ich bin blutiger Anfänger, habe aber alles nach Anleitung gebaut und unter Devices
    auf dem ESP werden mir auch Werte angezeigt. Ich bekomme diese aber nicht in meine RaspberryMatic angezeigt.
    Systemvariable mit gleichem Namen ist angelegt aber es kommt nix an….. habe auch nur das gemacht was im Video
    bzw. in der Anleitung gesagt/geschrieben wird/ist. Hat jemand einen Tipp?

    Antworten
  • Moin. Ich habe nun endlich alle Teile für das Projekt hier. Meine Frage: hast du am Sensor den Platinenteil mit der Buchse für das Anschlusskabel abgesägt ??

    Antworten
  • Andre Resties
    22. März 2021 9:17

    Noch ne Frage. Ist es ohne weiteres Möglich auch mehr als seinen Sensor an der CCU zu betreiben?

    Antworten
    • Klar! Musst hier nur die Systemvariable anpassen sowie natürlich den Link im EasyESP

      Antworten
      • Andre Resties
        1. April 2021 20:14

        OK, da verzweifle ich gerade. Habe 2 verschiedene Systemvariabelen angelegt, es wird aber leider nur eine angezeigt. Was genau muss im EasyESP geändert werden? Adresse der CCU bleibt ja identisch. Muss der Port einen hochgezählt werden?

  • Beim gedruckten Gehäuse gibt es noch was zu beachten. Der Pin zur Aufnahme der Schraube ist vom Umfang her recht dick geraten. Schraubt man nun das Board zu stramm rein, knackt einem ein SMD Widerstand weg. Bei den anderen Pins ist kein Bauteil im Weg, also notfalls nur mit 3 Schrauben sichern. Ich konnte mein Board noch retten, da der Widerstand noch Lötfahnen auswies und nicht gebrochen war. Keine Kritik, nur als Info für alle. Projekt fertig ! Besten Dank nochmals!

    Antworten
  • Welcher Schrauben-Pin ist der kritische?

    Antworten
    • wenn der USB Anschluss vor Dir liegt , der rechte. Hab ihn jetzt abgezwickt. Sieht man auch wenn man unter das Board schaut. Da ist ein SMD Bauteil dicht beim Loch.

      Antworten
  • Hallo zusammen,
    vielen Dank für das informative Video und die Anleitung. Leider habe ich dasselbe Problem wie oben bereits beschrieben:
    CO2-Wert startet beim 500ppm, nach ca. 60 Sekunden schießt er hoch auf 5000ppm und verharrt dort. Die ausgegebene Temperatur ist ebenfalls durchgehend fehlerhaft. Eine Kalibrierung hat leider nichts gebracht.

    Folgende Frage / Vermutung: Kann es sein, dass die oben verlinkten Geräte nicht kompatibel sind? Der ESP8266 liefert doch 3,3V, der verlinkte MH-Z19B braucht aber 5V? Oder liege ich hier falsch?

    Antworten
    • Hallo zusammen, habe das Problem heute dank des Kommentars von „TRM“ unter dem YouTube-Video gelöst. Es scheint wirklich so, dass dem MH-Z19B 3,3V zu wenig sind (ggf. funktioniert die Vorgängerversion auch mit 3,3V). Greift man die 5V vom Spannungswandler auf der Platine (mit „+“ gekennzeichnet) des ESP8266 ab, liefert der Sensor korrekte CO2-Werte und auch die richtige Temperatur.

      Antworten
  • Hallo Stefan,

    wenn du den Wert in der CCU meinst dann ja.

    Gruß ronny

    Antworten
  • Hallo Leute
    ich arbeite mit dem ESP8266 NodeMCU normalerweise auf der Arduino-IDE.
    Wenn ich nun eine neue Easy-ESP-Firmware flashe, kann ich dann nachher wieder mit Arduino-C programmieren? Oder muss ich die alte Firmware wieder flashen und wenn ja, welche ist das?
    Andreas

    Antworten
  • Gunter Wiedner
    6. April 2021 13:11

    Guten Tag Stefan,
    ich nutze Raspberry mit Homematic und habe den Sensor erfolgreich nachgebaut und dir Funktion hat einwandfrei geklappt. Nach ca. 7 Tagen erfolgte jedoch keine Datenübermittlung an den Raspberry. Ich kann über Web den ESP sehen und einrichten aber die Datenübermittlung gelingt nicht mehr.
    Da ich die Werte im Historien mit schreibe konnte ich auch den Zeitpunkt sehen aber die Logdatei vom Raspberry ging nur über 24 h und der Ausstieg war davor. Ich bin jetzt etwas hilflos und komme nicht weiter. Ich habe alles mit einem neuen ESP und Sensor aufgesetzt aber es bleibt dabei.
    Vielleicht gibt es ähnliche Erfahrungen und eine Abhilfe für mein Problem.
    Viele Grüße Gunter

    Antworten
  • Hey zusammen,
    ich kann beim CCU-Programm beim HmIP-BSL nicht “Kanalaktion” auswählen, weiß jemand woran das liegen kann?
    Firmwareversion 1.0.2

    Beste Grüße

    Antworten
    • Es lag ab der Firmware der CCU/RaspberryMatic. Der Aktor wurde vor einer gewissen Firmware angelernt. Ich musste den Aktor von der CCU löschen und neu anlernen, dann hatte ich auch die “Kanalaktion”

      Antworten
    • Hallo! Dies kam bei einem Update hinzu. Wenn Firmware vom Aktor und CCU auf dem neusten Stand sind bitte einmal den Aktor von der CCU löschen und neu Anlernen. Ich weiss – nervt – aber klappt

      Antworten
  • Hallo,
    ich bekomme bei mir in der Systemvariable leider keinen Wert angezeigt. Habe alles so wie in der Anleitung konfiguriert.
    Vielleicht hat jemand eine Idee woran das liegen könnte.

    Viele Grüße
    Tobias

    Antworten
  • Hallo Stefan,
    finde dieses Thema wahnsinnig interessant.
    Kann man so auch einen MQ-7 Kohlenmonoxid Sensor anschließen?
    Hast du irgendeine Idee oder kannst du das vielleicht in irgendeinem Video zeigen wie man einen MQ-7 anschließt und vor allem was man im ESP Easy einstellen muss um die Daten auszulesen.
    Habe mich schon dumm gegoogelt und finde dazu einfach nichts.
    Wäre echt Klasse 🙂

    Antworten
  • Hallo Stefan,
    danke für die super Anleitung. Habe es heute mal ausprobiert. Es funktioniert. Also fast… Sehe PPM, Temp und U Werte in der ESP Easy Mega Wegoberfläche. Leider kommen im ioBroker nur die Werte für die Temp und U an, PPM ist leer. Was mache ich falsch?

    Vielen Dank und viele Grüße
    Basti

    Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Bitte füllen Sie dieses Feld aus.
Bitte füllen Sie dieses Feld aus.
Bitte gib eine gültige E-Mail-Adresse ein.

Weitere ähnliche Beiträge auf verdrahtet.info:

Menü