Funksensor mit Bosch sensortec BME680 / Luftgüte

Begonnen von juergs, 28 Oktober 2017, 18:05:43

Vorheriges Thema - Nächstes Thema

twenta

Und nochmal eine ganz naive Frage... welchen Grund gibt es eigentlich nicht die Bosch bse Library zu nutzen? Weil sie proprietär ist oder gibt es weitere Gründe?
Ich teste diese gerade mit nem wemos und bin mit dem IAQ recht zufrieden...

juergs

Zitat von: twenta am 08 Mai 2020, 15:03:50
Und nochmal eine ganz naive Frage... welchen Grund gibt es eigentlich nicht die Bosch bse Library zu nutzen? Weil sie proprietär ist oder gibt es weitere Gründe?
Ich teste diese gerade mit nem wemos und bin mit dem IAQ recht zufrieden...

Riesen Aufwand zu installieren, ändert sich gefühlt jeden Monat ... dann wieder von vorne ...
Also nicht gerade Anwender-freundlich.

Habe beide Varianten mehrfach am Laufen ... mit Jörgs Version mehr als zufrieden, da sie zuverlässig läuft!

Sobald ich etwas Luft  habe, kümmere ich mich um die neue Version.

Grüße,
Jürgen

AlphaKingOne

Hallo zusammen.
Ich hatte mir hier aus dem Forum mal die .bin zum Testen gezogen. War irgendwann im Frühjahr. Lief jetzt auch Monate lag sauber durch.

Seit Letzter Woche zeigt der Sensor auf einmal viel niedrigere werte an. Ich lag immer Zwischen 600-1300. Den einen Tag hatten wir etwas gefeiert deswegen war der Wert dann mal wieder erhört. Auf einmal Brach der Wert ein und jetzt bin ich immer so bei 150-650.

Defekt vom Sensor oder worauf tippt ihr?
https://www.directupload.net/file/d/5971/692nuneb_png.htm
Raspberry B, B+, B v2 u. v3; DS18B20; MCP23017; CUL; ESP8266

juergs

Hi,
vermute Baseline-Drift, dann ein Reset/Neustart mit neuer Baseline.

Jürgen

AlphaKingOne

Zitat von: juergs am 14 Oktober 2020, 20:08:43
Hi,
vermute Baseline-Drift, dann ein Reset/Neustart mit neuer Baseline.

Jürgen

kann sein aber so ein Abfall hab ich noch nie beobachtet und bis heute sind die Werte niedriger als sonst. Wobei langsam gehen die wieder hoch. Es ist immer schwer sowas ohne Referenzwert zu beurteilen.
Raspberry B, B+, B v2 u. v3; DS18B20; MCP23017; CUL; ESP8266

juergs

#590
Es empfiehlt sich wegen der Baseline den Sensor zuerst an "frischer" Luft in Betrieb zu nehmen um die Baseline zu setzen.
Je nach Stabilität des 8266 oder Netzteil kann es aber vorkommen, das ein Reset die Baseline auf ein beliebiges VOC-Level setzt.
Das sich das dann additiv auswirkt .... wandert die Anzeige über einen längeren Zeitraum möglicherweise nach oben....

Na ja, als Referenz, ohne auf andere Sensoren auszuweichen, kann ich das BME680-Serial-Breakout-Board: GY-BME680MCUV1 empfehlen.
Es beinhaltet wohl die Bosch-BSEC-Shared-Lib und ist (noch) relativ günstig erhältlich.
Als Vergleich leistet es schon seit langer Zeit sehr gute Dienste.

Grüße,
Jürgen

Hier noch ein interessantes Projekt: https://www.umwelt-campus.de/forschung/projekte/iot-werkstatt/ideen-zur-corona-krise
Mit Tipps: Frischluft zur Bestimmung der Baseline.

adn77

Vorab schonmal vielen Dank für die sehr erhellende Diskussion in diesem Thread und natürlich für die BME680 Bibliotheksanpassungen!

Ich habe einige ESPs seit Jahren im Einsatz und bin sehr positiv überrascht von der Funktionsvielfalt von ESPEasy.
Habe die aktuelle Dev-Version (mega-Branch) aus dem GIT und dazu die Bibliotheken von @juergs über PlatformIo für einen ESP-01 kompiliert.
(Neben BME680 habe ich noch den BH1750 angeschlossen).

Parallel dazu habe ich mir die letzten Quellen von @herrmannj angeschaut - da sieht die Berechnung inzwischen sogar etwas einfacher aus. Bin dabei, den Algorithmus in die js_BME680 Bibliothek einzubauen. Allerdings wundere ich mich, dass die Baseline bisher nicht im Flash zwischengespeichert wird. Ihr habt bestimmt einen triftigen Grund dafür!?  :)

Alex

juergs

#592
ZitatAllerdings wundere ich mich, dass die Baseline bisher nicht im Flash zwischengespeichert wird.

