At I am gathering requirements for a sprinkler software that I intend to create and make available as open source. The hardware is already in place - i have a garden pump connected to a sprinkler that I can switch on and off by software.

I do not want to add extra sensors but would rather like to use weather information for my location (history,current and forecast) to determine the amount of water needed.

My usecase is irrigating a small single zone lawn of some 100 square meter surrounded by some hedges and other plants with a tree that gives shadow most of the day.

Now I'd like to create an algorithm that applies the "right" amount of water. I found some sources see stating parameters like how much water the lawn needs per day.

Some sources suggest to sprinkle only every 3-5 days and then a lot early in a morning e.g. the equivalent of 15 mm rain per sprinkle.

Other sources say it depends on how hot it is and how much evaporation is created by the heat.

I'd like to get this information more precise and hope to get some input from users here.

  • What sources for the "watering algorithm" would you know and what do they state?
  • 1
    It really is going to depend heavily on your climate. What I would suggest is making the system as dynamic as possible. Here is a link to a simple rain sensor setup with an arduino: – Rob Aug 2 at 19:18
  • Rob - thanks for the comment - i have updated my question to point out that i do not intend to install a sensor but would rather like to use weather data as my "sensor". – Wolfgang Fahl Aug 3 at 6:17
  • Weather data? From what source, Wolfgang? Micro environments do not go by 'weather data' for the region. I would think sensors far better as they are right there to give you REAL data about the soil and plants for a particular micro environment. I am thinking you could tweak things to promote the owner to get out and get data about their own environment. Encouraging people to at the very least personally experience so they would be able to input the data they know about their chunk of the world. That would be the best solution killing two birds with one stone, sort of. – stormy Aug 3 at 8:35
  • Curious Wolfgang whether you know about the Grand Solar Minimum the world is in right now? – stormy Aug 3 at 8:37
  • No I didn't know about the Grand Solar Minimum - i just looked it up on Wikipedia. For the weather data - openweather api offers some 200.000 station and one happens to be less than a quarter mile away from my house - for me that is "micro" enough. If we keep commenting like this we'll end up in chat ... – Wolfgang Fahl Aug 3 at 8:44
up vote 3 down vote accepted

Here is what I (committer of the Spinkler open source project) found so far

And a list of open source sprinkler-controller projects on github:

Step 1: determine the season

The amount of water used by your lawn varies over the year. The diagram from the CIS1098 paper of the University of Idaho shows an example for certain parts of Idaho: Seasonal Water Use Pattern example from CIS1098 paper

Step 2: determine the performance of your sprinkler


enter image description here

The result will be an equivalent of mm/rain per hour. You might want to make sure that the sprinkler performance is uniform over the whole area of your lawn. To check this you might want to repeat the above test at the corners and the center of your lawn and compare the five results.

Step 3: get the weather current/forecast/history enter image description here see e.g.

The result will be that you know how many mm of rain you got in the past few days and how many mm are expected in the upcoming days.

Step 4: determine your type of soil

Sand/Silt or Clay? This will let you know how much water your soil will likely soak/evaporate per day.

The useable amount of water may be e.g. 5 times higher for Silt and Clay than for very sandy soil.

  • This was where I got most of my education, Wolfgang. Do you live in the PNW? All software to automate irrigation will need a human interface for quite awhile. That will be your weak link. – stormy Aug 6 at 2:41
  • The first article is just wrong, shame on them. You water to be below the root zone! Then one allows the soil to dry out from the top down. This causes roots to grow deeper to get at submerged and available moisture. To train your grass roots you only water when you see your foot prints on the lawn. This means the blades of grass have too little turgidity of water and will not pop back up. This is when and only when you should water. When you water, you water deeply! 4" to 6" deep. Do not water again until you see your foot prints stay down when you walk on your lawn. Train until 1"/wk – stormy Aug 6 at 2:48
  • While the surface of the lawn bed dries out, weeds are killed and/or not allowed to germinate. Weeds are shallow rooted and cannot wait a week for moisture. There is no better way I know to water cool season grasses. Perhaps you can incorporate a moveable pokey soil sensor that will be able to recognize the lower limit of moisture with which to water again, no human foot prints? I don't like taking humans out of the equation. Grins. – stormy Aug 6 at 2:51
  • Use flat sided cans such as tuna fish cans, cat food cans and spread them around the landscape. Set the timer for 15 minutes and check the level of water in the cans. If there is 1/4 inch of water after 15 minutes, this is 25% of the water allotment for the week. Lots of that water evaporates until you are able to soak the soil once per week at 1". 1" per week is your goal. Use a shovel to check the depth of water penetration. 4-6". Make dang sure to do proper 4 season fertilizing. Less is Best, More is Death and None is Dumb. Aerate pulling plugs 1X/year. – stormy Aug 6 at 3:00

