BME280 relative humidity wrong?

You are correct here. Trend is really more important that absolute value.
My alitude is 315 metres, so that’s same value in both cases. Tasmota is made in a way that relative pressure is only shown if you enter altitude (default is zero-disabled). So if there will be a difference i’ll start to dig into tasmota code if i find anything usefull (like calculation formula…)
It could be just unfortunate timing, though… after all, sensor is chinese, so it can fail…

1 Like

Just remembered… with Tasmota core 2.4.2 was an utter Wi-Fi nightmare and I switched back to 2.3 in those days which was really stable. The latest core these days is fine anyway…

No but you may be better off with the SHT31 anyway. I’ve just been looking at the data sheets. While more accurate, the SHT85 is only specified to be more accurate over a smaller range:

SHT31: 0-100% RH +/- 2%, 0-90°C +/-0.2°C

SHT85: 0-80% RH +/- 1.5%, 20-50°C +/-0.1°C

Both will measure 0-100% RH and the SHT31 full temperature range is -40 to 125C, compared to the SHT85’s full range of –40 to 105C.

Make sure you get the SHT31D (D is for digital - i2c interface, not the SHT31A for analogue voltage).

I have no experience with pressure sensors, sorrry.

Ok, thanks. I just ordered a few of those. For my needs higher price of DHT85 doesn’t “pass” anyway.

(David, i had latest 9.20 FW on my Tasmotas…)

Likewise. Also SHT not DHT. :slight_smile:

Just found this post which seems to indicate that the MS5611 is slightly more accurate than the BMP280. Though the tests weren’t done with esphome, and the sample size was one, so take it with a grain of salt.

The MS5611 is supported by ESPHome.

Interestingly on paper (reading the data sheets) the BMP280 should be more accurate than the MS5611. However, it can be disturbed by stress on the PCB.

EDIT: another vote for the MS5611: https://www.openrcforums.com/forum/viewtopic.php?f=86&t=8417&sid=e377da243383426d13ecd4aa436d62b4#p123253

Thank you! I just ordered two pieces. I’ll compare them and see. Sadly it will probably happen after appr. two months, usually takes ages for items to arrive from aliexpress… ebay can be slightly faster…

1 Like

I bought the Si7021 temperature/humidity sensor from Adafruit. Where I got the pressure sensor I can’t recall, it’s been too long – maybe Sparkfun or Digi-key. So it’s whatever their source is.

Edit:
I dug up the Arduino code for the pressure sensor I have, and I realize now it’s a BMP180 (not 280) with only pressure and temperature.
For indoor humidity (in another enclosure) I use a SHT31-D on an ESP12S using esphome. This was the first time I gave esphome a try. I like the simplicity.

I can’t keep track of my toys :slight_smile:

I have a couple of si7021’s that plug straight into my sonoff S22 switches. They seem great. I did compare to the BME280 as well and seemed comparable

Now he tells me… the ones I ordered had i2c pins though so I think I’m good

1 Like

I ordered similar ones - with I2C pins, so i guess we’re gonna keep crossing fingers until they arrive…
What chineae really like to “mess up” are BMx280 chips. If you look on ebay/aliexpress all sell BME/BMP280. The cheapest ones don’t have the option to choose the model, under specs humidity is stated, they are often sold as BME280 but you really get BMP280 (without humidity). I just got these “fakes” recently. It ended up with partial refund for cheating.
Now i know that the ones with price around 1-2 euro are always BMP’s, and usually BME’s are mounted on smaller PCB than BMP’s (interesting, though, why PCB’s are not the same…).
Since all these are fakes i guess that best option is to connect several of them at the same place for a week or so and compare output, to see the difference. I bought cheap temperature modules once (those in a small plastic box) and three of them all show different temp’s - the difference was over 2 degress… :cold_face: so, you get what you pay…

My AUD$4 BME’s are all screen printed with BME…

Yeah, well, they are printed BME allright. The question is are they real…? You’ll know only when you connect them. Mine are printed with both marks, and correct one “SHOULD” be marked with a marker, but of course it’s not… but 4 AUD is around 2.5€ - that can be correct sensor, if you’re lucky you can find them at that price, but it’s really lowest one for BME’s.

Well they all have pressure, temp and humidity so I think they are real?

If so, they are real, correct. BMP’s don’t have humiditiy.

1 Like

I think i finally found a solution to my “problem”. I monitored two BMP’s for some time: one is located outside and one inside. So, here’s data:

outside:
temp: -6,4 deg. Celsius
abs. pressure: 994 hPa
rel.pressure (calculated from original formula): 1035 hPa

inside:
temp: 15,8 deg. Celsius
abs.pressure: 994hPa
rel.pressure (calculated from original formula): 1032hPa

Here it’s clearly that ESP’s formula is wrongly dependant on temperature, while it really shouldn’t be - abs.pressures are exactly the same, only relative differs.

I searched some more on internet and found that in BMP180 datasheet there’s actually a formula for calculating relative humidity (interesting though that relative pressure is not mentioned at all in BMP/E280 datasheets…):

Prel= ((pressure)/pow((1-((float)(ELEVATION))/44330), 5.255))

direct ESPHome version:

lambda: |-
const float STANDARD_ALTITUDE = 315; // in meters, see note
return ((id(abs_pressure_out).state)/pow((1-((float)(STANDARD_ALTITUDE))/44330), 5.255));

(see BMP180 datasheet, page 17)

Indeed it contains NO TEMPERATURE, as i predicted. Namely, absolute pressure is already temperature compensated in BMP280, so i think it’s wrong to do it again.

Pressure, calculated with this new formula shows 1032hPa, so it seems that ESP’s formula is most accurate at appr.15-20 degrees and gets more errorneous when temps get lower (this is, in fact, what i noticed, too).

So how significant is 3hPa in the overall scheme of things?

You have the point, sure, but for me at least It’s not so much these 3 hPa difference than the principle itself. From the start of my HA project i often check my data with official ones, so i noticed this difference between tasmota and ESPHome data right away. I guess that i’m such type of person that this small details bothers me…

Just as a follow up to this, I will not be using SHT31Ds either.

Their temperature is consistently 2°C higher than my Fluke K-type thermocouple. And thus their calculated relative humidity is too low as well.

My DHT22s agree perfectly with the Fluke. So I will be sticking with them.

Also I know the humidity is incorrect as my dehumidifiers cut out at 55% RH. Exactly what the DHT22s are reading. The SHT31s are reading 10% lower than this.

1 Like

Hm…
thermometers, which come with multimeters have pretty low accuracy, don’t take them as a reference. Maybe thermocouple itself is accurate, but how accurate is electronics behind?
I looked at original SHT31, which has temperature accuracy stated as ± 0.3 degrees, so that’s pretty accurate. I guess you mean that chinese SHT’s are off? Mine are also quite “wrong”, like degree or so higher than chinese BME’s… Now, the real question is: are BME’s too low or DHT’s too high…

So, i decided to buy original sensor. I’m just in the middle of decision either to purchase original BME280 or DHT31. Or, maybe i’ll just buy both, to be sure…

BTW… air pressure, calculated with my formula above is now always correct, compared with local official data.