tVOC Sensoren / Erfahrungen

Begonnen von herrmannj, 14 August 2019, 18:40:28

Vorheriges Thema - Nächstes Thema

juergs

#15
Hallo Peter,
nach dem ESPEasy nun nicht ganz leicht zu compilieren ist ...
hatte ich schon mit Atom+Platformio unter Windows 100 aufgegeben ... da er sich aus einer Endlosschleife nicht bei den Dependencies erholt hat ...
Mit VSCode und dem PlatformIo-Plugin  konnte ich EspEasy aber ohne Größeren Aufwand compilieren:
HowTo: https://www.youtube.com/watch?v=Yb-HOBynJdc
https://docs.platformio.org/en/latest/platforms/espressif8266.html
Probiere dann mal Jörgs Code als  EspEasy-Plugin einzubinden.

Environment minimal_core_242_ESP8266_1M_OTA    [SUCCESS]
Environment minimal_core_242_ESP8285_1M_OTA             [SUCCESS]
Environment minimal_core_252_ESP8266_1M_OTA             [SUCCESS]
Environment minimal_core_252_ESP8285_1M_OTA             [SUCCESS]
Environment normal_core_241_ESP8266_1M                  [SUCCESS]
Environment normal_core_242_ESP8266_1M                  [SUCCESS]
Environment normal_core_252_ESP8266_1M                  [SUCCESS]
Environment normal_ESP8285_1M                           [SUCCESS]
Environment normal_WROOM02_2M                           [SUCCESS]
Environment normal_core_252_WROOM02_2M256               [SUCCESS]
Environment normal_ESP8266_4M                           [SUCCESS]
Environment normal_core_241_ESP8266_4M                  [SUCCESS]
Environment normal_core_252_ESP8266_4M                  [SUCCESS]
Environment normal_core_252_ESP8266_16M                 [SUCCESS]
Environment minimal_IRext_ESP8266_1M                    [SUCCESS]
Environment normal_IRext_ESP8266_4M                     [SUCCESS]
Environment test_core_242_ESP8266_4M                    [SUCCESS]
Environment test_core_252_ESP8266_4M                    [SUCCESS]
Environment normal_core_260_sdk2_alpha_ESP8266_4M       [SUCCESS]
Environment normal_core_260_sdk222_alpha_ESP8266_4M     [SUCCESS]
Environment test_core_260_sdk2_alpha_ESP8266_4M         [FAILED]
Environment test_core_260_sdk222_alpha_ESP8266_4M       [SUCCESS]
Environment test_core_260_sdk3_alpha_ESP8266_4M         [FAILED]
Environment test_core_252_ESP8266_16M                   [SUCCESS]
Environment normal_core_260_sdk2_alpha_ESP8266_16M      [SUCCESS]
Environment normal_core_260_sdk222_alpha_ESP8266_16M    [SUCCESS]
Environment test_core_260_sdk2_alpha_ESP8266_16M        [FAILED]
Environment test_core_260_sdk222_alpha_ESP8266_16M      [SUCCESS]
Environment test_core_260_sdk3_alpha_ESP8266_16M        [FAILED]
Environment test_ESP8266_4M_VCC                         [SUCCESS]
Environment test_core_260_sdk2_alpha_ESP8266_4M_VCC     [FAILED]
Environment dev_ESP8266_4M                              [SUCCESS]
Environment hard_SONOFF_POW_4M                          [SUCCESS]
Environment hard_core_252_SONOFF_POW_4M                 [SUCCESS]
Environment hard_other_POW_ESP8285_1M                   [SUCCESS]
Environment hard_core_252_other_POW_ESP8285_1M          [SUCCESS]
Environment hard_core_252_Shelly_1_2M256                [SUCCESS]
Environment hard_Ventus_W266                            [SUCCESS]


Wer's mag....  :o ::)

Grüße,
Jürgen


herrmannj

spannend. Lass mich wissen ob ich helfen kann. In den BME code könnte ich mich ja einlesen  ;)

