Always thought the old mechanical bimetallic strip solution was particularly elegant.
In effect, two strips of metal were bonded together forming a coiled "spring." Because each metal had different coefficient of thermal expansion, the spring would expand or contract to different lengths depending on the temperature. Place the electrical contact at the temp where the heater or HVAC should turn on & bam.
No electronics at all, just a temperature-dependent mechanical switch.