Not sure if I’m close to a solution or a million miles away, but in short BME sensors generate a little bit of heat when they’re powered. I’ve found the most reliable way to get a good measurement from them is to power them up briefly, take a measurement, then disconnect to let them reach ambient again before the next attempt.
I can confirm this sends power to the sensor for the 3 seconds, but no data is being returned to home assistant (I’m using MQTT for reference). I’m pretty new to HA and ESPHome but not new to IoT/electronics/sensors. Hoping someone can spot some dumb newbie error I’m making or just knows a smarter way to do this…
Are you using a BME sensor breakout board powered by 5V? If so, the heat is the regulator. Use a board without the regulator or bypass the regulator with a blob of solder and power from 3.3V. I ran into the same issue.
That would assume that the LDO is the source of the heat, which it does contribute to but is not the real problem. Example:
This is a breakout board with the LDO removed, 3.3v being fed from a very low noise lab supply. The heat is exactly where the BME sensor is. Here’s that same board before removing the regulator being fed 5v, for reference:
And showing the board with the modification to test:
The reality is these are active components, not like an NTC or something, and that means they generate heat when powered. There needs to be a way to remove that power for the time that the unit is not being measured to minimize the thermal buildup.