Na ja, da müsste man wohl Versuche starten, ob man durch eine gespeicherte Baseline ein "Genauigkeitsvorteil"  einkauft.
Solche Sachen wie z.B. Drift und Sensor-Alterung spielen da wohl noch eine Rolle.
Das lässt sich wohl nur durch weitere Versuchsreihen beantworten. Vielleicht kann  @herrmannj etwas mehr dazu beitragen?
Oder es reicht einfach aus,  bei geöffnetem Fenster die "Baseline" zu nutzen. (Manuell, nach Einschalten und ggf. nach einem Reset des ESPs?)
Wobei meine ESPEasy-Variante eigentlich klaglos mit MQTT und Grafana erfreulich konstant durchläuft und die angezeigten Werte durchaus plausibel sind 
Allerdings: Verbesserungen sind jederzeit willkommen ... :)

Grüße
Jürgen

PS: Es gibt ja mittlerweile viele interessante Aktivitäten zum BME680 + SCD30, wie Jörg auch schon erwähnte.

Auch hier z.B. https://forum.fhem.de/index.php/topic,108782.msg1029949.html#msg1029949
oder hier: https://www.umwelt-campus.de/forschung/projekte/iot-werkstatt/ideen-zur-corona-krise-1

Prof. Dr. Peter Henning

Ich bin von diesen Adsorptionssensoren in Bezug auf CO2 erst einmal komplett abgekommen, sondern verwende inzwischen MH-Z14 und MH-Z19B. Sehr viel besser .

Die Adsorptionssensoren werde ich demnächst parallel dazu betreiben, und den Wert aus den IR-Sensoren zur Kalibrierung der Adsorptionssensoren verwenden.

LG

pah


herrmannj

Der MH-Z19B (ABC abschalten!) macht einen exzellenten Job.

Damit die "Baseline" eines BME680 zu setzen wird nicht funktionieren. Erstens ist die Korrelation  TVOC und CO2 nicht zwingend. Wenn sie es wäre, dann bräuchte man den BME680 auch gar nicht. Zweitens ist die "Baseline" beim BME ein viel komplexeres Konstrukt verglichen mit (zB) dem MH-Z19B. MOX Sensoren sind 10^x mal empfindlicher für HO2 im Vergleich zum Zielgas. IR /MH-Z19B dagegen überhaupt nicht. Dazu kommen Memory Effekte beim MOX. Daher ist es auch nicht zielführend die MOX "Baseline" im Flash zu speichern.

vg
Joerg

Prof. Dr. Peter Henning

Du missverstehst mich - von einer Korrelation habe ich kein Wort geschrieben, und natürlich kann ich nicht die Baseline eines Sensors mit der eines anderen eichen. Allerdings habe ich mit dem MZ-Z19B einen CO2-Datenwert, der mir klar sagt, wann der Adsorptionssensor aus dem Ruder läuft und geheizt werden muss.

Setzt man darüber hinaus verschiedene Adsorptionssensoren ein, die unterschiedliche Empfindlichkeiten für andere Gase aufweisen, kann man durch eine entsprechende Ausgleichsrechnung sogar einzelne Komponenten des Gemisches bestimmen.

LG

pah

peterk_de

Zitat von: Prof. Dr. Peter Henning am 13 Dezember 2020, 05:20:42
Du missverstehst mich - von einer Korrelation habe ich kein Wort geschrieben, und natürlich kann ich nicht die Baseline eines Sensors mit der eines anderen eichen. Allerdings habe ich mit dem MZ-Z19B einen CO2-Datenwert, der mir klar sagt, wann der Adsorptionssensor aus dem Ruder läuft und geheizt werden muss.

Setzt man darüber hinaus verschiedene Adsorptionssensoren ein, die unterschiedliche Empfindlichkeiten für andere Gase aufweisen, kann man durch eine entsprechende Ausgleichsrechnung sogar einzelne Komponenten des Gemisches bestimmen.

LG

pah

Eine simple Version einer solchen Baseline-Korrektur mittels CO2-Sensor setze ich schon eine Weile ein (siehe weiter oben): wenn die Luft sauber ist (CO2 << 500), dann ist der aktuelle Wiederstandswert des MOx-Sensors die neue Baseline. Funktioniert schon ganz gut, natürlich nur unter der Annahme, dass es draußen nicht müffelt.

Gerade im Winter hätte ich aber gerne noch eine bessere Temperaturstabilität der Bosch-Sensoren. Leider geben sie aber die Temperatur des Heizelementes nicht aus, so dass eine Kompensation knifflig wird ...
FHEM auf Ubuntu-VM / 2xNUC Proxmox Cluster
UI: HomeKit, TabletUI, Grafana
IOdevs: 2xHueBridge, RaspiMatic-CCU, CUL868, 2xHarmonyHub, 6xRaspi-Roomnode mit CO2, VOC und lepresenced
Devices: 107xHomematic(IP), 96xPhilips Hue, 17xTECHEM, 12xBTLE, 8xSONOS, 2xHomeConnect, 1xShelly 3em, 1xNanoleaf ...

herrmannj

Stell einige Minuten nach dem "kalibrieren" eine Schüssel mit kochendem Wasser in die Nähe des Sensors und warte kurz ab.  ;)

Prof. Dr. Peter Henning