The 50 cabins each send temperature data once every 10 minutes using battery power this could be handled by a system that does not rely on a receive protocol to tell the "transmitter" when to transmit. This could massively sustain battery life because you are not wasting several mA of current continuously keeping the radio listening.
In the 9 minutes, 59.9 seconds between transmissions your battery consumption could be as low as a few microamps. During transmission (0.1 seconds) you might need 20 mA so the average current is: -
Background (say 10 uA) plus 20 mA/6600 = 10 uA + 3 uA = 13 uA.
Channel usage per cabin transmitter is 0.1 seconds every 660 seconds so, with 50 transmitters this means the channel average utilization is 5/660 = 0.75%. Each transmitter could randomly time its transmission based on a unique address so that on average it was ten minutes (with plus or minus 5 minutes as the random factor).
Collision probability would be low but you'd get a cabin's temperature the next time in all probability. It's all down to how you want to play it.
This type of system would use 50 transmitters and one receiver. The receiver does all the data collection for the 50 cabins.
Quite cheap (I would use FM) transmitters could be used but each would need a little MCU to format the transmission with preamble, address, payload data and checksum. The little MCU would also do the random timing thing.
The receiver (AC powered) would convert a received transmission back to the payload data (having proven that the checksum tallied) and the address of the cabin would also be detected in the transmission.
Maybe a LoRa module could be put into shut-down mode to conserve battery life thus you get a similar solution that wouldn't require an MCU to format the data to make it suitable for a transmission?