LaCrosseGateway und BME680

Begonnen von Mikesch, 25 Juni 2021, 19:56:27

Vorheriges Thema - Nächstes Thema

Mikesch

#15
Hallo Peter,

vielleicht ist das der TVOC Wert ich glaube der wird aus Feuchtewert und kOhm errechnet.

Meinst du die Definition der Logdatei?

defmod FileLog_LaCrosse_00 FileLog ./log/LaCrosse_00-%Y.log LaCrosse_00
attr FileLog_LaCrosse_00 alias FileLog_LaCrosse_00
attr FileLog_LaCrosse_00 logtype text
attr FileLog_LaCrosse_00 room LaCrosse

setstate FileLog_LaCrosse_00 active
setstate FileLog_LaCrosse_00 2021-06-30 13:23:07 linesInTheFile 1175616




oder list LaCrosse_00


Internals:
   DEF        00
   FUUID      5e5d419f-f33f-31cf-b0c4-fcf8f9221fdb4749
   IODev      myLaCrosseGateway
   LASTInputDev myLaCrosseGateway
   LaCrosse_lastRcv 2021-06-30 13:27:07
   MSGCNT     130
   NAME       LaCrosse_00
   NR         27
   STATE      T: 24.7 H: 48
   TYPE       LaCrosse
   addr       00
   battery_new 0
   bufferedH  48
   bufferedT  24.7
   corr1      0
   corr2      0
   myLaCrosseGateway_MSGCNT 130
   myLaCrosseGateway_TIME 2021-06-30 13:27:07
   previousH  48
   previousT  24.7
   sensorType 4=LaCrosseGateway
   READINGS:
     2021-06-30 13:05:13   IODev           myLaCrosseGateway
     2021-06-30 13:27:07   battery         ok
     2021-06-30 13:26:07   dewpoint        12.9
     2021-06-30 13:27:07   error           0
     2021-06-30 13:27:07   gas1            10505
     2021-06-30 13:27:07   humidity        48
     2021-06-30 13:27:07   pressure        1011
     2021-06-06 02:58:06   rain            768
     2021-06-30 13:22:07   state           T: 24.7 H: 48
     2021-06-30 13:27:07   temperature     24.7
     2021-06-06 02:58:06   windDirectionDegree 45
     2021-06-06 02:58:06   windDirectionText NE
     2021-06-06 02:58:06   windGust        57.8
     2021-06-06 02:58:06   windSpeed       78.5
Attributes:
   IODev      myLaCrosseGateway
   alias      Wohnzimmer LCG
   event-min-interval humidity:60,state:60,temperature:60,pressure:60,dewpoint:60
   event-on-change-reading battery
   event-on-update-reading humidity,state,temperature,pressure,dewpoint
   fp_Grundriss 329,422,1,
   room       LaCrosse




juergs

#16
.. und wenn Du es Dir mit ESPEasy einfach "easy" machst?

Nach "BME680" hier im  Forum suchen?
.. für den Background...

u.A.:
die "richtige"  ;) TVOC-Ausgabe ohne BSEC:  ESPEasy_BME680_TVOC oder  ESPEasy-mega_BME680_TVOC_20210223
.. oder über MQTT an FHEM Daten liefern.

PeMue

defmod FileLog_LaCrosse_00 FileLog ./log/LaCrosse_00-%Y.log LaCrosse_00 sollte eigentlich alle Events loggen. Kannst Du mal im Event Monitor schauen, ob der Event des G Werts auch im Event Monitor kommt?

Gruß Peter
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

Mikesch

#18
Also in der Logdatei wird der Wert nicht gelistet aber unter readings sieht man sie. Aber irgendwie nur ein paar davon, irgendetwas stimmt da nicht.

pi@raspberrypi:/opt/fhem/log $ tail -f LaCrosse_00-2021.log
2021-06-30_14:34:01 LaCrosse_00 dewpoint: 12.9
2021-06-30_14:35:01 LaCrosse_00 temperature: 24.6
2021-06-30_14:35:01 LaCrosse_00 humidity: 48
2021-06-30_14:35:01 LaCrosse_00 T: 24.6 H: 48 D: 12.9
2021-06-30_14:35:01 LaCrosse_00 pressure: 1012
2021-06-30_14:35:01 LaCrosse_00 dewpoint: 12.9
2021-06-30_14:36:01 LaCrosse_00 temperature: 24.6
2021-06-30_14:36:01 LaCrosse_00 humidity: 47
2021-06-30_14:36:01 LaCrosse_00 pressure: 1012
2021-06-30_14:36:01 LaCrosse_00 dewpoint: 12.5
2021-06-30_14:37:01 LaCrosse_00 temperature: 24.6
2021-06-30_14:37:01 LaCrosse_00 humidity: 47
2021-06-30_14:37:01 LaCrosse_00 pressure: 1012
2021-06-30_14:37:01 LaCrosse_00 dewpoint: 12.5

event-min-interval
   
