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