OpenSprinkler › Forums › OpenSprinkler Unified Firmware › OpenSprinkler with advanced environment sensing and water management › Reply To: OpenSprinkler with advanced environment sensing and water management
When I started making the firmware changes for calculating and using ET the base firmware was quite different than it is now. Some of the “visuals” are left over artifacts that had no bearing on the final outcome of watering based on ET. Let me try to explain the crazy complicated process of watering asked on ET and hopefully it will answer a couple of questions and wonderings, as I like to call them.
ET is basically plant sweat for all intents and purposes. Like people the plants/grass will sweat out water based on the environmental conditions to help maintain a livable temperature. Some water is also lost in chemical reactions while the plant makes the food it need to survive and grow. All ET calculations are based on 100% simply because we are calculating total water lost. The percentage is an artifact of the older system. Here’s what I did in a nutshell to adapt watering requirements.
First get the current conditions and calculate how much we have lost so far today. Then take a quick look at how we did yesterday, and sum up the 2 days worth of data. This gives us ET. Now we need to know what the future looks like. If it’s going to rain a ton tomorrow and we don’t need much water today, we can wait. However, if it’s super hot and dry, with a tiny chance of rain in 3 days, let’s give her all we’ve got. So it is like balancing a checkbook and paying bills. We know our balance, and what bills are coming up, so we can make subtle adjustments and get everything paid without going in the hole, or over watering.
The data used is dependant upon the data available, if ET is sent by WU it will be used first. If not we need to calculate it on our own. Things already looked at are, leaf wetness, humidity, solar radiation, temperature, precipitation, wind, air and soil saturation. The soil type and plant height have to be user provided as WU won’t know that. If a piece if information is missing, like solar radiation often is, we use the next best calculation based in things we can acquire. For instance cloud cover, latitude, and time of day. Using those bits we can get to within less than 1% of actual by calculation. If some of that is missing we go to the next best thing using averages based on recent days. This continues for 7 iterations or until we have what we need, each level down introduces some error, but can still be 30% better than just setting for 10 min and calling it watered even at the lowest level of accuracy.
Next up we see how much time it takes to water the amount we figure the plants need. This is straight forward so no need for detailing the process.
Then after we know how long we need to water to balance out the requirements calculated, we do a quick sanity check to make sure watering is effective, wind speed must be less than 7kph, temp above freezing, and not currently raining. If everything checks out it waters. Then the process starts over. What will happen on screen is a number showing how much water in mm of precipitation is needed. Negative means we over watered, and positive is needed. When it gets over 5mm needed it will water, anything less and it will hold off.
This keeps the plants at their drought protective state. Essentially the grass and plants will be trained to save water by closing pores, growing at cooler times of day, and sending roots deeper into the ground.
I’ve used this for 2 seasons now and biggest change was about 40% reduction in water use compared to the old 10 min twice a day method. Next I noticed the grass was much healthier, I guess it doesn’t like drowning any more than not being watered. Finally I had to mow less because the grass was staying short and densely packed together. I live in a part of Colorado that sees some crazy weather, and never watered when it was raining, and only saw over watering twice, by about 4mm due to a crazy thunderstorm.
So tldr: ET is just a required amount of water, there is no percentage. The sprinklers will only water what is needed and reasonable.
Any information provided by WU is used first, if it isn’t enough to get an ET value it will be calculated, or even approximated if very little info is available.
Accuracy is quite high using the Penmann-Monteith method so it is used first. If it can’t be used, then the Hargreaves method is used. After that statistical data is used as a last effort. The data is available online so I won’t bother with the mile long maths problems.
The project fork I posted on github is usable and functional, but may be a touch rough around the edges. She ain’t pretty but she knows what she’s doin’.
If you have any other questions let me know, I’ll try to answer.
Side Note: WU provides different amounts and types of data based upon device. For instance the iDev app gives indoor temps and videos. The Android app does not, but has 10 days of history vs 7 the iDev app gets. I have petitioned WU, weather.com, and the weather company to provide all relevant ET data for Opensprinkler. They are currently adding more points to the API for Opensprinkler.