Enviro+ bme280 off by 18C

The documentation shows that the BME280 can be off (higher) by up to 10C. I have the opposite problem where the temperature is lower by 18C. Is there any way to correct this or is it defective?

Barometric pressure seems to be off by 50hpa since the pressure sensor seems to assume pressure is at sea level instead of my 680m ASL.

Is this using the direct sensor reading, or the version that tries to compensate for the heating effect of the RPI?

The pressure sensor doesn’t assume anything, it measures the actual air pressure, so if you know the value at sea level it should work like an altimeter.

If the temperature is wrong the humidity will be incorrect as it is relative to temperature.

I’m running the unadjusted, all-in-one.py script.

Right now, uncompensated temperature is show 3.7C while compensated is 7C.
My smartthings sensor is showing 22.1C.

Sensor is showing 32.3% RH while my other sensor is showing 47%.

Pressure is showing 933.8 hpa while my ST is showing 1015.4hpa and the official weather reading is 1013hpa.

I can correct for humidity and pressure but a +19C adjustment to the temperature seems high.

Hmm, it doesn’t make sense that compensated temperature would be higher when the sensor is cooler than the RPI. If the RPI wasn’t there and it was in a cold room surely it would be colder without the RPI warming it.

I don’t know how you can get bad readings because it is a digital interface and the chip has built in voltage regulation but something is wrong as it should be a lot more accurate. If it is on top of the RPI it should read higher than room temperature not lower.

I bought an extender cable for the RPi and moved the Enviro+ away from the CPU. Now my temperature readings are spot on with my digital thermometer.