Hi,
I think I might need to clarify what my previous note means:
It’s not that the NodeMCU with all the sensors can run for 27 months of a single powerbank charge (regardless of powerbank capacity). It means that the powerbank can prevent any situation where a reboot of the NodeMCU device is needed (either due to an error within the code or due to a mains power failure). The powerbank runs in passthrough mode, thus the 5V needed for the board is still fed by the mains, though a USB charger.
In order to be able to run a NodeMCU for a long period on a battery then a sketch with deep sleep enabled functionality would be needed, which is beside the point made by me above as the NodeMCU would sleep for most of the time and only wake up and send data under certain conditions which are time related (ie. wake up once per hour/day and send sensors data to MQTT) or triggered by an external module (this is the functionality of the battery operated Tuya devices which employ a secondary MCU that will wake up the ESP82xx when the sensors are triggered, then ESP82xx connects to wifi and sends its payload; however, this process takes several seconds and it is not really suitable for cases where immediate feedback is needed). It should also be noted that wifi is quite power hungry and cannot be expected to run for long periods of small batteries if continuous connection with the smart home software is needed (not even 18650s could provide power for extended periods).
In respect of powerbank brand, they should specifically include passthrough mode in their description in order to be able to both charge the internal accumulator and provide power to external devices (I use 10,000 mAh Asus devices and I know Xiaomi has several in their portfolio). There are 18650 modules on the Chinese sites that claim similar functionality but it is always difficult to find a reputable seller who did not cut corners.
Here you can find the necessary documentation for building an OMG with Platformio (it’s not that difficult, at least not when compared to the Arduino build, where you didn’t easily knew what software library version was needed for which project )
https://docs.openmqttgateway.com/upload/pio.html
My personal use case is for the data from the LDR sensor (light intensity data) to be sent to HA immediately after a certain delta from previous value is registered (I use this data in order to adjust motion triggering lighting, so, even if the PIR sensor triggers, the bulbs only turn on if there is insufficient light). For the humidity and intensity data I only need them once per 5 minutes and I use these data for monitoring the environment condition in my house (to turn on heat - with a relay connected to a NodeMCU - or AC - with IR blaster and IR receiver connected to NodeMCU). As humidity and temperature they don’t change very often it this is ok for me; however, there might be cases where much lower time delays would be needed (I helped someone build a greenhouse monitoring system consisting of about 40 NodeMCUs with DHT22 sensors sending data on a 10 seconds interval).
If you only started going the smart home route I suggest reading a lot of the documentation in multiple topics. It is quite a steep learning curve; however, once things start moving on, I think that time invested is totally worth it.
I think that only Florian can advise on the status of the implementation.