If there is an answer to this question, it might lie in a formal statement of the problem. You want to maintain a state by making adjustments. In its simplest form you could say w = f(X) where water requirement can be calculated based on the parameters in X. The question then becomes what are the components of X and what is the nature of the function f()?

You could say the system is like keeping a leaky tank of water within a certain range of fullness. The tank leaks in various ways, and if open to the air will receive rain inputs. Whether you add water depends on measuring the level of water in the tank.

Leaks could be the humidity of the air, the temperature, wind flow, sharpness of growing medium drainage, intensity of direct sunlight, rate of metabolism and so on. These factors cause the plant to open or close the leaf stomata, that is control the rate at which moisture is lost and in addition the soil surface and even the pot surface can accelerate moisture loss. X can also contain inputs such as rain, irrigation and even guttation when the plant weeps moisture from leaves to the soil.

Maintaining a state cannot be a simple matter of keeping soil moisture constant. Keep in mind that you might be maximizing the best growing conditions for insects or fungi that will parasitize the plant which will interfere with your overall goal which will be more like:

max(G) = f(X | Y)

which says maximize the growth (or benefit to the plant) by reacting to the factors in X while keeping in mind the constraints in Y. In the tank example the equivalent might be allowing the tank level to fall to a minimum level and only then restoring to the maximum.

Defining what is in f,X,Y will be the task. But we live in a world of the Internet of Things, with sensors available to measure lots of inputs and simple computers to process them. You could quite quickly establish a system to relax your mind while on vacation for a few weeks but it is likely that you will be tweaking the system with adult supervision for a long time. Collect data as you experiment and you will build a resource from which to train a neural network.

  • I like this answer, Colin! You are talking the same language as Wolfgang. Makes a big difference in communication. Very lovely answer, actually. – stormy Aug 7 at 23:47

This is a humongous task. I understand what you are trying to do. Along with basic education this might be a great avenue to pursue. Part of my services in Landscape Maintenance was to set the automatic timers and teach the owners how they worked. A maintenance company that understands plants and their needs, and has seen your location, might be able to help you with automation.

I don't think a single algorithm will ever work with a multitude of plants, so my 2 cents at this point is to not make watering automatic until you know your plants, soil and landscape. The plants you choose and how you group them all have an effect on watering. Once you choose them and understand that, then irrigation timers will be more efficient and still be able to train plant's roots. A maintenance company that understands plants and their needs, and has seen your location, might be able to help you with automation.

The optimum settings take into account how deep the water penetrates in the soil depending on the type of soil and slope! Most plants need just 1 inch of water per week but you have to train the roots to be able to thrive on that amount of water. There is a difference between lawn grasses and established ornamental plants/shrubs and don't forget new plants, plants that need lots of water and lots of drainage before they become established. Lawns need to be trained (cool season grass lawns) to have deep root systems. 1 inch per week means those cool season grasses have had their roots trained to be deep and very large as those root systems have been genetically programmed. Then those grasses are easily able to out compete weeds, drought will not deter a green lush lawn.

I am very passionate about getting owners involved in their landscapes. I think they need to get out of doors and connecting to their gardens, the soil, the insects. I also think programming automatic irrigation is done visually, daily, monitoring your plants, and that we are also responsible for training roots to grow deeply thus drought tolerant.

I don't think there's a way to automatize, and I don't think it would be beneficial, so I don't have a specific algorithm for you. I hope my general information about watering is helpful.

  • 1
    I agree with you that humans do much better than robots. There are two cases when this is not true: a) when the human is no there e.g. ill or on vacation b) when there is more to do then the human can cope with My goal is to have a system that will be better than a negligant human. Please also note what I have asked for - just sources and experiences not whether the whole thing makes sense or not ... – Wolfgang Fahl Aug 3 at 5:39
  • I am sorry I am so knee jerk ready with answers or comments. I do not think humans are better than robots. Have you seen the latest on Robots? Sophia? Wow. Nanobots? Military grade nanobots? Ugh. I think we humans will evolve via adding mechanics, heck we are already BORGS. Dentures, joint replacements, limb replacements? You know the Borg from Star Trek the Next Generation with Captain Piccard? Part human part machine. To continue evolving into no organics at all. This will be how we get into space where these bodies just do not belong...I would like to know more information... – stormy Aug 3 at 8:24
  • ...more information about your goals, what the heck you are doing. I know more than I ever wanted to with irrigation. I had to pass the tests, I have actually designed and installed and then I had to FIX them, change things around and educate the Owners. I like to start with the big picture and I am talking from experience...I like 'better than a negligent human' an awful lot! – stormy Aug 3 at 8:28
  • @Sue This is very interesting. A rant? Major sigh. – stormy Aug 6 at 21:07

Your Answer


By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.