Wemos D1 Mini -Tasmota - MH-Z19 Co2 Ampel

  • Hallo,

    ich habe vor mir eine Co2 Ampel zu basteln.

    Als Grundlage nehme ich einen Wemos D1 Mini, geflasht mit Tasmota 8.5.1.sensors. Sensor MH-Z19 (dieser hier) angeschlossen und er wird auch erkannt. Angezeigter Wert 559 ppm. Soweit so gut. Aber nach 5 Minuten geht der Wert bis auf 4999 ppm hoch.

    1. Damit der Sensor frische unbelastete Luft atmet, habe ich ihn mal nach draußen gelegt. Er liegt seit Stunden draußen , der Wert geht aber nicht wieder runter... :/Irgendwelche Ideen.:?:Es gibt Tipps den zu resetten - HD gegen Gnd für 7 sec - aber auch Hinweise dieses nicht zu machen.:/

    2. Des Weiteren würde ich gerne einen RGB 2812 Ring anschließen, welcher dann je nach Wert die Farbe von grün über gelb nach rot wechselt. Idealerweise flüßig oder zumndest nicht nur in drei Stufen grün gelb rot.:/:?: Das ganze gelöst mit Rules....wenn es nicht anders geht auch mit script-

    3. So eine Frage nebenbei. Wenn ich jetzt den Wemos mit mittasmota-DE.bin OTA update, gehen mir dann die Sensoreinstellungen flöten?

    Für Hilfe wäre ich dankbar.

    FB 7590, < 20 x Sonoffs Basic, Dual, 4 Ch pro, T2 (alle Tasmota), 10 x Shelly 2.5(Tasmota) als Rolladenschalter, 3 X Shelly Dimmer (Tasmota), 8 x Shelly 1 (Tasmota), 10 X HomematicIP Fußboden-/ Heizungssteuerung mit Zimmerthermostaten u. Fensterkontakten, 5 x IP-Camera, 2 x WemosD1 mini WLED, 3 x Wemos D1 mini mit Tasmota und 4fach-Relais als Gartenbewässerung, 5 x WemosD1 (Tasmota) u.a. als Garagentorsteuerung, 1 x Frau ;)

    Mein Projekt: Smarte Gartenbewässerung

  • Bulli1308 11. Oktober 2020 um 18:59

    Hat den Titel des Themas von „Wemos D1 Mini -Tasmota - MH-Z19 Co2 Sensor“ zu „Wemos D1 Mini -Tasmota - MH-Z19 Co2 Ampel“ geändert.
  • Moin...

    3. So eine Frage nebenbei. Wenn ich jetzt den Wemos mit mittasmota-DE.bin OTA update, gehen mir dann die Sensoreinstellungen flöten?

    Jupp. Ich empfehle dir, dein Bin online selbst zu kompilieren. Dann hast du alles drin was du brauchst und das in deutsch.

    2. Des Weiteren würde ich gerne einen RGB 2812 Ring anschließen, welcher dann je nach Wert die Farbe von grün über gelb nach rot wechselt. Idealerweise flüßig oder zumndest nicht nur in drei Stufen grün gelb rot. :/:?: Das ganze gelöst mit Rules....wenn es nicht anders geht auch mit script-

    ich hab kein RGB2812, sondern nur die 5050 LED stripes. Da läßt sich mit Einstellungen wie "fade" "speed" bzw. "wakup/wakupduration" der Farbübergang relativ smooth einstellen.

    Ich meine das sollte bei RGB2812 auch gehen. Wenn du nur 3 oder 6 Stufen brauchst für die Farben würde Rules reichen. Wenn du aber eine stufenlose Farbentsprechung zum Co2 Wert haben möchtest, braucht es da umrechenarbeit. Ich binmit Script nicht bewandert aber denke das das mit Rules nicht so einfach umzusetzen wäre.

    Zu 1. Kann ich leider nix sagen ?(

    benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development Release

    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro Basic / MagicHome / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer / Gosund SP111 / ESP12E / WEMOS D1 Mini / ESP32Cam

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712/INA219/MHZ19B/DS3231

    Alexa Sprachsteuerung

    mosquitto/bash/html/cgi auf Wyse5070

  • Danke für die Antwort.

    Zu 3. Hab ich mir gedacht, ist aber nicht dsa Problem, wenn es denn dann mal klappt.

    zu 2. Auch das habe ich mir gedacht. Kannst du mir mit den 6 Stufen in den Rules helfen?

    zu 1. Schade. Kann aber wohl keiner hier im Forum. hab zum MH-Z19 nix gefunden. Finde ich iwie komisch.

    FB 7590, < 20 x Sonoffs Basic, Dual, 4 Ch pro, T2 (alle Tasmota), 10 x Shelly 2.5(Tasmota) als Rolladenschalter, 3 X Shelly Dimmer (Tasmota), 8 x Shelly 1 (Tasmota), 10 X HomematicIP Fußboden-/ Heizungssteuerung mit Zimmerthermostaten u. Fensterkontakten, 5 x IP-Camera, 2 x WemosD1 mini WLED, 3 x Wemos D1 mini mit Tasmota und 4fach-Relais als Gartenbewässerung, 5 x WemosD1 (Tasmota) u.a. als Garagentorsteuerung, 1 x Frau ;)

    Mein Projekt: Smarte Gartenbewässerung

  • zu 2. Auch das habe ich mir gedacht. Kannst du mir mit den 6 Stufen in den Rules helfen?

    Mach ich. Als trigger werden dann immer die Sensorwerte verwendet

    Wenn der Wert erreicht ist:

    on sensor#value = <wert> do backlog <dies>;<und jenes> endon

    <dies> <und jenes> sind dann eben die gewollte Farbe und was eben noch.

    Speed/Fade würde ich global Festlegen.

    Allerdings würde ich erst mal in der Konsole testen ob sowas wie Speed/Fade und Farbwerte funktionieren.

    benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development Release

    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro Basic / MagicHome / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer / Gosund SP111 / ESP12E / WEMOS D1 Mini / ESP32Cam

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712/INA219/MHZ19B/DS3231

    Alexa Sprachsteuerung

    mosquitto/bash/html/cgi auf Wyse5070

    Einmal editiert, zuletzt von HoerMirAuf (12. Oktober 2020 um 15:59)

  • Nochmals Danke für deine Hilfe. Ich werde das mal testen,

    FB 7590, < 20 x Sonoffs Basic, Dual, 4 Ch pro, T2 (alle Tasmota), 10 x Shelly 2.5(Tasmota) als Rolladenschalter, 3 X Shelly Dimmer (Tasmota), 8 x Shelly 1 (Tasmota), 10 X HomematicIP Fußboden-/ Heizungssteuerung mit Zimmerthermostaten u. Fensterkontakten, 5 x IP-Camera, 2 x WemosD1 mini WLED, 3 x Wemos D1 mini mit Tasmota und 4fach-Relais als Gartenbewässerung, 5 x WemosD1 (Tasmota) u.a. als Garagentorsteuerung, 1 x Frau ;)

    Mein Projekt: Smarte Gartenbewässerung

  • Das Problem mit der falschen ppm Anzeigen scheint gelöst. Der Sensor wurde wohl nur mit 3,3 V anstatt 5V versorgt. Seit er mit 5V versorgt wird ist die Anzeige stabil, mit leichten Schwankungen.:)

    FB 7590, < 20 x Sonoffs Basic, Dual, 4 Ch pro, T2 (alle Tasmota), 10 x Shelly 2.5(Tasmota) als Rolladenschalter, 3 X Shelly Dimmer (Tasmota), 8 x Shelly 1 (Tasmota), 10 X HomematicIP Fußboden-/ Heizungssteuerung mit Zimmerthermostaten u. Fensterkontakten, 5 x IP-Camera, 2 x WemosD1 mini WLED, 3 x Wemos D1 mini mit Tasmota und 4fach-Relais als Gartenbewässerung, 5 x WemosD1 (Tasmota) u.a. als Garagentorsteuerung, 1 x Frau ;)

    Mein Projekt: Smarte Gartenbewässerung

  • Hallo,

    wenn die Temperatur größer 23.1 Grad ist soll der LEDRing mit 56% Helligkeit in rot angehen.

    Ich habe es mal so probiert.

    Rule1 ON AM2301#temperature<23.1 do backlog Dimmer 56 ; Color 8F0002 endon

    Rule1 1 natürlich auch eingeschaltet

    Geht aber nicht. Kannst du nochmal helfen?

    Edit: geht doch.

    Jetzt versuche ich

    IF (AM2301#temperature<20.5) do backlog Dimmer 56 ; Color 04008f [ELSEIF (AM2301#temperature>22.6) do backlog Dimmer 56 ; Color 8f0200] Else do backlog Dimmer 56 ; Color 218f00 ENDIF

    Geht aber nicht. Kannst du nochmal helfen?

    FB 7590, < 20 x Sonoffs Basic, Dual, 4 Ch pro, T2 (alle Tasmota), 10 x Shelly 2.5(Tasmota) als Rolladenschalter, 3 X Shelly Dimmer (Tasmota), 8 x Shelly 1 (Tasmota), 10 X HomematicIP Fußboden-/ Heizungssteuerung mit Zimmerthermostaten u. Fensterkontakten, 5 x IP-Camera, 2 x WemosD1 mini WLED, 3 x Wemos D1 mini mit Tasmota und 4fach-Relais als Gartenbewässerung, 5 x WemosD1 (Tasmota) u.a. als Garagentorsteuerung, 1 x Frau ;)

    Mein Projekt: Smarte Gartenbewässerung

    2 Mal editiert, zuletzt von Bulli1308 (13. Oktober 2020 um 02:24)

  • Hi

    AM2301#temperature<23.1

    Das ist ja auch kleiner

    versuch es mal so:

    AM2301#temperature>23.1

    Was bei mehereren größer/kleiner zu beachten ist, ist dann natürlich die Reihenfolge. Denn 23 ist sowohl größer als 10, 15, 20 etc. und würde dann natürlich auch solche Trigger auslösen. Deswegen das = Ist ein Grenzwert genau erreicht dann der Farbwechsel. Nachdem inzwischen die Rules kompremiert werden und bis zu 1000 Zeichen zur Verfügung stehen gehen da schon einige Triggerpunkte.

    Ich bin am überlegen ob man auch nicht einfach zum Temperaturwert einen Faktor Mutipliziert der dann den Farbwert ergibt:

    on AM2301#temperatur do backlog var1=%value%*<wert>; Dimmer 56 ; Color %var1% endon

    IF (AM2301#temperature<20.5) do backlog Dimmer 56 ; Color 04008f [ELSEIF (AM2301#temperature>22.6) do backlog Dimmer 56 ; Color 8f0200] Else do backlog Dimmer 56 ; Color 218f00 ENDIF

    Ist denn if/Else überhaupt einkompiliert? Du hast doch keine selbstgebaute bin oder?

    Expressions in Rules~

    This feature is not included in precompiled binaries.

    To use it you must compile your build. Add the following to user_config_override.h:

    Code
     code" style="font-size: inherit; color: var(--md-default-fg-color--lightest);">#define USE_EXPRESSION         // Add support for expression evaluation in rules (+3k2 code, +64 bytes mem)  #define SUPPORT_IF_STATEMENT   // Add support for IF statement in rules (+4k2 code, -332 bytes mem)  

    benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development Release

    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro Basic / MagicHome / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer / Gosund SP111 / ESP12E / WEMOS D1 Mini / ESP32Cam

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712/INA219/MHZ19B/DS3231

    Alexa Sprachsteuerung

    mosquitto/bash/html/cgi auf Wyse5070

  • Wow so eine ausführliche Antwort am frühen Morgen. Danke.

    Der grösser kleiner Fehler war mir auch schon aufgefallen.

    Nein ich benutze die fertig sensors.bin. Daran habe ich überhaupt nicht gedacht. Also werde ich mir dann nachher mal eine selber brutzeln.

    Stimmt den meine Syntax soweit oder siehst du da einen Fehler?

    FB 7590, < 20 x Sonoffs Basic, Dual, 4 Ch pro, T2 (alle Tasmota), 10 x Shelly 2.5(Tasmota) als Rolladenschalter, 3 X Shelly Dimmer (Tasmota), 8 x Shelly 1 (Tasmota), 10 X HomematicIP Fußboden-/ Heizungssteuerung mit Zimmerthermostaten u. Fensterkontakten, 5 x IP-Camera, 2 x WemosD1 mini WLED, 3 x Wemos D1 mini mit Tasmota und 4fach-Relais als Gartenbewässerung, 5 x WemosD1 (Tasmota) u.a. als Garagentorsteuerung, 1 x Frau ;)

    Mein Projekt: Smarte Gartenbewässerung

  • Stimmt den meine Syntax soweit oder siehst du da einen Fehler?

    Du wirst lachen, aber ich hab noch nie in der Praxis mit den Conditional Rules gearbeitet. Konnte bislang soweit alles mit den normalen Rules lösen und wenn's doch richtig komplex wird übernimmt das dann der Raspi.

    Aber zum Thema. Der Syntax stimmt. Ich kann da keinen Fehler entdecken. In die Richtigkeit der Logik hab ich mich jetzt nicht eingedacht. Das überlas ich dir. ;)

    EDIT:

    Was mir nur auffällt, auch be IF/THEN bleibt das Problem das bei größer und kleiner ALLE Werte die größer bzw kleiner als der Abfragewert sind die Ausführung auslösen. Ich denke du wirst besser mit genauen Triggerwerten beident sein (=). Das ist dann auch unabhängig in welcher Richtung sich der Wert bewegt. Ist er erreicht, gibts diese oder jene Farbe.

    benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development Release

    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro Basic / MagicHome / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer / Gosund SP111 / ESP12E / WEMOS D1 Mini / ESP32Cam

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712/INA219/MHZ19B/DS3231

    Alexa Sprachsteuerung

    mosquitto/bash/html/cgi auf Wyse5070

    Einmal editiert, zuletzt von HoerMirAuf (13. Oktober 2020 um 09:11)

  • Hallo und vielen Dank für die Aufnahme!

    Ich habe diesen Beitrag hier gelesen und stehe quasi vor dem gleichen Problem.
    Meine Rule sieht so aus:

    Rule1 on MHZ19B#CarbonDioxide>0 do backlog Dimmer 66 ; Color 0000FF endon on MHZ19B#CarbonDioxide>288 do backlog Dimmer 66 ; Color 00FF00 endon on MHZ19B#CarbonDioxide>540 do backlog Dimmer 66 ; Color C8FE2E endon on MHZ19B#CarbonDioxide>792 do backlog Dimmer 66 ; Color FFFF00 endon on MHZ19B#CarbonDioxide>1044 do backlog Dimmer 66 ; Color FFBF00 endon on MHZ19B#CarbonDioxide>1296 do backlog Dimmer 66 ; Color FF0000 endon on MHZ19B#CarbonDioxide>1548 do backlog Dimmer 66 ; Color BF00FF endon
    Das funktioniert nur in soweit, dass er alle Farben, die die entsprechenden Werte darstellen, hintereinander "abgespielt" werden, Disco also ;)
    Kann man in den Rules nicht einen Wertebereich festlegen?
    Ich habe es mit " >=" und "=" auch schon probiert, das ging ebenfalls nicht.
    Vielen Dank!
    Gruß,
    luftpumpe83

  • Moin.

    ">=" macht keinen Unterschied zu ">", nur das der Grenzwert eben bei gleich erreicht wird nicht erst bei größer.

    Ich kann es leider nicht nachstellen aber es sollte mit "=" gehen.

    Evtl. die Rule mal auf ONCE setzten

    Rule1 5

    benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development Release

    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro Basic / MagicHome / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer / Gosund SP111 / ESP12E / WEMOS D1 Mini / ESP32Cam

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712/INA219/MHZ19B/DS3231

    Alexa Sprachsteuerung

    mosquitto/bash/html/cgi auf Wyse5070

  • Hi,

    also ich hab das ausprobiert, die Rule auf "once" zu setzen. Die Disco ist dann vorbei und die Farbe bleibt dann die, die dem aktuellen CO²-Wert entspricht. Aber sie ändert sich auch bei Wertveränderung nicht.

  • Hi.

    hmmm ok, dann darf nicht auf ONCE gestellt werden. rule1 4 schaltet once wieder aus.

    Eigentlich ja logisch, der Trigger bleibt ja immer derselbe.

    Wenn du sagst du hast es mit "=" Probiert, wie schaut dann deine Rule aus? Damit sollte es nämlich schon gehen.

    benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development Release

    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro Basic / MagicHome / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer / Gosund SP111 / ESP12E / WEMOS D1 Mini / ESP32Cam

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712/INA219/MHZ19B/DS3231

    Alexa Sprachsteuerung

    mosquitto/bash/html/cgi auf Wyse5070

  • Nachdem ich das mit der Co2 Ampel eine richtig gute Sache finde habe ich das für mich selbst mal nachgebastelt.

    Hier, in Stichpunkten eine kleine Anleitung:

    CO2 Ampel:

    - WEMOS_D1_MINI

    (Power Supply -> USB Micro)

    - MHZ19B

    - Neopixel Ring 16

    - Widerstand 470 Ohm

    - tasmota-sensor.bin (oder selbst compilieren mit MHZ19 und WS2818. Mit Version 9.3.1 gab's bei mir Probleme [hängt], mit 9.1.0 nicht)

    Template:

    {"NAME":"CO2_AMPEL","GPIO":[32,1408,0,1440,1376,0,0,0,0,3200,0,3232,0,224],"FLAG":0,"BASE":18}

    GPIO_01(D3) = Button1 (for Button Usage 4x short press = AP-Mode)

    GPIO_01(TX) = MHZ_TX (GPIO_01 -> MHZ19B_RX)

    GPIO_03(RX) = MHZ_RX (GPIO_03 -> MHZ19B_TX)

    GPIO_04(D2) = WS2812 (GPIO_04 -> Resistor 470 Ohm -> Neopixel DIN)

    GPIO_13(D7) = Serial TX (serial log)

    GPIO_15(D8) = Serial RX (serial log)

    GPIO_17 = Relais1 (virtuell - needed for Webbutton and Rule)

    5V -> MHZ19B_Vin

    | -> NEOPIXEL_5V

    G -> MHZ19B_GND

    | -> NEOPIXEL_GND


    Tasmota Konsole:

    Webbutton1 MESSUNG (enable/disable Measure - Measure Interval is set in Rule1 var1. Default value = 60 Seconds)

    Webbutton2 LED-RING (Switch LED-Ring will be overwriten if Measure activated)

    Code
    Rule1
    ON System#Boot DO Backlog var1 60; SetOption20 1; Dimmer 35; Fade 1; Speed 20; Power1 1; Power2 1; Rule2 1; Rule3 1 ENDON
    ON Power1#State=1 DO Backlog rule2 1; Ruletimer1 1 ENDON
    ON Power1#State=0 DO Rule2 0 ENDON
    Code
    Rule2
    ON Rules#Timer=1 DO Rule3 1 ENDON
    Code
    Rule3
    ON MHZ19B#CarbonDioxide>1990 DO backlog power2 1; color2 #FF0400; ruletimer1 %var1%; rule3 0 BREAK
    ON MHZ19B#CarbonDioxide<600 DO backlog power2 1; color2 #0019FF; ruletimer1 %var1%; rule3 0 BREAK
    ON MHZ19B#CarbonDioxide<1000 DO backlog power2 1; color2 #48FF00; ruletimer1 %var1%; rule3 0 BREAK
    ON MHZ19B#CarbonDioxide<1250 DO backlog power2 1; color2 #B7FF5E; ruletimer1 %var1%; rule3 0 BREAK
    ON MHZ19B#CarbonDioxide<1500 DO backlog power2 1; color2 #FFF600; ruletimer1 %var1%; rule3 0 BREAK
    ON MHZ19B#CarbonDioxide<1990 DO backlog power2 1; color2 #FF9D00; ruletimer1 %var1%; rule3 0 ENDON

    Rule1 1

    - Mit Button1 bzw. Konsolenbefehl Power1 1/0 kann die Anzeige des Messwertes auf dem Neopixelring deaktivert werden.

    - Mit var1 in Rule wird der Auswerteintervall eingestellt

    - Der Dimmwert der Anzeige wird beim Booten auf 35% gestellt, kann aber über den Slider/Konsole/MQTT eingestellt werden.

    - Bei deaktiverter Messung kann der Neopixel Ring ganz normal verwendet werden.

    Die Idee wie ich das montiere und die Schaltschwellen in der Rule habe ich mir hier geklaut:

    https://www.myworkroom.de/p-lsd:co2ampel:tasmota

  • HoerMirAuf

    Habe das mal nachgebaut in ein selbst gedrucktes Gehäuse von Thingiverse. Soweit funktioniert alles, habe dort noch ein am312 Bewegungsmelder verbaut. Um die Messung und die Led´s ausschalten und wieder einschalten zu können.

    Da ist auch schon meine Frage!

    Kann man in die Rule einbauen, dass die Messung und der Led Ring nach z.b. 300sek aus gehen und sobald der Bewegungsmelder Bewegung registriert die Messung und Led wieder für 300 sek an gehen!?!

  • Hi.

    Das lässt sich schon machen. die Messung wird ja mit dem virtuellen Relais Power1 aktiviert und deaktiviert.

    Ich würde dann den GPIO an dem der BWM hängt auf Switch1 konfigurieren, damit er das virtuelle Relais1 bedient.

    Dazu aber auch den Switchmode1 auf 1 oder2 stellen, je nachdem ob Schließer oder Öffner

    switchmode1 1

    Dann die Rule1 anpassen:

    Code
    Rule1
    ON System#Boot DO Backlog var1 60; SetOption20 1; Dimmer 35; Fade 1; Speed 20; Power1 1; Power2 1; Rule2 1; Rule3 1 ENDON
    ON Power1#State=1 DO Backlog rule2 1; Ruletimer1 1 ENDON
    ON Power1#State=0 DO backlog delay 3000; Rule2 0; Rule3 0; Power2 0 ENDON

    benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development Release

    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro Basic / MagicHome / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer / Gosund SP111 / ESP12E / WEMOS D1 Mini / ESP32Cam

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712/INA219/MHZ19B/DS3231

    Alexa Sprachsteuerung

    mosquitto/bash/html/cgi auf Wyse5070

  • Ich muss den Beitrag demnächst eh mal Updaten.

    Inzwischen hängt an meiner C02 Ampel auch noch ein 1602 I2C Display das den genauen Wert anzeigt.

    Kann ich nur empfehlen!

    benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development Release

    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro Basic / MagicHome / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer / Gosund SP111 / ESP12E / WEMOS D1 Mini / ESP32Cam

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712/INA219/MHZ19B/DS3231

    Alexa Sprachsteuerung

    mosquitto/bash/html/cgi auf Wyse5070

  • Wie versprochen hier nun das Update zur CO2 Ampel mit einem 1602 I2C Display.

    Hardware:

    - WEMOS_D1_MINI

    - MHZ19B

    - Neopixel Ring 16

    - LCD Display 1602 I2C

    User Parameter für den Online Compiler:

    Spoiler anzeigen

    #ifdef USE_I2C

    #undef USE_I2C

    #endif

    #define USE_I2C

    #ifdef USE_MHZ19

    #undef USE_MHZ19

    #endif

    #define USE_MHZ19

    #ifdef USE_WS2812

    #undef USE_WS2812

    #endif

    #define USE_WS2812

    #ifdef USE_DISPLAY

    #undef USE_DISPLAY

    #endif

    #define USE_DISPLAY

    #ifdef USE_DISPLAY_LCD

    #undef USE_DISPLAY_LCD

    #endif

    #define USE_DISPLAY_LCD

    #ifdef USE_DISPLAY_MODES1TO5

    #undef USE_DISPLAY_MODES1TO5

    #endif

    #define USE_DISPLAY_MODES1TO5

    Template:

    {"NAME":"CO2_AMPEL","GPIO":[32,1440,0,1408,1376,0,0,0,608,640,0,0,0,224],"FLAG":0,"BASE":18}

    Verdrahtung/Konfig:

    WEMOS Tasmota Verdrahtung
    GPIO_00 (D3) Button1 GPIO_00 => GND
    GPIO_01 (TX) MHZ19 TX GPIO_03 => MHZ19B RX
    GPIO_03 (RX) MHZ19 RX GPIO_01 => MHZ19B TX
    GPIO_04 (D2) WS2818 GPIO_04 => Resistor 470 Ohm => Neopixel DIN
    GPIO_12 (D6) I2C SCL GPIO_12 => LCD 1602 SCL
    GPIO_13 (D7) I2c SDA GPIO_13 => LCD 1602 SDA
    GPIO_17 Relais1 virtuell => for WebButton and Rule
    5V 5V => MHZ19B Vin
    ||=> Neopixel 5V
    ||=> Display VCC
    G G => MHZ19B GND
    ||=> Neopixel GND
    ||=> Display GND

    Tasmota Konsole:

    Setoption65 1

    Webbutton1 MESSUNG (enable/disable Messure - Meassure Interval is set in Rule1 var1. Default value = 15 Seconds)

    Webbutton2 LED-RING (Switch LED-Ring will be override if Messure aktivated)

    WebButton3 DISPLAY (Switch Display Background light)

    DisplayMode 0 (Set DisplayMode to Displaytext usage)

    Sensor15 2000 (Set MHZ Sensor to 2000PPM Range)

    MHZ19B Nullableich:

    Der Sensor muss mindestens 20 Minuten an der frischen Luft stehen (400ppm), dann in der Konsole mit Sensor15 2 die Kalibrioerung ausführen.

    Code
    Rule1
    ON System#Init DO Backlog WifiConfig 4; Time 1625436000; var1 15; SetOption20 1; Dimmer 35; Fade 1; Speed 20; Power1 1; Power2 1; Rule2 1; Rule3 1; DispayText [z]; Displaytext CO2:         PPM; Displaytext [x0y1]; Displaytext TMP:        ~dfC ENDON
    ON Power1#State=1 DO Backlog rule2 1; RuleTimer1 1 ENDON
    ON Power1#State=0 DO Rule2 0 ENDON
    ON Wifi#Connected DO Time 0 ENDON
    Code
    Rule2
    ON Rules#Timer=1 DO Rule3 1 ENDON
    Code
    Rule3
    ON MHZ19B#Temperature!=%var2% DO backlog DisplayText [x7y1]; DisplayText %value%; var2 %value% ENDON
    ON MHZ19B#CarbonDioxide>1990 DO backlog power2 1; color2 #FF0400; DisplayText [x7y0]; DisplayText %value%; ruletimer1 %var1%; rule3 0 BREAK
    ON MHZ19B#CarbonDioxide<600 DO backlog power2 1; color2 #0019FF; DisplayText [x7y0] %value%; ruletimer1 %var1%; rule3 0 BREAK
    ON MHZ19B#CarbonDioxide<1000 DO backlog power2 1; color2 #48FF00; DisplayText [x7y0] %value%; ruletimer1 %var1%; rule3 0 BREAK
    ON MHZ19B#CarbonDioxide<1250 DO backlog power2 1; color2 #B7FF5E; DisplayText [x7y0]; DisplayText %value%; ruletimer1 %var1%; rule3 0 BREAK
    ON MHZ19B#CarbonDioxide<1500 DO backlog power2 1; color2 #FFF600; DisplayText [x7y0]; DisplayText %value%; ruletimer1 %var1%; rule3 0 BREAK
    ON MHZ19B#CarbonDioxide<1990 DO backlog power2 1; color2 #FF9D00; DisplayText [x7y0]; DisplayText %value%; ruletimer1 %var1%; rule3 0 ENDON

    Rule1 1

    Die Rule1 wurde auch dahingehend angepasst das das Ganze Ding auch ohne WLAN Verbindung funktioniert.

    Dazu wird beim booten einfach eine UTC Zeit gesetzt. Sollte doch eine WALN Verbindung vorhanden sein wird eine Zeit vom NTP gezogen.

    EDIT 02.01.22 - Rule3 überarbeitet:

    Code
    Rule3
    ON MHZ19B#Temperature!=%var2% DO backlog DisplayText[x7y1]%value%; var2 %value% ENDON
    ON MHZ19B#CarbonDioxide=0 DO DO backlog power2 1; ruletimer1 %var1%; rule3 0 BREAK
    ON MHZ19B#CarbonDioxide>1990 DO backlog power2 1; color2 #FF0400; DisplayText[x7y0]%value%; ruletimer1 %var1%; rule3 0 BREAK
    ON MHZ19B#CarbonDioxide<600 DO backlog power2 1; color2 #0019FF; DisplayText[x7y0] %value%; ruletimer1 %var1%; rule3 0 BREAK
    ON MHZ19B#CarbonDioxide<1000 DO backlog power2 1; color2 #48FF00; DisplayText[x7y0] %value%; ruletimer1 %var1%; rule3 0 BREAK
    ON MHZ19B#CarbonDioxide<1250 DO backlog power2 1; color2 #B7FF5E; DisplayText[x7y0]%value%; ruletimer1 %var1%; rule3 0 BREAK
    ON MHZ19B#CarbonDioxide<1500 DO backlog power2 1; color2 #FFF600; DisplayText[x7y0]%value%; ruletimer1 %var1%; rule3 0 BREAK
    ON MHZ19B#CarbonDioxide<1990 DO backlog power2 1; color2 #FF9D00; DisplayText[x7y0]%value%; ruletimer1 %var1%; rule3 0 ENDON