I’ve been using the ET checkbook water balance algorithm all summer and am happy with the results. My implementation is based on the same code as the stand-alone simulation found here: http://1drv.ms/1jDASLj.

The code is not tightly integrated with the OSPI program; it’s mainly stand-alone Python programs that run as cron jobs. I have a database containing tables for weather data, sprinkler zone configuration, the irrigation checkbook, and the watering schedule. I modified the sprinklers_pi program to load its schedule from the database every day. (I used sprinklers_pi instead of Interval because I was familiar with its code and because its schedule model was an exact match to my data: a schedule is a simple list of watering events consisting of a start time, zone number and duration.) I configure zones by editing a text file (a nice UI would be great, but not worth the effort to me so far). I get an email every day telling me what watering took place the previous day and giving me a ten day weather forecast with the projected watering schedule for each day. Most of the experimenting I’ve done this summer has been in tweaking the projected schedule. The tricky part is forecasting future ET values.

Here in Seattle the summer is mostly dry for long stretches with an occasional rainy day. Last night we got a lot of rain. There was no watering yesterday because there was rain in the forecast. Now that the rain has fallen the ground is saturated and the projection is for no watering for three days. At that point watering will resume first with my lawn zone and zones with shallow roots. A day or two later irrigation will resume for zones that have larger capacity to store water. My lawn in shallow clay soil gets watered every two to three days during dry stretches. Other zones containing shrubs in deeper loamy soil get watered less often. I found I had to tweak some of the shrub zone parameters because we planted flowers that need more frequent watering. My biggest irrigation issues are mixed plant types in zones and incomplete coverage by sprinkler head placement (e.g. water flow to some flower areas is partially blocked by shrubs). Therefore I do some additional hand watering during dry stretches. It would be much easier if I had big fields of soy beans instead of home landscaping!

The ET approach to irrigation is nice because it’s so dynamic. When the weather is hot and dry, watering happens more often. Windy days mean more watering; overcast days mean less. If it rains (or if rain is in the immediate forecast), watering is suspended. When watering resumes depends on how much rain falls and how hot/dry/windy the following days are.

If anyone is interested in trying this approach themselves, I’m happy to share my experience and code. Start by checking the link above. The primary reference I’ve used is this document from Irrisoft, which describes this approach and is pretty easy to read: