So okay, we've got a power management problem.
Why is your thermostat's primary User Interface (UI) mounted to a wall (and often in a place not where you are comfortably located)?
The location of your thermostat probably has a lot to do with the "best" place to measure room temperature (out of the sun) and where you can run HVAC wires. There are other factors, but it doesn't matter. I have to get up and go there to read or adjust the temperature. (Of course, with NEST and other networked thermostats you can change temperature from almost anywhere).
Don't put the UI into the thermostat.
What? But where do we put it? Surely not rely on the smartphone, right? Yes. But consider this:
The thermostat will now consist of a small discrete box (hide it behind a picture frame or paint it to blend in) with a temperature sensor (maybe), the required solid state relays to control the HVAC, a couple of AA (or AAA) batteries, and an small RF transceiver (433MHz if you desire).
Pick a convenient location (or two) and install the UI there (and a temperature sensor too). It can be on the wall, on the kitchen counter, maybe a shelf, etc. The only requirement is that you have AC power (see where I am headed?).
Now, let's rename this UI a "control center". This control center (still very small) can not only host the UI but can also support Bluetooth and/or Wi-Fi, so you can use your phone to control the HVAC from your bed or couch.
If we do the RF correctly it can be safe (validated/encrypted) and reliable. Because the control center is plugged into AC, we don't have power management issues. The thermostat itself is running off of batteries or even parasitic power. We still have some power mgmt issues, but we can duty cycle the RF to reduce the overall power consumption. (A thermostat's control loop is *never* under immediate control of your thermostat's UI -- you "advise" the control loop what to do, so a couple of second lag is okay).
Now, with this setup we can put a lot of sophistication into the control center. It can be a (shudder) computer and suddenly our thermostat can become something much more interesting...
Thoughts of a Haskell (or Erlang or Lua) powered thermostat starts to become more of a possibility.