BME280 Accuracy?

How can I be sure that the temp sensor that came with the hestia one doesn’t need to be replaced? It always reads lower than any thermometer in my house. Is this a function of it’s accuracy, or a result of it taking only localized readings and not necessarily being intended as a HVAC sensor?


It is a pretty accurate sensor to be honest and so far we haven’t found a single dead or faulty one. This doesn’t mean that there will be some faulty. Make sure the little silver square is not blocked or covered by anything.
How far off is the reading and please confirm the reading is indeed lower and not higher than others?

In my experience there can be a significant actual difference in temperatures even a few feet apart. In my case, the wall that the thermostat is installed to is reliably 4 degrees F higher than the ambient air a mere six inches away. I’ve verified this by using three other thermometers. When I put the external thermometer right next to the hestiapi, it’s reading matches what the BME2080 is reporting. When I move it away, the temperature drops.

Though it’s worth keeping in mind that every thermometer has a range of error. No two will shows exactly the same reading. If they were within one degree F I considered them to be the same reading, though I think the error range for the BME280 is actually wider than that.

What I did was monitor the differences over time to verify that the difference is relatively constant. Since I care about the room’s temperature instead of the wall’s temperature, I then applied an adjustment to the value the script returns. In the file /home/pi/scripts/ at the bottom you will find where it prints out the temperature. I subtracted 4 from the value there:

  print "Temperature : ", int((temperature*1.8)+32-4), "F"

For C it will look something like

  print "Temperature : ", (temperature-.5), "C"

In the near future I will be adding a way to achieve this without needing to edit the script and in a way that it will survive an upgrade. I’ll also add in the ability to use a single external temperature source and provide a tutorial to show how to work with multiple external temperature sources.

1 Like

Yea the bme280 temp reading is always lower than the others. I’ve adopted @rlkoshak’s approach and created an offset. Right now, I’m off by 3F, 65F vs 68F. But the variance scales with humidity. What I’ve been doing to correct it is applying a sklearn prediction based on the table here. That generally gets me up to a number that’s more accurate when I’m between 70 and 72 F.

I’ve observed %8 threshold of error for RH that scales above 52%. That is to say it knows RH reliably at 52% and becomes less accurate above 55%, which SEEMS typical for the spec. I’ve made a regression to model that variance as well.

At the same token though, PRECISION is not necessary for this appliance. It’s maintaining a threshold and that’s the part i have to get used to. I just wanted to see if my experience is consistent with your own. I haven’t seen where OpenHab offsets temperature as a function of humidity to a “feels like” temperature.

This what I’ve been doing too, but does your required offset not scale with humidity?

Not sure how the sensor behaves when it is faulty but it may be a faulty sensor.

It doesn’t. It uses the raw sensor readings as reported by that Python script.

I live in a high desert at over 7100 ft elevation. If the humidity ever gets above 40% it’s a really humid day. In the winter the humidity is usually between 15% and 25% and it’s really only the winter where it matters because we don’t have an AC. In short, humidity doesn’t really have much effect on the temperature for us.

Also, my furnace is central forced air which heats the whole house. For the range of temps the house typical exits (65-74 with humidity between 25%-40% when we use humidifiers) a simple static offset to account for the extra warmth from the wall is more than adequate to keep the place comfortable.

Anything more involved would be “measuring with a micrometer and cutting with an ax”.

But obviously my deployment is unique and others may need something more involved. But that shouldn’t be too hard since you have access to the humidity reading as well as the temp in that Python script (for now). Eventually I want to insert a stub of a Rule between the call to the Python script and the Rules that process the sensor readings where the user can insert and adjustments they may require to the readings. But adding the ability to easily use external sensors instead of/in addition to the built in one is a higher priority I think.

@rlkoshak Thanks for the info. It all makes sense now, im in the deep south of the US. It gets very humid here.

Oh nuts, don’t say that. My correction modeling it so far greatly improving the accuracy I think. Just to be safe and because this whole thing is obsessing me, I bought this. Just hope it fits in the housing.

@HestiaPi @rlkoshak ok i think im good now folks. I’ve spent the entire weekend with hestiapi installed. Something came over me a few weeks ago and I just programmed the whole thing from scratch. Thanks for your help.

Feel free to share in case you solve problems that others face too.

i think i’m going to set up a repository, it’s all in python.