I am making a wireless doorbell that uses ESP8266 microcontrollers. To save power, I am considering two possible approaches:
Use normal wifi, but put the modules in modem-sleep, where the processor continues to run but the radio goes into a low-power state. Every 200ms or so (depending on router settings), the router will send a DTIM beacon which wakes the ESP8266 radio up. The ESP8266 will then receive any packets the router sends it, before switching its radio off again. (Admittedly I'm a little unclear on how exactly the ESP8266 can receive a DTIM beacon when its radio is switched off. That would seem to be a catch-22. If someone can explain this, please do.)
Use ESP-NOW, which is a point-to-point wifi protocol that doesn't involve any routers or IP addresses. However there are also no DTIM beacons, and so the ESP8266s will need to avoid any form of sleep, lest they miss messages. I get the general impression that ESP-NOW may be less power-hungry than full TCP/IP wifi though.
So basically my questions are:
Which method consumes less overall power, given that option 1 can use modem-sleep and option 2 cannot (at least, the receivers can't)?
Are there other reasons to choose one solution over the other?
Does ESP-NOW really consume less power than standard TCP/IP wifi (assuming sleep is not used in either case)? How much less? And why?
If the sending ESP8266 were to use modem-sleep or light-sleep, how quickly could it wake up from either of these states and transmit an ESP-NOW packet when the bell is pressed?