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 & 7240, < 20 x Sonoffs Basic, Dual, 4 Ch pro, T2 (alle Tasmota), 10 x Shelly 2.5(Tasmota) als Rolladenschalter, 3 X Shelly Dimmer (OriginalFW), 8 x Shelly 1 (Tasmota), 1 x Sonoff SV (Tasmota) als Garagentorsteuerung, 5 X FS 20 Heizungssteuerung mit Zimmerthermostat u. Fensterkontakten, 5 x IP-Camera, 2 x Wemos D1 mini mit WLED, 3 x Wemos D1 mini mit Tasmota und 4fach-Relais als Gartenbewässerung, 1 x Frau ;)


    Mein Projekt: Smarte Gartenbewässerung

  • Bulli1308

    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 ?(

    Online Compiler


    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

    mosquitto/bash/html/cgi auf RPI 2B+/Sprachsteuerung via IFTTT/4xGoogle-Home-Mini

  • 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 & 7240, < 20 x Sonoffs Basic, Dual, 4 Ch pro, T2 (alle Tasmota), 10 x Shelly 2.5(Tasmota) als Rolladenschalter, 3 X Shelly Dimmer (OriginalFW), 8 x Shelly 1 (Tasmota), 1 x Sonoff SV (Tasmota) als Garagentorsteuerung, 5 X FS 20 Heizungssteuerung mit Zimmerthermostat u. Fensterkontakten, 5 x IP-Camera, 2 x Wemos D1 mini mit WLED, 3 x Wemos D1 mini mit Tasmota und 4fach-Relais als Gartenbewässerung, 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.

    Online Compiler


    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

    mosquitto/bash/html/cgi auf RPI 2B+/Sprachsteuerung via IFTTT/4xGoogle-Home-Mini

    Einmal editiert, zuletzt von HoerMirAuf ()

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

    FB 7590 & 7240, < 20 x Sonoffs Basic, Dual, 4 Ch pro, T2 (alle Tasmota), 10 x Shelly 2.5(Tasmota) als Rolladenschalter, 3 X Shelly Dimmer (OriginalFW), 8 x Shelly 1 (Tasmota), 1 x Sonoff SV (Tasmota) als Garagentorsteuerung, 5 X FS 20 Heizungssteuerung mit Zimmerthermostat u. Fensterkontakten, 5 x IP-Camera, 2 x Wemos D1 mini mit WLED, 3 x Wemos D1 mini mit Tasmota und 4fach-Relais als Gartenbewässerung, 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 & 7240, < 20 x Sonoffs Basic, Dual, 4 Ch pro, T2 (alle Tasmota), 10 x Shelly 2.5(Tasmota) als Rolladenschalter, 3 X Shelly Dimmer (OriginalFW), 8 x Shelly 1 (Tasmota), 1 x Sonoff SV (Tasmota) als Garagentorsteuerung, 5 X FS 20 Heizungssteuerung mit Zimmerthermostat u. Fensterkontakten, 5 x IP-Camera, 2 x Wemos D1 mini mit WLED, 3 x Wemos D1 mini mit Tasmota und 4fach-Relais als Gartenbewässerung, 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 & 7240, < 20 x Sonoffs Basic, Dual, 4 Ch pro, T2 (alle Tasmota), 10 x Shelly 2.5(Tasmota) als Rolladenschalter, 3 X Shelly Dimmer (OriginalFW), 8 x Shelly 1 (Tasmota), 1 x Sonoff SV (Tasmota) als Garagentorsteuerung, 5 X FS 20 Heizungssteuerung mit Zimmerthermostat u. Fensterkontakten, 5 x IP-Camera, 2 x Wemos D1 mini mit WLED, 3 x Wemos D1 mini mit Tasmota und 4fach-Relais als Gartenbewässerung, 1 x Frau ;)


    Mein Projekt: Smarte Gartenbewässerung

    2 Mal editiert, zuletzt von Bulli1308 ()

  • 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)

    Online Compiler


    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

    mosquitto/bash/html/cgi auf RPI 2B+/Sprachsteuerung via IFTTT/4xGoogle-Home-Mini

  • 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 & 7240, < 20 x Sonoffs Basic, Dual, 4 Ch pro, T2 (alle Tasmota), 10 x Shelly 2.5(Tasmota) als Rolladenschalter, 3 X Shelly Dimmer (OriginalFW), 8 x Shelly 1 (Tasmota), 1 x Sonoff SV (Tasmota) als Garagentorsteuerung, 5 X FS 20 Heizungssteuerung mit Zimmerthermostat u. Fensterkontakten, 5 x IP-Camera, 2 x Wemos D1 mini mit WLED, 3 x Wemos D1 mini mit Tasmota und 4fach-Relais als Gartenbewässerung, 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.

    Online Compiler


    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

    mosquitto/bash/html/cgi auf RPI 2B+/Sprachsteuerung via IFTTT/4xGoogle-Home-Mini

    Einmal editiert, zuletzt von HoerMirAuf ()

  • 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

    Online Compiler


    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

    mosquitto/bash/html/cgi auf RPI 2B+/Sprachsteuerung via IFTTT/4xGoogle-Home-Mini

  • 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.

    Online Compiler


    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

    mosquitto/bash/html/cgi auf RPI 2B+/Sprachsteuerung via IFTTT/4xGoogle-Home-Mini

  • 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

    Online Compiler


    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

    mosquitto/bash/html/cgi auf RPI 2B+/Sprachsteuerung via IFTTT/4xGoogle-Home-Mini

  • 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!

    Online Compiler


    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

    mosquitto/bash/html/cgi auf RPI 2B+/Sprachsteuerung via IFTTT/4xGoogle-Home-Mini

  • 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:


    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)


    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: C 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.