I just made a post on this issue in another thread. I’ll copy it here and you can have a look see. I don’t have an enviro pHat. Two Sense Hats and a BME680.
From the other thread. BME680 two different results
I have two weather clocks, one indoor and one portable I take outside. I started out with just a Pi A+, DS3231 RTC and a Sense Hat. The Sense Hat has an issue where heat soak will throw the temperature readings off on the Sense hat. They read high. To offset or mitigate this I have a Proto Hat between my Pi and Sense Hat. It was also a convenient place to mount my DS3231. Anyway, putting that space and a bit of a barrier between my Pi and Sense Hat made the temperature readings accurate again. That weather clock sits in our living room running 24/7 with no case on it. I just put a black diffuser on the front. I have it flipped 180 so the GPIO header is on the bottom. It stands up better and leaves an open area at the top for heat to get out.
My second portable one started out the same way only I put it in a case with battery power. Even with the proto hat in between, temps read high due to heat build up in the case. It was vented, but only on the bottom and sides, and no fan. I don’t want rain or snow etc getting in. It is exposed to some precipitation at times.
I ended up mounting a BME680 externally on the bottom of my case. Mounted on the bottom with vented cover Its out of direct sunshine etc, so it reads pretty accurate.
There are all kinds of posts on this issue with the sense hat and all manner of formulas to compensate. I personally never went down that road. I’m not saying its a bad idea, just that I never tried it myself. I went with modifying my hardware setup first. Doing it with software was option B for me.
My build pictures are here if anybody is interested in a look see. https://1drv.ms/f/s!AjOYwiwlwDtpgq8_0VrdS3_H5xL_AA