der eintag gas1 fehlte bei den beiden Einträgen:
humidity:60,state:60,temperature:60,pressure:60,dewpoint:60,gas1:60
event-on-update-reading  humidity,state,temperature,pressure,dewpoint,gas1

   




Eigentlich wollte ich nicht noch mehr ESP8266 aufstellen. Daher kam mir die Idee den eh schon vorhandenen LaCrosseGateway zu benutzten.


Aber da mich die Werte neugierig machen, ich habe da TVOC und IAQ gesehen (und ich noch einen BME Sensor noch da habe) habe ich ESP Easy auf einen weiteren gefalsht.

Allerdings zeigt das nur einen Wert an den TVOC

Firmware
Build:⋄ 20112 - Mega
System Libraries:⋄ ESP82xx Core 2843a5ac, NONOS SDK 2.2.2-dev(38a443e), LWIP: 2.1.2 PUYA support
Git Build:⋄
Plugin Count:⋄ 49 [Normal]
Build Origin: Self built
Build Time:⋄ May 8 2021 10:37:30
Binary Filename:⋄ ESP_Easy_mega_20210508_normal_ESP8266_4M1M
Build Platform:⋄ Windows-10-10.0.19042-SP0
Git HEAD:⋄ pygit2_not_installed



juergs du scheinst da viel gemacht zu haben...
Gibts irgendwo eine Anleitung?









juergs

#19
Sieht doch gut aus.  :D
Funktioniert es auch Richtung FHEM?

Den Sensor noch ein paar Tage einbrennen lassen.

In der Zeit kannst Du noch etwas über CO2, Baseline, IAQ + TVOC und auch CustomSensor (@PeMue, https://forum.fhem.de/index.php/topic,45594.0.html) nachlesen ..  ;D

Anmerkung: TVOC reicht m.M. völlig aus!

Mikesch

Welchen Wert liefert denn LaCrosseGateway?
Denn sowohl Tasmota als auch ESPEasy sind bei  140, 137, 160 und LaCrosseGateway ist bei 10421.

juergs

Welche Version der LGW hast Du jetzt verwendet?

Mikesch



LaCrosseGateway V1.35 
Zitat von: juergs am 30 Juni 2021, 15:35:50
Welche Version der LGW hast Du jetzt verwendet?

Das ist die LaCrosseGateway V1.35 

juergs

#23
https://svn.fhem.de/trac/browser/trunk/fhem/contrib/arduino/36_LaCrosseGateway.zip?order=name

In 36_LaCrosseGateway_V.135\BME680.cpp (8 hits):
Line 10:   m_lastValue.Gas = 0;
Line 91:   return m_lastValue.Gas;
Line 240:   m_lastValue.GasADC = (int16_t)((int16_t)adcReadings[0] << 2 | (int16_t)(adcReadings[1] && BME680_MASK_GAS_LSB) >> 6);
Line 241:   m_lastValue.GasRange = adcReadings[1] & BME680_MASK_GAS_RANGE;
Line 243:   int64_t var1 = (int64_t)((1340 + (5 * (int64_t)m_compensation.SWE)) * ((int64_t)m_gasRanges1[m_lastValue.GasRange])) / 65536;
Line 244:   int64_t var2 = (((int64_t)((int64_t)m_lastValue.GasADC * 32768) - (int64_t)(16777216)) + var1);
Line 245:   int64_t var3 = (((int64_t)m_gasRanges2[m_lastValue.GasRange] * (int64_t)var1) / 512);
Line 248:   m_lastValue.Gas = gas_res;


In HardwarePageBuilder.cpp:
Zitatif (ownSensors->HasBME680()) {
    cvbme680t = "";
    BME680 *bme680 = ownSensors->GetBME680Instance();
    BME680Value bme680Values = bme680->GetLastMeasuredValue();
    cvbme680t += "T=" + String(bme680Values.Temperature, 1);
    cvbme680t += " H=" + String(bme680Values.Humidity, 0);
    cvbme680t += " P=" + String(bme680Values.Pressure, 1);
    cvbme680t += " G=" + String(bme680Values.Gas, 0);

Der G(as)-Wert ist also der Widerstand des Heizelements.

Mikesch

Ja ok aber irgendwie passt das nicht zusammen.
Oder ich stehe wieder auf dem Schlauch  ;)

Kilo Ohm sind doch 1.000 Ohm.  Also durch 1000.
Wenn das LaCrosseGateway Ohm statt kΩ anzeigt dann wären wir bei 11,520 kΩ.

Ich habe das mal nebeneinander geplottet links die werte von Lacrosse und rechts die kOhm Werte von ESPEasy und Tasmota.
Kommt ungefähr hin nur um Faktor um 100 verschoben.

ESPEasy zeigt : 181.78
Tasmota: 175.86 kΩ
LaCrosseGateway  : 11520




juergs

Achtung, Du verwechselt TVOC mit Widerstand!

TVOC ist Ergebnis von Berechnungen in die der Widerstand einfließt.
Luftdruck und Luftfeuchte ebenfalls.