Funksensor mit Bosch sensortec BME680 / Luftgüte

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

Vorheriges Thema - Nächstes Thema

blehnert

So, anbei die Logs der beiden bme680.

Beide Sensoren haben die letzten sechs Tage ununterbrochen Seite an Seite verbracht.
Die Logs sind nicht aufbereitet und entstammen der HCS-FW vom 06.11.

"alt" bedeutet: der Sensor war zuvor schon einige Tage in Betrieb, wurde aber natürlich neu gestartet.
"neu" bedeutet: der Sensor war (bei mir) noch nie in Betrieb.
Sensor "neu" wurde drei Min. später gestartet, daher TimeStamp offsett 180.

Grüße, Bernd

juergs

#107
ich habe mal "versucht" bestimmte Kurven-Abschnitte zu kategorisieren.
(Danke @blehnert für die bereitgestellten Daten.)
Ich kann im Moment folgendes Verhalten zwischen IAQ und rel. CO2-Wert erkennen
(trotz Auseinanderlaufen der X-Sklalierung):

1. der CO2-Wert lässt durchaus stabile Zonen mit steitiger Steigung erkennen.
2. Temperatur-Differenzen haben einen destabilisierenden Einfluß. (Mit und ohne Lüften...)
3. Temperatur-Einfluß für sich muss nochmal separat betrachtet werden (am besten bei konstanter CO2-Menge).

Ansonsten sieht das nach einer Skalierung und  Spiegelung der Y-Achsenwerte um einen abschnittsweisen Median aus?
(In Annäherung an einen möglichen Algorithmus für CO2 -> IAQ).

HCS

Die Kurve in SVG_CUL_TX_92 soll CO2 in ppm sein. Die liegt irgendwo bei 50ppm, was eigentlich nicht sein kann, da man selbst draußen in frischer Landluft schon mindestens 400ppm CO2 hat.

In  SVG_CUL_TX_91 ist die Y-Achse "CO2 rel in Ohm"
Der Widerstand beim BME680 ist aber definitiv nie in Bereich von 30 Ohm. Eher irgendwo zwischen 2000 Ohm und 10000 Ohm.



juergs

#109
ZitatDie Kurve in SVG_CUL_TX_92 soll CO2 in ppm sein. Die liegt irgendwo bei 50ppm, was eigentlich nicht sein kann, da man selbst draußen in frischer Landluft schon mindestens 400ppm CO2 hat.

In  SVG_CUL_TX_91 ist die Y-Achse "CO2 rel in Ohm"
Der Widerstand beim BME680 ist aber definitiv nie in Bereich von 30 Ohm. Eher irgendwo zwischen 2000 Ohm und 10000 Ohm.

Das sind einfach "Anpassungen" an das LaCrosse-Protokoll, welches nur einen eingeschränkten Wertebereich übertragen kann ...
Müsste es dann in FHEM wieder zurückrechnen ....  ;)   

HCS

Zitat von: juergs am 14 November 2017, 08:58:52
Müsste es dann in FHEM wieder zurückrechnen ....  ;)
Und wieviel sind die 50ppm dann wirklich?

blehnert

Wie erklärt Ihr Euch die Unterschiede zwischen den beiden Sensoren? Hätte noch einen dritten jungfräulichen.
Wenn ich mit Messungen unterstützen kann, sagt bitte was ich tun soll.

Grüße, Bernd

HCS

Zitat von: blehnert am 14 November 2017, 09:55:37
Wenn ich mit Messungen unterstützen kann, sagt bitte was ich tun soll.
Es wäre hilfreich, charts zu erzeugen (logfile wie von PeMue beschrieben für FHEM produzieren) und diese zu kommentieren, was bei Änderungen der IAQ zu demZeitpunkt passiert ist oder wo Du der Ansicht bist, dass die Werte nicht mir der Realität übereinstimmen.

Im Anhang ein Beispiel.
Der Sensor steht im Arbeitszimmer, die Tür zum Schlafzimmer ist fast immer offen, um die Ecke geht es zu einem Badezimmer.
Muss jetzt wohl mein Leben offenlegen  :o ;D ;D
Um 00:00 in Bett gegangen, um 07:30 sind wir aufgestanden und haben geduscht. Danach kurz gelüftet. Ab 08:15 war bis 19:30 niemand da (außer die Katze vielleicht mal)
Und nun frage ich mich: warum wird nach dem Lüften, wenn dann keiner mehr da war, die IAQ erst mal schlechter?
Und warum wurde sie nachts erst kurz schlechter und dann wieder besser?
Und wie stark geht die Luftfeuchtigkeit ein? Eigentlich uinteressiert mich, wie hoch der Schadstoffgehalt in der Luft ist. Ob sie mir zu trocken ist, beurteile ich lieber separat mit einem Hygrometer.

