kwb007 Posted August 1, 2019 Posted August 1, 2019 I finally got around to rewriting my irrigation program. Given I got my first program from the this forum, I thought I'd post it for those that are looking for one. As noted on other posts, the programs that control the valves are separated from the initiation programs to ensure the irrigation plan completes after the trigger criteria are no longer meet. I have 7 zones at my house and each requires a different amount of water. There are three different irrigation plans based on the high temp of the day. The irrigation plan is run at 10pm but bypassed if it's rained materially. Notifications are sent to my email indicating which program is running and when it completes. The is also an "emergency stop" button for when the wife yells at me to "shut off the $%^# sprinklers". I'm running 15.0.5A firmware. Please let me know if you have any feedback. Irrigation.v5.0.15A__Thu 2019.08.01 10.10.02 AM.isy
paulbates Posted August 1, 2019 Posted August 1, 2019 (edited) Thanks for sharing. A suggestion to make it easier to view for forum members is to do either one of the following: right click on each program name in the list, and pick 'copy to clipboard' on the bottom of the presented list... then paste the copied text for each program in a forum message window here.. one at a time.... or... .. use the windows snipping tool or <windows key> <shift> <S> to capture an image of each one and paste in a window here. Then write about the purpose of each program on top of each one. The format provided is ISY xml format, requireing the forum members to load your program in to their ISYs to see them. Thanks Paul Edited August 1, 2019 by paulbates
kwb007 Posted August 1, 2019 Author Posted August 1, 2019 Here's the overall structure. In the Irrigation folder, the "Irrigation Engines" folder contains the programs that control the irrigation valves, the "Irrigation Trigger" folder contains the programs that determine which program to run. This structure is needed to ensure that the irrigation plans fully completes after the trigger events are no longer valid. No integer or state variables are needed. However you do need the Weather Module installed and to setup email notifications. My irrigation valves are controlled by an EZRain/EZFlora Irrigation Controller v.28 on an ISY 994 running 15.0.5A firmware. The Irrigation Trigger programs are pretty straightforward. Every MWF, the irrigation system will run. One of three irrigation plans runs based on the daily high temp. On STTS the irrigation system may runs if the daily high temp is over 85F. However, if it's rained over 0.2" in the past 24 hours, any planned irrigation event is not run. The Normal Irrigation program only runs on MWF at 10pm if the daily high temp is between 85F and 60F and it hasn't rained more than 0.2" in the last 24 hours. Normal Irrigation - [ID 0022][Parent 001E] If On Mon, Wed, Fri Time is 10:00:00PM And Module 'Climate' 24h Rain <= 0.2 " And Module 'Climate' High Temperature <= 85 °F And Module 'Climate' High Temperature >= 60 °F Then Run Program 'Normal Plan ' (Then Path) Else - No Actions - (To add one, press 'Action') The High Temp Irrigation program runs every day at 10pm when the daily high temp is >85F and it hasn't rained more than 0.2" in the last 24 hours. High Temp Irrigation - [ID 001F][Parent 001E] If Time is 10:00:00PM And Module 'Climate' High Temperature > 85 °F And Module 'Climate' 24h Rain <= 0.2 " Then Run Program 'High Temp Plan' (Then Path) Else - No Actions - (To add one, press 'Action') Low Temp Irrigation program only runs on MWF at 10pm when max temp is below 60F, it hasn't rained more than 0.2" in the last 24 hours and the current temp is over 40F. Low Temp Irrigation - [ID 0023][Parent 001E] If On Mon, Wed, Fri Time is 10:00:00PM And Module 'Climate' 24h Rain <= 0.2 " And Module 'Climate' High Temperature < 60 °F And Module 'Climate' Temperature > 40 °F Then Run Program 'Low Temp Plan' (Then Path) Else - No Actions - (To add one, press 'Action') The Normal Plan controls the valves when invoked by the the Normal Irrigation program. First is sends notification to my email which program is starting, it then runs each zone for a specific amount of time and sends a notification that the program has finished. Normal Plan - [ID 0050][Parent 002B] If - No Conditions - (To add one, press 'Schedule' or 'Condition') Then Send Notification to 'Both Emails' content 'Normal Irrigation' Set 'Irrigation / Zone 1' On Wait 8 minutes Set 'Irrigation / Zone 1' Off Set 'Irrigation / Zone 2' On Wait 8 minutes Set 'Irrigation / Zone 2' Off Set 'Irrigation / Zone 3' On Wait 10 minutes Set 'Irrigation / Zone 3' Off Set 'Irrigation / Zone 4' On Wait 8 minutes Set 'Irrigation / Zone 4' Off Set 'Irrigation / Zone 5' On Wait 10 minutes Set 'Irrigation / Zone 5' Off Set 'Irrigation / Zone 6' On Wait 5 minutes Set 'Irrigation / Zone 6' Off Set 'Irrigation / Zone 7' On Wait 8 minutes Set 'Irrigation / Zone 7' Off Send Notification to 'Both Emails' content 'Irrigation Finished' Else - No Actions - (To add one, press 'Action') The High Temp Plan and Low Temp Plan are identical but have different timing for each zone and send the corresponding notification. The Stop Sprinklers program is my emergency stop button to shut down the sprinkler system. Its stops all the plans and shuts all the valves. Stop Sprinklers - [ID 0006][Parent 0030] If - No Conditions - (To add one, press 'Schedule' or 'Condition') Then Stop program 'High Temp Plan' Stop program 'Normal Plan ' Stop program 'Low Temp Plan' Set 'Irrigation / Zone 1' Off Set 'Irrigation / Zone 2' Off Set 'Irrigation / Zone 3' Off Set 'Irrigation / Zone 4' Off Set 'Irrigation / Zone 5' Off Set 'Irrigation / Zone 6' Off Set 'Irrigation / Zone 7' Off Send Notification to 'Both Emails' content 'Irrigation Finished' Else - No Actions - (To add one, press 'Action') Finally, it's nice to know that when the sprinkler system should be running but doesn't due to the rain override, it sends a notification to me. That function is contained in Rain Test. It's code follows: Rain Test - [ID 0057][Parent 001E] If ( On Mon, Wed, Fri Time is 10:00:00PM And Module 'Climate' 24h Rain > 0.2 " ) Or ( On Sat, Sun, Tue, Thu, Fri Time is 10:00:00PM And Module 'Climate' High Temperature > 85 °F And Module 'Climate' 24h Rain > 0.2 " ) Then Send Notification to 'Both Emails' content 'No Irrigation' Else - No Actions - (To add one, press 'Action') That's it. I hope that you find it useful. 1
paulbates Posted August 1, 2019 Posted August 1, 2019 Nice / simple / logical. Accounting for climate can save a lot of water and that's where automation comes into its own vs older standard sprinkler controllers that don't always get replaced. Those are typically set for worst case summer heat. A couple of small things to think about: I'm pretty sure that 'Climate 24 hour rain' is a look ahead, not behind. But You could encorprate both history and forecast..in your If: 'total rain today' (since you run @ 10pm), or '24 h rain' forecast (maybe more than .2... like maybe .5 or higher). That way you don't water when it did rain, or when its likely to rain.. but beyond your run time. If you are using an ezrain/flora controller: only one zone at a time will run. If zone 1 is running, and you start zone 2, ... Zone 1 will automatically shut off, you don't have to turn it off. Obviosly the last one you do. IIRC, I think shutting any one valve off shuts them all off simultaneously. Easy to test. Thanks for sharing. Paul
kwb007 Posted August 1, 2019 Author Posted August 1, 2019 (edited) Paul, Thank you so much! You are correct on all accounts. I've changed to "Total Rain Today" which is the historical variable. (Can't believe I screwed that up.). In the past, I've used both the historical and forecast but, inevitably, our weather would change and I'd skip a needed watering. So I'm failing safe and watering when needed even if there may be rain in the forecast. In fact, the ezrain controller acts as you described so I'll slim down the code. BTW, have you looked at the DarkSky's node server? I've got it integrated successfully but it only provides current and forward variables so it's not very helpful. I really need a historical measure of rainfall. Not sure if it's a DarySky's limitation or simply how the node server was written. Really appreciate the help. Ken Edited August 1, 2019 by kwb007 1
paulbates Posted August 1, 2019 Posted August 1, 2019 Great Ken, nice job on the programs. I had 2 ezfloras I wrote programs for a few years and they were more complicated than yours without being more effective, I like these. I get what you mean by "fail safing". I've experimented with my current controller and "over did" my water savings approach... I've saved water, but a few brown spots this summer because I was too agressive this year... and the city replaced sidewalk and destroyed a few zones for a month I've not looked at weather controllers or their nodeservers but they are interesting. I have a hydreon rain sensor connected to an iolinc that I've used for 5 years, and I can pick up actual outdoor temp from a sensor for my ventstar thermostat. All other weather / light for my ISY programs comes from the climate module like you're doing Paul 1
giomania Posted August 1, 2019 Posted August 1, 2019 Thanks for sharing. I only irrigate in the early morning (starts at 3:15 AM) because I read that when you water at night you can have an increased chance of mold / disease issues. However, that may have been based upon my 100% Kentucky bluegrass turf.I also only irrigate based upon the irrigation requirement as dictated by the weather module, which I figured was the point of paying for that?I also read that you’re supposed to water once and deeply, vice frequently. This means that ideally you would only water once a week for the specific amount that the particular turfgrass type needs. I remember correctly I think it’s 1 inch of water per week generally. My soil type can’t handle more than .25” before run-off occurs, so that is as “deep” as I can water in one cycle.I’ve had this going out for around three years and it’s working fine. It has saved me a whole bunch of money in water, which is very expensive here.MarkSent from my iPhone using Tapatalk Pro
paulbates Posted August 1, 2019 Posted August 1, 2019 56 minutes ago, giomania said: Thanks for sharing. I only irrigate in the early morning (starts at 3:15 AM) because I read that when you water at night you can have an increased chance of mold / disease issues. However, that may have been based upon my 100% Kentucky bluegrass turf. I also only irrigate based upon the irrigation requirement as dictated by the weather module, which I figured was the point of paying for that? I also read that you’re supposed to water once and deeply, vice frequently. This means that ideally you would only water once a week for the specific amount that the particular turfgrass type needs. I remember correctly I think it’s 1 inch of water per week generally. My soil type can’t handle more than .25” before run-off occurs, so that is as “deep” as I can water in one cycle. I’ve had this going out for around three years and it’s working fine. It has saved me a whole bunch of money in water, which is very expensive here. Mark Mark Same on time of day. I've been doing 3am as well for perennial rye for 10 or more years. Same on water cost as well... ours is insanely expensive. HA irrigation paid for itself, now its paying for the rest. I think when you say weather module, did you add the irrigation module on top of that as well? The irrigation module does the evapotranspiration calcs to say if watering is needed. Paul
kwb007 Posted August 1, 2019 Author Posted August 1, 2019 If I move the watering time to 3am, then I loose the variable Total Rain Today. Can I use Irrigation Requirement as a replacement? For example, If Irrigation Requirement is >0.0, then run irrigation programs?
giomania Posted August 1, 2019 Posted August 1, 2019 Mark Same on time of day. I've been doing 3am as well for perennial rye for 10 or more years. Same on water cost as well... ours is insanely expensive. HA irrigation paid for itself, now its paying for the rest. I think when you say weather module, did you add the irrigation module on top of that as well? The irrigation module does the evapotranspiration calcs to say if watering is needed. Paul Yes I did mean the irrigation module.Sent from my iPhone using Tapatalk Pro
giomania Posted August 1, 2019 Posted August 1, 2019 If I move the watering time to 3am, then I loose the variable Total Rain Today. Can I use Irrigation Requirement as a replacement? For example, If Irrigation Requirement is >0.0, then run irrigation programs? The irrigation module factors in the current EvTo, which I’m assuming factors in the rain for the prior day.my basic program is set to run if EvTo is over a certain amount and it’s going to rain less than a certain amount, then irrigate.Sent from my iPhone using Tapatalk Pro 1
kwb007 Posted September 6, 2019 Author Posted September 6, 2019 Paul and Giomania...thank you so much for the boot in the backside to figure out how to use the Irrigation Module. It took a few hours to sort out how to use it and what the parameters were for my system but it was certainly worth it. It is far far superior to my previous timed based programs. Here's what I did... The write up on the HAM Weather module is key (https://wiki.universal-devices.com/index.php?title=ISY-994i_Series_INSTEON:HAM_Weather). Read completely and then follow the steps. First, I had to sort out how much water is being deposited per minute per zone. If the system is laid out proper with good overlap, then it doesn't matter how many heads you have, only they type of head and pattern. I have two types, 180 head sprayers (12DSH) and the big rotating one (M2045A). The former deposits water at 2" per hour. The later deposits at 0.70" per hour. Fortunately, I mostly have one type of head per zone so I can time each zone to deposit 0.4" of water per irrigation cycle which works out to 12 min for the popups and 35 min for the rotators. This gives me the timing for each zone assuming that I want to deposit 0.4" of water. Next step was to reset the irrigation module. Following the wiki's instructions. Reset Irr Req Counter - [ID 001C][Parent 001B] If - No Conditions - (To add one, press 'Schedule' or 'Condition') Then Irrigation - Reset Variables Else - No Actions - (To add one, press 'Action') Run Then path and you're reset. Verify by refreshing the weather data in the Climate module and check the Irrigation Requirement. It should be 0. Next, setup the Irrigation Module. I used Penman-Monteith, Interior Plains, 80% absorption, 0.6 crop coefficient and 0.4" of water applied per cycle. The new trigger program is much more simple. Irrigation Req Trigger - [ID 0024][Parent 001B] If Time is 3:00:00AM And Module 'Climate' Irrigation Requirement >= 0.35 inches Then Run Program 'Irrigation Plan 0.4' (Then Path) Else - No Actions - (To add one, press 'Action') The irrigation plan is in another program to ensure it completes after the trigger criteria are no longer meet. Note that I trigger the program at 0.35" Irrigation Requirement to account for errors in my assumptions (who really know how much water pressure varies...) The new Irrigation program is substantially more simple as well. Irrigation Plan 0.4 - [ID 001D][Parent 001B] If - No Conditions - (To add one, press 'Schedule' or 'Condition') Then Send Notification to 'Ken's email' content 'Irrigation Soak 0.4 Plan' Set 'Irrigation / Zone 1' On Wait 12 minutes Set 'Irrigation / Zone 2' On Wait 12 minutes Set 'Irrigation / Zone 3' On Wait 35 minutes Set 'Irrigation / Zone 4' On Wait 12 minutes Set 'Irrigation / Zone 5' On Wait 12 minutes Set 'Irrigation / Zone 6' On Wait 12 minutes Set 'Irrigation / Zone 7' On Wait 12 minutes Set 'Irrigation / Zone 7' Off Irrigation - Cycle Complete Send Notification to 'Ken's email' content 'Irrigation Finished' Else - No Actions - (To add one, press 'Action') Drivers irrigation valves for 0.4" deposit irrigation cycle. Sends notification of start and finish. The program is triggered elsewhere to ensure the irrigation plan completes after the trigger criteria are no longer meet. It also reduces the chance of an accidental start. Note that I add "Irrigation - Cycle Complete" at the end of the program to tell the Irrigation Model to that 0.4" of water has been deposited on the yard. I've had it running for about a month now and it's been fantastic. It behaves exactly as expected. I can watch the rain fall totals and the evaporation add at the end of the day and the see exactly when I reach the 0.35" irrigation requirement. When the irrigation system runs, the Irrigation Requirement counter resets to 0. I couldn't be happier. It even got the wife's seal of approval since the yard looks wonderful.....and it's saved us a ton of cash. Thank you PaulBates and Giomaia for the guidance. 1
paulbates Posted September 6, 2019 Posted September 6, 2019 @kwb007 Thanks for sharing your results and glad it worked out! Paul
paulbates Posted September 6, 2019 Posted September 6, 2019 @kwb007 Here's one more I forgot about till now. Read this whole thread (its not that long), it documents how to have the ISY test if the ezflora failed and send you an alert Paul
Recommended Posts