The ESP8266 is quite cool, but there is one annoying drawback if you are trying to run on batteries. It does not support waking from deep sleep on GPIO activity. Deep sleep only supports waking via timer or via reset.
I believe that the other two sleep modes (modem sleep and light sleep) support waking on GPIO activity, but they don't save as much power.
Modem sleep just disables WiFi between DTIM beacon intervals. In this sleep it draws between about 15 mA and 16 mA current average, depending on the DTIM beacon interval.
Light sleep is like modem sleep, but also turns off the system clock. That gets you down to an average of between 0.5 mA and 2 mA, depending ton the DTIM beacon interval.
In deep sleep, everything is off except the real time clock. That cuts current down to around 0.02 mA.
Two of the sensors I have don't fit in well with that kind of deep sleep.
One is a cup anemometer. It briefly closes a switch once per revolution. Wind speed = rotation rate times a constant. If I just wanted to check the average wind speed every so often, it would be fine--the ESP8266 could wake up and stay awake for a few resolutions to get the speed, send it, and go back to sleep.
It could be hooked up to reset the ESP8266 each time the switch closes, but in high wind that could generate resets so fast that the ESP8266 would not have time to connect to WiFi and send data.
Also, I'd like to get more information on wind gusts, and so really want to record the time of each switch closure.
The other is a tipping rain gauge. It briefly closes a switch for every 0.01" of rain. That one probably could be used directly with the ESP8266 by making it generate a reset on each switch closure. I don't think my area ever gets rain intense enough to make those resets happen fast enough to cause problems.
What I'm thinking of do is relegating the ESP8266 to just dealing with WiFi, and using something like an ATiny84 to handle the sensors.
The ATiny84 and ESP8266 can be connected via I2C or SPI or similar. The ESP8266 can then spend most of its time in deep sleep, being woken every so often by the RTC. When it wakes it can get the accumulated data from the ATiny84 and upload it.