[RELEASE] Simple Irrigation


Let me preface this by saying it is NOT worth a lot of work...but if you ever happen to be in under the hood and see an easy way to retrofit ...it would be cool.

We're in our second season of using Simple Irrigation to schedule two valves. A very helpful App indeed.

It's only May and we are already finding that low humidity, winds, and not enough rain are necessitating more frequent drip irrigation.

In fact, a simple "every other day" schedule would fit the bill.

Neither of the following sunrise watering schedules lends itself to that in a single child.

a) Tues - Thur - Sat - Mon
b) Mon - Wed - Fri - Sun

as both end up creating one instance of back-to-back watering within 24 hours.

Maybe there is a way to do this that I haven't thought of besides another child...but it would be nice to have a "repeat" feature whereby I create one child that can wait x-hrs (or in this case 48 hours) from a specific start time on a specific start day to start up again.

Kinda like a recurring bill pay in online banking :money_mouth_face:

(As I quickly scramble to see if something has changed in this regard from the older version I'm running, yikes!)

1 Like

Nothing simple with an 'every other day' option, programming wise. So it's not in the cards for this app (which is why it's called simple :wink:). For more options, check out my Event Engine.


Yowser, you've been busy building a Swiss Army knife !

Just to throw one last idea into this discussion. Perhaps to be used over in your Engine.

Today is the 148th day of the year, that's an even numbered day...don't water.

Tomorrow is the 149th day of they year, that's an odd numbered day...water.

Simple :wink:

Follow-up to my follow-up

I just decided to look at the Device page on the Orbit HT8-ZB which I haven't done in awhile, and looky there in the lower left hand corner, Even/Odd day watering. Guess I couldn't utilize those fields AND Simple Irrigation.

1 Like

No, it’s not simple. Some years have 365 days, some have 366.

Actually it is pretty simple. It'll be in the next release of EE. :grinning:


Follow up:

For anyone that likes the simplicity of using Simple Irrigation and wants to extend it's scheduling capability to cover the simple and straight forward "every other day" case.

Just create a Virtual Switch like say, "vNotTodayZurg", controlled by this driver popped out of the software microwave today by @thebearmay (thank you).

Then set up your schedule in Simple Irrigation to water every day and to check the state of "vNotTodayZurg" to allow or not allow that day's watering based on the even/odd skip-a-day cycle you are desire.

P.S. Bryan I may eventually get around to setting up and using EE. This just nipped this in the bud in an eyeblink without having the concern of me reconstituting/messing up currently foolproof irrigation w/ your SI at a seasonal juncture I can't afford failure.

1 Like

@bptworld , I have uncovered an error in the latest version regarding the use of a switch instead of a valve. After two weeks of 100+ degree weather, my landscaper commented that I needed to run my irrigation more because my plants were turning brown. What I discovered is that my irrigation has not been running at all! I am seeing this in my logs when I have the app set to turn on a switch:

app:12612021-06-23 04:03:00.116 am errorjava.lang.NullPointerException: Cannot invoke method switchDevice() on null object on line 162 (settingUpHandler)

app:12612021-06-23 04:03:00.069 am warn*************** Start Valve On - Simple Irrigation Child - (2.0.7) ***************

The offending code is here (line 162 in italics):

