Once established moss eliminates most watering,  mowing, fertilizing and all other grass costs and forms a nice, soft, green carpet. It spreads quite slowly. In the US moss is worth $5/sq ft to purchase for those wanting to eliminate grass immediately.   https://www.wholesalenurseryco.com/carpet-moss-for-sale/  Some people replace their entire lawn with moss. Never mow again.

Moss also grows in cold temperatures so in the spring it is already bright green under the snow. It spreads very slowly though so you have to be patient. 

The previous watering system used an Arduino Uno, Iduino WiFi shield and a 4 channel relay shield. Time comes from a battery backed DS3231 Real Time Clock so power failures don't affect controller time. I recently replaced it with a much less expensive WiFi NodeMCU, 4 channel relay board and DS3231 RTC. 

A web page is used to enable or disable the system remotely when rain is forecast or to manually turn the valves ON or OFF. Far more convenient to do this from your smartphone. No app needed. Works on any browser on any phone tablet or pc. The two independent zones are not on at the same time due to reduced flow. Zones 1 and 2 are on at even and odd number hours. The system uses Orbit 91592 watering valves. These latching valves are unusual in that to turn ON they only need a +24VDC 0.5 second pulse and a reverse polarity -24VDC 0.5 second pulse to turn OFF. 

A big advantage of this is they need no power to stay on. A big disadvantage of this is they need power to shut off. If the power fails when they are on they will stay on. Commercial timers with these valves are battery powered. The short green hose from the tap gets the Y valve far enough away and absorbs the shock when the valves snap off. 

A separate 24VDC power supply goes to two SPDT relays wired to create a DPDT relay used to change the polarity then to the other two relays for zone select. Polarity is chosen before zone select  and the valves powered. A 24VDC power supply for the valves, a 5VDC power supply for the NodeMCU and relays are all inside a plastic box outside. The power supplies keep the box warm and stop condensation. 5V for the relays comes from VU on the LoLin NodeMCU. Relays are active LOW. digitalWrite(D*, LOW); turns them ON.

Auto OFF means manual control of valves instead of time. Litres is calculated from ON seconds. Calibrated with home digital water meter.

Many more zones could be controlled with an 8 or 16  relay board connected to a MCP23017 16 I/O expander chip. Two I2C wires (same wires as real time clock, default is D1 and D2) address the chip so no extra I/O needed from NodeMCU. 

Precisely controlling lawn watering can greatly reduce your municipal water consumption. Stop paying sewer charges for water that doesn't go down the sewer. 

Programs for NodeMCU are uploaded wirelessly from a remote location within the same router range.
In this case uploaded from my laptop inside to NodeMCU outside. Wireless is far more convenient.

To see a list of other advantages of NodeMCU go to: https://hackaday.io/project/171474-wifi-waterbed-temperature-control

See also a low volume plant watering system: https://hackaday.io/project/181370-nodemcu-plant-watering-with-web-page-hmi

This is the seventh home automation project using NodeMCU. Total saving $1,000+/year.

To see the rest go to: https://sites.google.com/site/nodemcu12e/