Ich bekomme die Kurven noch nicht so recht in Einklang mit dem, was sich im Haus abspielt.
ich will nicht völlig ausschließen, dass die Luftqualität wirklich diesen Verlauf hat aber seltsam ist es.
Darum wäre es hilfreich wenn Du auch so vorgehen würdest, also Kurven produzieren und dazu beschreiben, wie es mit dem realen Leben übereinstimmt.

Den Zusammenhang zwischen gemessenem Widerstand und IAQ zu ergründen ist dann nochmal ein ganz anderes Thema.

Die Daten der "HCS-FW" werden übrigens von den original Bosch-Routinen incl. der geheimen libalgobsec.a IAQ-Formel geliefert, da kommt also genau das raus, was Bosch sich als IAQ vorgestellt hat.

juergs

#113
ZitatUnd wieviel sind die 50ppm dann wirklich?
Der iAQ-core kann 450-2000 ppm CO2 equivalents und 125-600 ppb TVOC equivalents messen.
Für den CO2-Wert dividiere ich durch 10. Das passt zwar nicht komplett mehr in den oberen Werten ...
reicht aber erst mal für diesen Anwendungsfall. Für TVOC wird ebenfalls durch 10 dividiert.

Für den BME, um in den Wertebereich von [-40..120] zu kommen:
LaCrosse.t = (float) bme680_gas / 10000;

Anmerkung von hier:
ZitatThe iAQ-Core indoor air quality sensor module is the heart of the project and is used to provide CO2 and total volatile organic compounds (TVOC) equivalent predictions. The sensing range from the datasheet is as follows: 450-2000 ppm CO2 equivalents and 125-600 ppb TVOC equivalents. "Equivalents" are somewhat vague units and are not defined as well as I would have liked.

From doing a little background reading, it seems like a CO2 equivalent unit includes CO2 and other "greenhouse" gasses, apparently scaled to a property of CO2. TVOC equivalent units also appears to be a somewhat vague measure. It seems that there are a number of compounds considered to be VOCs with particular relevance to indoor air quality and these are totaled and expressed as some standardized measure.

In all fairness, I have seen the use of these "equivalent" units on several commercial indoor air monitors. Still, I would have liked to have seen a more rigorous definition.

HCS

Zitat von: juergs am 14 November 2017, 17:40:51
Der iAQ-core kann 450-2000 ppm CO2 equivalents und 125-600 ppb TVOC equivalents messen.
OK, aber wieviel ist es denn in Deinem Chart, das Du angehängt hast, wenn die Kurve bei 50ppm lang läuft, tatsächlich?

juergs

#115
500?

iAQ-core nach dem Einschalten:

*** Running.

CO2 [ppm] , resistance, TVOC

450;1820;125
450;1820;125
450;1820;125
450;1820;125
450;1820;125
450;11964;125
450;11964;125
450;11964;125
450;11964;125
450;11964;125
450;17046;125
450;17046;125
450;17046;125
450;17046;125
450;17046;125
450;19358;125
450;19358;125
450;19358;125


909;2205;252
909;2205;252
909;2205;252
[462.79] Timer-Interrupt!   = LaCrosse senden.
[462.79] CO2: 90.90 TVOC: 25.20
909;2205;252
909;2205;252
909;2205;252
909;2205;252

juergs

#116
BME680: CO2 gespiegelt an der X-Achse, im Vergleich zu BME-IAQ.
Der zweite Screenshot war der Versuch den Offset und die Skalierung des CO2-Wertes
anzupassen. Man sieht aber deutlich, die Kurven bei Skalierung mit konstantem Faktor nicht 100%ig übereinstimmen.

Überlegungen:

1.) Spiegelung wäre einfach, dann aber den Korrektur-Offset herauszufinden ...
     (Mittelwert, Median oder doch immer konstanter Offset ....)

2.) Dann die Skalierung in den IAQ-Bereich .... dann  Temperatur, Luftdruck + Luftfeuchtekompensation.

Ideen, Vorschläge?

sebswed

Ich habe dieses Thema mit Hilfe von Google translate verfolgt und nutze es auch, um hier zu antworten. Ich habe 2 Module, die ich von Pimoroni gekauft habe. Ich bin kein Experte, aber ich bin bereit, bei jedem Test zu helfen. Ich habe ein unbenutztes Modul und eines, das ich ein paar Tage benutzt habe. Das ist das einzige Thema, das ich finden konnte, das wirklich lebendig ist. Ein weniger lebhaftes Thema findet sich hier https://github.com/DFRobot/DFRobot_BME680/issues/5