def turnValveOn() {
if(state.valveTry == null) state.valveTry = 0
if(state.valveTry == 0) { if(logEnable) log.warn "*************** Start Valve On - Simple Irrigation Child - (${state.version}) ***************" }
if(valveORswitch) {
if(switchDevice) state.switchStatus = valveDevice.switchDevice("switch")
} else {
if(valveDevice) state.valveStatus = valveDevice.currentValue("valve")

Can you please have a look at this? I hacked together a rule in RM to run my irrigation in the meantime.

try the new version...

2.0.8 - 06/23/21 - Fixed a typo

Fixed the log error, but the switch is not actually activating (device events shows no change):

app:12612021-06-23 02:02:00.137 pm warn*************** End Valve Off - Simple Irrigation Child - (2.0.8) ***************
app:12612021-06-23 02:02:00.135 pm debugIn resetTrys (2.0.8)
app:12612021-06-23 02:02:00.134 pm warnZEN17 Front Yard Drip Valve is now null
app:12612021-06-23 02:02:00.132 pm debugIn turnValveOff - Valve is now null
app:12612021-06-23 02:02:00.128 pm debugIn turnValveOff (2.0.8)
app:12612021-06-23 02:02:00.127 pm debugIn dayOfTheWeekHandler - Days of the Week Passed
app:12612021-06-23 02:02:00.125 pm debugIn dayOfTheWeek (2.0.8)
app:12612021-06-23 02:02:00.124 pm warn*************** Start Valve Off - Simple Irrigation Child - (2.0.8) ***************
app:12612021-06-23 02:00:00.133 pm warn*************** End Valve On - Simple Irrigation Child - (2.0.8) ***************
app:12612021-06-23 02:00:00.095 pm debugIn resetTrys (2.0.8)
app:12612021-06-23 02:00:00.093 pm warnnull is now null
app:12612021-06-23 02:00:00.091 pm debugIn turnValveOn - Valve is now null, Setting valve timer to off in 2 minutes
app:12612021-06-23 02:00:00.089 pm debugIn turnValveOn - theSchedule: 1
app:12612021-06-23 02:00:00.085 pm debugIn turnValveOn (2.0.8)
app:12612021-06-23 02:00:00.083 pm debugIn checkForWeather - Weather Check passed.
app:12612021-06-23 02:00:00.080 pm debugIn checkForWeather (2.0.8)
app:12612021-06-23 02:00:00.078 pm debugIn dayOfTheWeekHandler - Days of the Week Passed
app:12612021-06-23 02:00:00.076 pm debugIn dayOfTheWeek (2.0.8)
app:12612021-06-23 02:00:00.064 pm warn*************** Start Valve On - Simple Irrigation Child - (2.0.8) ***************
app:12612021-06-23 02:00:00.062 pm debugIn timeHandler - Time Check Matches Timer 1
app:12612021-06-23 02:00:00.055 pm debugIn timeHandler - startTime1: 2021-06-23T14:00:00.000-0700 - theTime: 2021-06-23T14:00:00.000-0700

Config in the app looks like this:

Try try again...

2.0.9 - 06/23/21 - Minor changes

Thanks, Byran, looks like the last update did the trick:

app:12382021-06-25 10:57:40.410 am warn*************** End Valve Off - Simple Irrigation Child - (2.0.9) ***************
app:12382021-06-25 10:57:40.408 am debugIn resetTrys (2.0.9)
app:12382021-06-25 10:57:40.406 am warnIn turnValveOff - ZEN17 Back Yard Drip Valve is now off
app:12382021-06-25 10:57:40.401 am debugIn turnValveOff (2.0.9)
app:12382021-06-25 10:57:40.399 am debugIn dayOfTheWeekHandler - Days of the Week Passed
app:12382021-06-25 10:57:40.397 am debugIn dayOfTheWeek (2.0.9)
app:12382021-06-25 10:57:20.324 am debugIn turnValveOff - trying to turn off - Attempt 1 - will check again in 20 seconds
app:12382021-06-25 10:57:20.321 am debugIn turnValveOff (2.0.9)
app:12382021-06-25 10:57:20.319 am debugIn dayOfTheWeekHandler - Days of the Week Passed
app:12382021-06-25 10:57:20.317 am debugIn dayOfTheWeek (2.0.9)
app:12382021-06-25 10:57:20.315 am warn*************** Start Valve Off - Simple Irrigation Child - (2.0.9) ***************
app:12382021-06-25 10:55:20.271 am warn*************** End Valve On - Simple Irrigation Child - (2.0.9) ***************
app:12382021-06-25 10:55:20.255 am debugIn resetTrys (2.0.9)
app:12382021-06-25 10:55:20.254 am warnIn turnValveOff - ZEN17 Back Yard Drip Valve is now on
app:12382021-06-25 10:55:20.252 am debugIn turnValveOn - Switch is now on, Setting switch timer to off in 2 minutes
app:12382021-06-25 10:55:20.250 am debugIn turnValveOn - theSchedule: 1
app:12382021-06-25 10:55:20.249 am debugIn turnValveOn (2.0.9)
app:12382021-06-25 10:55:20.248 am debugIn checkForWeather - Weather Check passed.
app:12382021-06-25 10:55:20.245 am debugIn checkForWeather (2.0.9)
app:12382021-06-25 10:55:20.244 am debugIn dayOfTheWeekHandler - Days of the Week Passed
app:12382021-06-25 10:55:20.242 am debugIn dayOfTheWeek (2.0.9)
app:12382021-06-25 10:55:00.115 am debugIn turnValveOn - trying to turn on - Attempt 1 - will check again in 20 seconds
app:12382021-06-25 10:55:00.113 am debugIn turnValveOn (2.0.9)
app:12382021-06-25 10:55:00.111 am debugIn checkForWeather - Weather Check passed.
app:12382021-06-25 10:55:00.096 am debugIn checkForWeather (2.0.9)
app:12382021-06-25 10:55:00.093 am debugIn dayOfTheWeekHandler - Days of the Week Passed
app:12382021-06-25 10:55:00.085 am debugIn dayOfTheWeek (2.0.9)
app:12382021-06-25 10:55:00.061 am warn*************** Start Valve On - Simple Irrigation Child - (2.0.9) ***************
app:12382021-06-25 10:55:00.059 am debugIn timeHandler - Time Check Matches Timer 1
app:12382021-06-25 10:55:00.052 am debugIn timeHandler - startTime1: 2021-06-25T10:55:00.000-0700 - theTime: 2021-06-25T10:55:00.000-0700
app:12382021-06-25 10:55:00.049 am debugIn timeHandler (2.0.9)
app:12382021-06-25 10:55:00.047 am debugIn resetTrys (2.0.9)

1 Like

Is there any way to pause the app? I only use it for irrigation of my tomatoes in the warm months.

1 Like

New version on GitHub...

2.1.0 - 02/03/22 - Cosmetic changes


Would this be adequate. On Apps page "Disable" column.

Bryan -

I hesitate to say anything because there could be multiple things in play here, including ants (I guess that technically would be a bug :rofl:) in the well's pressure switch contacts.

But I'll go ahead JUST in case anyone ever mentions anything similar.

I was running one version back on Simple Irrigation (upgraded just now) and I am on the current HE OS.

For two flawless watering seasons -
I had THREE watering sessions which a couple days ago I changed to TWO by changing the third session duration to zero. I set the first two sessions to 59 minutes each. I also changed the name of the Child to include the following text "7&9". I am pretty sure that is all I did. The next morning my watering stopped about 15 minutes after it started.

Now...just put this in your back file... and wait until I run another day or two on your LATEST version with the two sessions and the third BLANK because unlike in the previous exercise I did not EDIT an old watering schedule. I also took the "&" out of the name JUST in case AND I changed the minutes to 58 instead of 59 (there was a bug in something in HE once where I could not use "60" minutes as I recall.) Just covering all bases.

No action required. Just making an entry in case this happens to anyone else. Oh, and I think I killed most of the ants...so there's no more bugs in my hardware :rofl: :rofl:

P.S. For anyone interested. This IS a real problem with outdoor proximal electrical switching equipment. Ants and Electrical Equipment – Ant Pests

1 Like

OK, today I got 35 minutes out of the 58 I had set for each of the two sessions. And that happens to be what this value is set to:


I either never noticed this impacting the Simple Irrigation schedule (because I was doing 3x45min and the 45 is only 10 away from the 35 shown)....OR.....something has changed to where this Preference has more effect than what it once did.

In fact, I believe that "Default time to water when turning on" WAS set to 15min because I recall having to punch the manual button on the Orbit a second time when I didn't bump up the time at the device to fill something up. Maybe I changed it so I didn't have to do that just for a quick use of water. I don't recall. EDIT: Damn I hate getting old. For clarification for future readers, the subject Preferences field has nothing to do (that I can tell) with the 'manual' button on the Orbit. That, when pressed, comes up with 10 minutes...which of course you can use the '+' button to increase.

None-the-less I do not AT ALL recall this field having to be blank or a big number to get a full 45 minute session out of Simple Irrigation. And this is happening on TWO separate valves.

Using the following Orbit valve with the ORBIT HOSE WATER TIMER driver:

  • endpointId: 01
  • model: HT8-ZB
  • application: 27
  • firmwareMT: 111B-0000-00272000
  • softwareBuild: 00272000
  • manufacturer: Orbit



Nothing has changed with this app in a loooooooong time! :grin:

OK, nothing has changed in your app and so that Preference overrides anything you control with Simple Irrigation so therefore it should be set to some large number or left blank?

I absolutely know that at one time it was set to 15 minutes and your app DID give watering sessions in excess of that value. EDIT: OK, nevermind the "absolutely" part...I'm not sure of anything anymore :rofl:

So something changed elsewhere?

Sorry, all I can tell you at this point is to play around with that number. I don't have my Orbit installed right now, so I can't even look at the device page or try anything with it.

OK, I can't believe I've been running what I thought were 40 minute sessions in Simple Irrigation and low and behold they were indeed limited by what I had set in this Orbit Hose Water Timer driver field. Wasn't a big issue when I had THREE 40 minute sessions per watering day but when changing that to TWO 59 minute sessions I indeed was getting half the watering I expected.


The impact of this field (or any similar in any other valve driver) might be captured somewhere in the Simple Irrigation notes/instructions. So this is now set to 65 for my purposes and indeed Simple Irrigation closes the valve at 59 minutes as desired each session.

1 Like

Download the Hubitat app