I have written a Node Red flow that provides a tool for managing Over The Air firmware updates.
The ESP8266 OTA upgrade library contacts a specified URL and passes the name and MD5 hash of the module's current firmware. This server implemented in this flow will compare the supplied MD5 hash against the one for the latest firmware and, if different, send the new firmware to the module. The server will uses either the module's MAC address or firmware name to identify the correct firmware file to send.
This flow also includes a firmware management screen for uploading new firmware files, deleting firmware files, and creating symbolic links to existing firmware files. Symbolic links allow you to point a specific MAC address to a firmware file so as to be able to replace the firmware on a module with a completely different one. The firmware manager is accessed from http://your.node-red.server:1880/esp8266-ota
A template for producing firmware with OTA upgrade support built in is available from this gist. This template checks for a firmware update on each boot up. It then runs a process such as reading a sensor and publishing the value, before entering a power saving deep sleep. When it wakes, it will check for a firmware upgrade again and repeat the cycle.
Enjoy
Dean
Need big LiPos ? Just take apart an old laptop battery. (Carefully of course !) Usually only 1 or 2 cells are actually knackered and the rest can drive motes for ages. Often they are 16650 size cells... Much bigger than the wemos