The way I solved this was by buying cheap weather stations from AliExpress. Many of them come with multiple temperature/humidity sensors powered by batteries - for as low as 70$ for a station with 4 sensors. Those sensors transmit on 433 MH or 838MHz radio which has excellent range (20m+ through walls) and long (months+) battery life.
On RPi side I only had to get an RTL-SDR receiver and run https://github.com/merbanan/rtl_433 on the RPi itself to decode the data.
It was significantly cheaper than going with BLE or WiFi sensors.