BME680 gas resistance values

So did you guys figure this out? I also have very low readings (8550ohm) and have no clue what this means.

Still waiting for input of other people… at least I am not alone :wink:

Hello,

27899 Ohms lol but i am printing a 13 hours PLA part with my 3D Printer…

I read here https://forums.pimoroni.com/t/bme680-observed-gas-ohms-readings/6608/17

we can have a IAQ value with this formule :
comp_gas = log(R_gas[ohm]) + 0.04 log(Ohm)/%rh * hum[%rh]

How can i integrate this in EspHome with Lambda please?

3 Likes

Wow you found it.

I also want to know how to make it IAQ

you great !! thx.

@minsuke

thanks!

but do you know how integrate this in Lambda please? :wink:

Your resistance is high (and thus air quality is also good) if you are printing PLA.

Perhaps I should also start printing more 3d parts to have better air quality :smile: :thinking:.

I wonder if we would put both sensors in the same room they would show the same values.

LOL…

Hopefully PLA is not bad for health like ABS… :wink:

Is there a way to convert this value in EspHome? my knoledge is not enought good to make the Lambda formule with comp_gas = log(R_gas[ohm]) + 0.04 log(Ohm)/%rh * hum[%rh]

Any idea?

Did anyone convert gas resistance to AQI?

what are the ranges people are getting in Ohms? I have just set mine up via ESP home and was getting a constant 48633, it was like this for attest 24 hours. I have now moved across to a tasmota device I had lying round and im getting close to 10000.

I have mine in the basement, typically get values ranging from 12,000-16,000.
Last night I was working on some hydraulics, spraying penetrating oils and such, the value shot down to 5,600 overnight and has been crawling back up.

Does Tasmota AQI calculation?

No unfortunately, neither does esp home. I did notice last night though that the home assistant integration does.

I have the BME680 from Adafruit running, and have the IAQ calculatet this way:

sensor:
  - platform: bme680
    temperature:
      name: "BME680 Temperature"
      oversampling: 16x
    pressure:
      name: "BME680 Pressure"
    humidity:
      name: "BME680 Humidity"
      id: hum
    gas_resistance:
      name: "BME680 Gas Resistance"
      id: g_res
    address: 0x77
    update_interval: 60s  
# comp_gas = log(R_gas[ohm]) + 0.04 log(Ohm)/%rh * hum[%rh]    
  - platform: template
    name: "BME680 IAQ"
    id: IAQ
    unit_of_measurement: IAQ
    lambda: 'return log(id(g_res).state) + 0.04 *  id(hum).state;'  

Just use the lambda to do this simpel calculation.

Edit: I run this on a ESP32

11 Likes

Which integration?

1 Like

First off, thanks for posting the lambda for converting to IAQ. I do have a question though. Since setting this up, my IAQ has been a consistent ~10. I’ve tried blowing on the sensor, burning a candle nearby, trying to see if I see it change and…nothing. Anyone else having oddly consistent readings? All my other parameters seem to fluctuate.

Thanks.
Its working with esphome.

For anyone coming across this I found this one uses the bosch library which has it all built in now

# Minimal example configuration with common sensors
i2c:

bme680_bsec:

sensor:
  - platform: bme680_bsec
    temperature:
      name: "BME680 Temperature"
    pressure:
      name: "BME680 Pressure"
    humidity:
      name: "BME680 Humidity"
    iaq:
      name: "BME680 IAQ"
    co2_equivalent:
      name: "BME680 CO2 Equivalent"
    breath_voc_equivalent:
      name: "BME680 Breath VOC Equivalent"

text_sensor:
  - platform: bme680_bsec
    iaq_accuracy:
      name: "BME680 IAQ Accuracy"
4 Likes

from a room where people smoke
image

1 Like

I know, this is a very old discussion, but I am confused:

In the official ESPHome documentation, there is the lambda-example:

  - platform: template
    name: "BME680 Indoor Air Quality"
    id: iaq
    icon: "mdi:gauge"
    # calculation: comp_gas = log(R_gas[ohm]) + 0.04 log(Ohm)/%rh * hum[%rh]
    lambda: |-
      return log(id(gas_resistance).state) + 0.04 *  id(humidity).state;
    state_class: "measurement"

(Source)

Isn’t the comment # calculation: comp_gas = log(R_gas[ohm]) + 0.04 log(Ohm)/%rh * hum[%rh] giving a different formula then actually calculated in the lambda?!

What is best practice: do you go with the BSCE-configuration or the general configuration?

Would be nice, if someone could clarify this.