Mal was anderes: ich habe den BME680 "damals" fallenlassen weil ich erkannt hatte dass die Genauigkeit für Temp/Hum nicht ausreichen um den Effekt aus dem VOC rauszurechnen. OK, waren corner case. Wie ist den so die Bandbreite der Werte in Praxis so in subjektiv vergleichbaren Situationen? So plus minus 50ppm? oder mehr/weniger?

juergs

Zitat von: herrmannj am 19 August 2019, 22:50:21
spannend. Lass mich wissen ob ich helfen kann. In den BME code könnte ich mich ja einlesen  ;)

Mal was anderes: ich habe den BME680 "damals" fallenlassen weil ich erkannt hatte dass die Genauigkeit für Temp/Hum nicht ausreichen um den Effekt aus dem VOC rauszurechnen. OK, waren corner case. Wie ist den so die Bandbreite der Werte in Praxis so in subjektiv vergleichbaren Situationen? So plus minus 50ppm? oder mehr/weniger?

Schaue mir den Code am Wochenende doch mal genauer an. Genauso wie das EspEasy-Sensor-Template.
Mal schauen, wenn sich der Aufwand in Grenzen hält ....😏

juergs

#18
Hallo,
musste mit noch etwas mit Platformio + Lib-Handling "anfreunden".
Der PlatformIO-Compile (ESPEasy-mega-20190817)  mit dem BME680-Plugin und der aktuellen Adafruit BME680  Lib lief schon mal durch.
Die Firmware läuft bei mir auf dem Wemos D1 D2 mini. Wemos+D1+Mini+mit+ESPEasy+flashen




user: admin
pwd: configesp    (ESPEasy-Standard)

Den BME680 habe ich bei meinem Breakout-Board auf  SDO Low=0x76, High=0x77 ==> 0x76 gestellt.
Wie gehabt, unter AP mit Addresse 192.168.4.1 fürs eigene WLAN konfigurieren.
Dann im eigenen WLAN den BME parametrieren. (Leider sind einige Resets nötig, bis es mal richtig funktioniert...)

@Peter, falls noch in anderer Config benötigt, bitte Bescheid geben. :D

Für das Plugin habe ich die aktuelle ADAFRUIT_BME680-Lib verwendet.

Dann schaue ich mir mal Jörgs Code wieder mal genauer an ...  ;)

Grüße,
Jürgen

herrmannj

ich kann unterstützen.

Habe mich auch gerade eben mal auf eine Stunde ran gesetzt, auch getrieben von Deinem grundsätzlich positiven Langzeit feedback.

Was mich beim BME280/680 ebenfalls stört ist dass Temp und Hum so ungenau sind. Daher schaue ich mir mal die Adafruit Lib vs Bosch Referenz genauer an. Da sind ja dutzende Korrekturwerte in die auf T/H angewendet werden. Mal schauen ob ich da Unstimmigkeiten in der Adafruit Lib finde. (Temp weicht in meinen Versuchen ca 2°, RH ca 5% ab ... )

In der Folge würden genauere T/H Werte dann die VOC Werte deutlich stabiler machen.

juergs

#20
Hallo Jörg,
gerne!

ZitatAdafruit Lib vs Bosch Referenz genauer an. Da sind ja dutzende Korrekturwerte in die auf T/H angewendet werden.
Hatte ich auch schon gesehen.
Woher nimmst Du Deine "genauen" Hum-Werte?
Das Delta-T durch Eigenerwärmung + Wärmestrahlung des ESPs wären schon einfacher erklärbar.

