Software
The software to operate the automated sprinkler controls became a more complicated engineering effort than the hardware development, even though we stopped short of writing software to completely replace the conventional sprinkler automated controller.
Our approach (Figure 6) is to use the PC-based processing to modulate the operation of the conventional controller — we set the conventional watering program to run a long cycle every day, and use the PC to enable or disable the cycle depending on whether the yard actually needs water. Our software makes the enable/disable decisions based on real-time data from the available sensors and a set of rules you program into it, while the HomeSeer X-10 control software commands the Universal Module appropriately based on the enable/disable output of our software.
Ignoring the Microsoft Foundation Classes application framework we used for the software, based on the Microsoft document/view architecture there are five parts to the sprinkler control software:
1. Sensor interface and data collection
2. Web interface and XML processing
3. Rule processing and output
4. User interface
5. Data logging

FIGURE 6: Sprinkler automation control software elements