This is the first of many NodeMCUs I am using to save $1,000+/year total. All programs uploaded wirelessly and web page HMIs used for monitoring and control. Upgraded from Arduino Uno. NodeMCU records furnace operation every hour. Complete details are here: https://sites.google.com/site/nodemcu12e/#furnacewaterheater Furnace ON seconds per day is sent to a Google cloud spreadsheet and used to calculate furnace cubic metres of natural gas used per degree day furnace efficiency. That number greatly improved from 0.6 to 0.4 with longer furnace run times. Furnace is either OFF or ON for 1/2 hr+ now. I was thinking of switching to a gas water heater but it would cost $3,000. Only heating at low cost Time of Use overnight is almost the same operating cost. Electric water heaters are quiet, don't need holes in the wall, are far less expensive and much easier to install.
LoLin V3 NodeMCU12E - I prefer this 3.3V board since it includes 5V VU output from the USB charger to power relays.
17X10 protoboard. I mount the NodeMCU board across two of them. This makes it easy to wire and creates two isolated areas .
4 channel relay
photoresistor to detect furnace ON LED so no electrical connection between furnace and NodeMCU