Leider liefert ESPEasy nur ein Sensor-Typ mit maximal 4 Messwerten (SENSOR_TYPE_QUAD) mit. D.h. dann Widerstand oder PPM.
Mal schauen vielleicht geht das anders, habe aber an der Stelle noch zu wenig Erfahrung mit ESPEasy-Plugins etc ..  :(   

case PLUGIN_DEVICE_ADD:
      {
        Device[++deviceCount].Number = PLUGIN_ID_119;
        Device[deviceCount].Type = DEVICE_TYPE_I2C;
        Device[deviceCount].VType = SENSOR_TYPE_QUAD;
        Device[deviceCount].Ports = 0;
        Device[deviceCount].PullUpOption = false;
        Device[deviceCount].InverseLogicOption = false;
        Device[deviceCount].FormulaOption = true;
        Device[deviceCount].ValueCount = 4;
        Device[deviceCount].SendDataOption = true;
        Device[deviceCount].TimerOption = true;
        Device[deviceCount].GlobalSyncOption = true;
        break;
      }


Habe die Code-Basics mit den Algorithmen für die bessere Übersicht zusammengefasst. 

herrmannj

T/H "Referenz", vorhandene Thermometer. Wissenschaftlich sicher nicht korrekt aber einfache Rechnungen. 2 Thermometer unterschiedlicher Hersteller zeigen fast gleiche Werte an, der BME weicht um mehr als 5% Hum ab.

Abwärme MCU: offen auf dem Schreibtisch, kann also nicht das Hauptproblem sein.

Ich habe mir gestern Abend nochmal angeschaut was auf Github zum Stichwort BME680 so alles liegt - da ist nichts sinnvolles. Der überwiegende Anteil gibt nur den Widerstand aus. Zwei Libs machen noch ein wenig vodoo. Da wird 75% Widerstand und 25% RH verrechnet (nicht korrigiert) und daraus ein AIQ Index gewürfelt. Da kann aber imho nicht reelles rauskommen.

Ich komme mehr und mehr zu dem Eindruck das es in der freien Wildbahn gar keine funktionierenden Anwendungen gibt, zumindest im Sinne von dauerhafter Messung und Wertung des VOC. Das deckt sich ein Stück weit auch dem Feedback in diesem thread. Außer uns beiden scheint es auch hier niemanden zu geben der VOC Messungen sinnvoll produktiv im Einsatz hat. (Reines Widerstandswert anschauen zähle ich da nicht dazu)

juergs

#22
ZitatIch komme mehr und mehr zu dem Eindruck das es in der freien Wildbahn gar keine funktionierenden Anwendungen gibt, zumindest im Sinne von dauerhafter Messung und Wertung des VOC.
Das deckt sich ein Stück weit auch dem Feedback in diesem thread.
Stimmt ...

ZitatReines Widerstandswert anschauen zähle ich da nicht dazu)
Ja, sehe ich auch so.

Mich stört die Versions-Vielfalt bei BSEC und der Aufwand, den man bei jedem Versionswechsel treiben muss, um die Static-Lib unterzubringen ... das nervt ...
(BSEC + platformio wäre auch noch so ein besonderes Thema für sich !!!)

Zur Genauigkeit der HUM-Werte im Hobby-Bereich wäre z.B. der DHT22-Sensors anzuführen, die Sensoren weichen bei meinen  um mindestens +/- 25% ab.
Also auch nichts Genaues. Genaue HUM-Messungen sind auch ein Fall für sich ... (Kalibrieren + Korrigieren?)


Apropos "Korrigieren": da wird einem param.t_offset und param.h_offset wieder gewahr ...  ;)


Zitat2 Thermometer unterschiedlicher Hersteller zeigen fast gleiche Werte an, der BME weicht um mehr als 5% Hum ab.
Wäre interessant zu wissen ob der BME wenigsten die Änderungen der Luftfeuchte analog zu den anderen Meßgeräten anzeigt.
Also nur Offsetbehaftet ist.

juergs

#23
Gegencheck:

Samstag, 24.08.2019, 14:36 Uhr
Lufttemperatur
    27,0 °C
Fühltemperatur
    29,5 °C
Luftdruck
    1005,1 hPa (1022 bezogen auf NN)
Luftfeuchtigkeit
    40,8 %
