esp8266 reset programmatically instead of manually

I have an esp8266 and I created a circuit which goes into deep sleep for some time until it is reset via a momentary button connecting the RST pin to D0. This change from low to high and back to low causes the ESP to wake up and start back in setup() mode then run the loop() and go back to sleep. This all works fine but is there a way to do this programmatically. For example. I would rather the button be on an app that can be pressed from anywhere and wakes up the ESP. Is this possible? And I don't want a timer wake up, I already have that as well. If this is possible, programming it should be easy, but how does the hardware setup look?

Not possible, if the esp is asleep your app will not be able to communicate with it..

Just guessing but if you put it into a do nothing loop the watchdog will time out. The time for this is dependent on the watchdog settings. If you have any pins left you may use one of those to accomplish what you want, you may have to add a bit of external logic possibly an edge triggered oneshot.