juergs

#118
Hello sebswed,

thank you, for joining us and politely translating to german...  :)

You are welcome!

Pointing out to the new BCE-capable dfrobot-Lib was great.  :D :D :D
They had done that special job, that Bosch was not doing so far ...

bme680 test
[55.00] T: 23.04| rH: 40.21| P: 101374.80| IAQ: 0.00 (0) | gas: 3993.10
[3055.00] T: 22.32| rH: 41.17| P: 101369.15| IAQ: 0.00 (0) | gas: 4278.49
[6055.00] T: 22.30| rH: 40.80| P: 101370.21| IAQ: 0.00 (0) | gas: 4699.27
[9055.00] T: 22.27| rH: 40.54| P: 101369.99| IAQ: 0.00 (0) | gas: 5114.61
[12055.00] T: 22.27| rH: 40.28| P: 101368.87| IAQ: 0.00 (0) | gas: 5538.87
[15055.00] T: 22.26| rH: 40.11| P: 101367.79| IAQ: 0.00 (0) | gas: 5923.12


Now i was able to compile the BCE-Code completely and at the same time realized how my nodeMCU
is ticking against a new flashed Firmware.  Apparently it is not sufficient to reset the the device,
but also necessary to do a cold reset:
After compile and flashing by Arduino IDE with DTE-soft-reset,  only "bme test" from setup-function is appearing through serial monitor and nothing else -> hang + WDT-error.
After switching off and on power supply (usb) the program is running surprisingly how expected....

So that's the difference, why HCSs-Binary apparently  was not running at my system,
not having noticed enough this circumstance ... my fault! (ESP newbie + sorry HCS)   :'(

I2C-Address for this LIB is 0x77 by leaving SDO open on my BlueDot-breakout-board. (Otherwise SDO connected to GND will be 0x76.)

... passing some time, IAQ is appearing:
[267057.00] T: 22.24| rH: 38.77| P: 101368.09| IAQ: 0.00 (0) | gas: 14137.41
[294058.00] T: 22.23| rH: 38.47| P: 101366.61| IAQ: 0.00 (0) | gas: 14330.94
[297058.00] T: 22.23| rH: 38.38| P: 101368.09| IAQ: 0.00 (0) | gas: 14321.14
[300058.00] T: 22.23| rH: 38.37| P: 101368.63| IAQ: 25.00 (3) | gas: 14340.75
[303058.00] T: 22.22| rH: 38.37| P: 101366.02| IAQ: 19.61 (3) | gas: 14429.70
[306058.00] T: 22.22| rH: 38.41| P: 101367.09| IAQ: 25.00 (3) | gas: 14370.28
[309058.00] T: 22.23| rH: 38.47| P: 101366.72| IAQ: 25.67 (3) | gas: 14350.58
[312058.00] T: 22.23| rH: 38.54| P: 101369.59| IAQ: 23.93 (3) | gas: 14380.15
[315058.00] T: 22.24| rH: 38.57| P: 101368.81| IAQ: 25.00 (3) | gas: 14370.28
[318058.00] T: 22.24| rH: 38.58| P: 101369.83| IAQ: 23.47 (3) | gas: 14409.84
[321058.00] T: 22.23| rH: 38.48| P: 101366.20| IAQ: 25.00 (3) | gas: 14419.77


... and i can imagine, why this behavior would happen .... initially filling up a complete ringbuffer with data for further
analysis ...

Ok, some little error-corrections are needed, regarding airpressure... and this

[1035072.00] T: 22.63| rH: 38.59| P: 101354.81| IAQ: 26.44 (3) | gas: 17105.80
[1038072.00] T: 22.64| rH: 38.56| P: 101354.08| IAQ: 27.47 (3) | gas: 17091.84
[1041072.00] T: 22.63| rH: 38.55| P: 101353.67| IAQ: 25.00 (3) | gas: 17147.83

ets Jan  8 2013,rst cause:4, boot mode:(3,7)

wdt reset
load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
vf6d232f1
~ld


bme680 test
[57.00] T: 22.58| rH: 38.81| P: 101356.97| IAQ: 0.00 (0) | gas: 15934.17
[3057.00] T: 22.62| rH: 38.74| P: 101354.65| IAQ: 0.00 (0) | gas: 16031.78
[6057.00] T: 22.64| rH: 38.67| P: 101355.83| IAQ: 0.00 (0) | gas: 16230.62


regards,
Juergen

 

juergs

#119
Oh, da ist mir jemand für den MapleMini zuvorgekommen ...  ;)


indoor-air-quality-iaq-measurement-with-bosch-bme680-and-stm32f103c8t6/


Mit ein paar wertvollen Hinweisen ...