Niederschlag
    0,0 mm (in den letzten 10 Minuten)
    0,0 mm (heute insgesamt)
Windstärke
    3 Bft bzw. 11,35 km/h (Mittel der letzten 10 Minuten, Maximum war 15,3 km/h)
Windrichtung
    Nordost (32°)
Globalstrahlung
    744,52 W/m²


ESPEasy-Werte:
Temperature:25.55
Humidity: 51.50
Pressure: 1007.35
Gas:32.75


Na ja, innerhalb der Wohnung könnte der höhere HUM-Wert erklärbar sein ...

Angefügt "SLINK"...  = Dein Algorithmus [PPM] und die LaCrosse-Gateway-Variante [IAQ], Wetterstation + Serial-BME680-Modul (Vermutlich mit BSEC).

Im Vergleich macht Dein Algorithmus doch eine gute Figur, oder? (Spiegelt meiner Meinung nach auch die Gegebenheiten gut wieder: z.B. Rolladen öffnen etc. )

juergs

#24
Hallo Jörg,
bin etwas weiter ...

Hier der gestraffte Algo.
Fürs Reengineeren fehlen Deine Meßreihen ...  ;)

Das Filtern und die Approximation muss ich mir noch anschauen.
Dann kann ich eine Arduino-Library daraus machen, welche sich dann einfacher in Projekte (ESPEasy) einbinden lässt ....
Das würde in dieser Form auch schon gehen,  ggf. würde ich den Kalman-Filter einsetzen wollen ...  ;)

Jürgen

herrmannj

Die Messreihen habe ich auch schon lange entsorgt. Approximation kommt daher dass ich die ganzen Messreihen in Wolfram Alpha getankt habe. Je nach Messreihe gab es da natürlich eine Varianz und der gemittelte Wert war etwas krummer. Die 1250 waren und sind aber gut genug. Die Kunst liegt ja viel mehr in der baseline und der Kompensation von T und H.

in den Bild oben, der Lacrosse, läuft der mit der BSH LiB? Der Zacken wäre ja echt total unrealistisch .. (?)

Wie lange läuft die Slink Variante denn so schon durch (in Tagen, Wochen, Monaten :D) ? Die ppm Werte da sind ja im Bereich wo man sie auch erwartet. Wenn der schon lange so läuft dann ist die Kompensation wirklich gut. Wenn das Monate sind dann schlägt das auch den IAQ Core ...


juergs

#26
ZitatWie lange läuft die Slink Variante denn so schon durch (in Tagen, Wochen, Monaten :D) ?
Würde sagen seit Ende 2018 (20.11.2018) und das sehr zuverlässig und gut ....
ZitatDie ppm Werte da sind ja im Bereich wo man sie auch erwartet. Wenn der schon lange so läuft dann ist die Kompensation wirklich gut.
Ja korrekt!  ;) :D

Die Zacken in der Gateway sind komischerweise nur tagsüber vorhanden. Möglicherweise überschneiden sich da Telegramme
mit anderen LaCrosse-Sensoren (868 MHz). Das sind 2 BME680 Sensoren nanoLGW die mit LGW-Universalsensor und einer älteren SW-Variante mit speziellem Sketch.


Dann benötigen wir Meßreihen zu den HUM-Werten ...

herrmannj

Nur um Missverständnissen vorzubeugen: ich meine durchgehend laufen. Das heißt die Baseline Korrektur arbeiten fast 8 Monate am Stück... Und tut ihren Job

juergs

#28
Mehrere Tage...

Zur Ehrenrettung der LGW-Senoren: sie liegen auf dem Fensterbrett mit unruhigeren Luftverhältnissen ...  ;)
Perfomance-technisch stößt mein Raspi3 für die Auswertung hier an Grenzen ....

herrmannj

Kannst du eventuell einen vergleichbaren Plot aus Feb Mär oder so erzeugen. Hauptsache halt mit komplett anderem Wetter. Kalt und trocken wären ideal