Jump to content

sprinkler controller


boser

Recommended Posts

Posted

I have a legacy X10 sprinkler and would like to control it like this:

 

at 8pm run sprinklers:

if (Mon or Wed or Friday)

x10 E1 on

wait 10 min

x10 E1 off

end

if (Tue or Th)

x10 E2 on

wait 15 min

x10 E2 off

end

etc.

 

I have 12 different sprinkler zones, and they all are active on different combinations of days.

 

How can I program this with the ISY?

 

Thanks,

Bernhard

Posted

Bernhard,

 

Looks like you practically did it with your pseudo code ...

 

All you need to do is go to the program details screen and create one program per zone. Here are two programs matching the ones in your post.

 

If
       On Mon, Wed, Fri
       Time is  8:00:00PM

Then
       Send X10 'E1/On (3)'
       Wait  10 minutes 
       Send X10 'E1/Off (11)'

Else
  - No Actions - (To add one, press 'Action')

 

If
       On Tue, Thu
       Time is  8:00:00PM

Then
       Send X10 'E2/On (3)'
       Wait  15 minutes 
       Send X10 'E2/Off (11)'

Else
  - No Actions - (To add one, press 'Action')

  • 2 weeks later...
Posted

Chris,

 

Thank you for your response. Unfortunately your solution does not work well for many (I have 12) zones, which all run for different times and different combinations of days. Furthermore, only 1 zone can be watered at any time.

 

For this, a sequence (as I suggested with my pseudo program) works better. This is also the solution simple sprinkler controllers use.

 

How can I do this with the ISY?

 

Regards,

Bernhard

Posted
Thank you for your response. Unfortunately your solution does not work well for many (I have 12) zones, which all run for different times and different combinations of days. Furthermore, only 1 zone can be watered at any time.

 

I don't think you'll be able to do a sequence because your sprinklers are running at different days of the week. Why not create 12 separate programs, 1 for each of your sprinklers, as Chris suggested? You can set the schedules so they do not overlap, and you can have a unique schedule for each sprinkler.

Posted
Chris,

 

Thank you for your response. Unfortunately your solution does not work well for many (I have 12) zones, which all run for different times and different combinations of days. Furthermore, only 1 zone can be watered at any time.

 

For this, a sequence (as I suggested with my pseudo program) works better. This is also the solution simple sprinkler controllers use.

 

How can I do this with the ISY?

 

Regards,

Bernhard

 

The ISY is designed to have many small programs, and thus having one per zone is the way to go for this. I'm not sure how a sequence would work better because you would still have to schedule each zone anyway, and thus it would be one big program vs 12 small ones.

 

An advantage of having the 12 programs is that in the Program Summary screen you can see the Last time each individual zone ran (and the Next time as of version 2.6.5). You can also easily enable/disable individual zones if necessary from that screen.

 

To organize the 12 programs, I would create a 'Sprinkler' folder and put all 12 programs in there. You could then use Folder Conditions as a means of controlling whether they are enabled/disabled as a group.

Posted

I should have also mentioned that you can do a non-conditional sequence such as the following:

 

On Mon/Wed/Fri, do E1 at 8:00pm, E2 at 8:11pm, E3 at 8:22pm

 

If
       On Mon, Wed, Fri
       Time is  8:00:00PM

Then
       Send X10 'E1/On (3)'
       Wait  10 minutes 
       Send X10 'E1/Off (11)'
       Wait 1 minute
       Send X10 'E2/On (3)'
       Wait  10 minutes 
       Send X10 'E2/Off (11)'
       Wait 1 minute
       Send X10 'E3/On (3)'
       Wait  10 minutes 
       Send X10 'E3/Off (11)'

Else
  - No Actions - (To add one, press 'Action')

Posted

Thanks for all the responses. I understand those solutions - unfortunately they are very clumsy in this application.

A benefit of a "web controlled" (via ISY) sprinkler is that it's easy to adjust for different crop and seasons. I frequently make changes to the schedule, running zones for different durations (10 ... 300min) and on different combinations of days. "Normal" sprinklers just do this by starting at some time and then running each zone for however long it's needed each day.

Of course I can generate this schedule manually (different for each day). Problem is that whenever I make a change the excercise must be repeated. Worse, errors can result in the watering of some zones to be cut short.

 

--> It would be nice if flexibility to address such situations would be added to the ISY programming model.

 

Bernhard

Posted

Having one program per zone would be an attractive solution, provided program execution could be conditioned on day of week. Something like

 

program zone 1

if day = M/W/F water 10min

 

program zone 2

if day = M/Sat water 60min

 

etc.

 

program water all

each day at 8pm

run program zone 1

run program zone 2

etc.

 

Program water all would be enabled to run each day at 8pm, while programs zone X would be disabled from normal execution and therefore be run only when called by program water all.

 

Programs seem to have an enable/disable feature and a true/false status, but I don't quite know how to use it and if they can be used to solve my problem. Incidentally, is there a description somewhere of these features?

 

Thanks,

Bernhard

Posted

Bernhard,

 

Again, your pseudo-code is pretty much what you want:

 

Program 'Water All Zones' - Enabled
If
       Time is  8:00:00PM

Then
       Run Program 'Water Zone 1' (If)
       Run Program 'Water Zone 2' (If)
       etc.

Else
  - No Actions - (To add one, press 'Action')

Program 'Water Zone 1' - Not Enabled
If
       On Mon, Wed, Fri
       From    12:00:00AM
       To      11:59:59PM (same day)

Then
       Set 'Sprinkler Zone 1' On
       Wait  10 minutes 
       Set 'Sprinkler Zone 1' Off

Else
  - No Actions - (To add one, press 'Action')

Program 'Water Zone 2' - Not Enabled
If
       On Mon, Sat
       From    12:00:00AM
       To      11:59:59PM (same day)

Then
       Set 'Sprinkler Zone 2' On
       Wait  60 minutes 
       Set 'Sprinkler Zone 2' Off

Else
  - No Actions - (To add one, press 'Action')

Each Water Zone n program can be run at any time of day on its specified days, but its Enabled box is not checked, so that the program will only run when called from another program (or from the Program Summary tab). Each turns its respective sprinkler on for the specified amount of time, and then back off.

 

The Water All Zones program's checkbox is checked, so it will run every day at 8:00 pm. It will, at that time, run the If condition of each of the zone programs, so each will run if it is programmed for the current day.

 

Note that all zones which are programmed for the current day, will run at the same time (8:00 pm), which seems to break your rule that only one zone run at at time. If you want them to run sequentially, you could insert a delay (Wait) between each program call in the Water All Zones program, but that would require knowing when and for how long each zone will be running.

 

Another way would simply be to provide the time to begin in the condition of each zone program and enable it (no 'All Zones' program required). Set the time differently for each zone (eg. 8:00pm, 8:10pm, 9:10pm) so that no two run at the same time.

 

If you still wish to use a main controlling program as above, yet have the zones run sequentially, it becomes more complex, requiring some form of flow-control. Let us know if you require example code for that.

Posted

All zones running concurrently is a problem (what actually happens is that only the last zone in the sequence is actually watered). Having the wait in the main program (and the day of watering in the subprogram) works but is undesirable since information that belongs in one place is scattered over two programs (and then I forget and change the schedule incorrectly).

 

Does your statement

 

"If you still wish to use a main controlling program as above, yet have the zones run sequentially, it becomes more complex, requiring some form of flow-control. Let us know if you require example code for that."

 

refer to a solution?

 

Bernhard

Posted

Hello Bernhard,

 

Perhaps the following will accomplish your task:

 

Program 'Water All Zones' - Enabled
If
       Time is  8:00:00PM

Then
       Run Program 'Water Zone 1' (If)

Else
  - No Actions - (To add one, press 'Action')

Program 'Water Zone 1' - Not Enabled
If
       On Mon, Wed, Fri
       From    12:00:00AM
       To      11:59:59PM (same day)

Then
       Set 'Sprinkler Zone 1' On
       Wait  10 minutes 
       Set 'Sprinkler Zone 1' Off
       Run Program 'Water Zone 2' (If)

Else
       Run Program 'Water Zone 2' (If)

Program 'Water Zone 2' - Not Enabled
If
       On Mon, Sat
       From    12:00:00AM
       To      11:59:59PM (same day)

Then
       Set 'Sprinkler Zone 2' On
       Wait  60 minutes 
       Set 'Sprinkler Zone 2' Off
       Run Program 'Water Zone 3' (If)

Else
       Run Program 'Water Zone 3' (If)

At 8:00 pm each day, Water All Zones begins the sequence by calling Water Zone 1. If zone 1 is scheduled, it runs, and when complete it calls Water Zone 2. If zone 1 is not scheduled, it immediately calls zone 2. Each zone calls the next, until the sequence is complete.

 

Each zone's schedule is entirely contained in a single program, so needs to be edited in only one place. Further, changing any zone does not cause a conflict with other zones, since each runs only when the previous one has completed (or passed).

Posted

One more minor edit. Chris Jahn, our CTO and programming expert, has just pointed out to me that the zone programs' condition statement can be simplified from:

 

Program 'Water Zone 1' - Not Enabled
If
       On Mon, Wed, Fri
       From    12:00:00AM
       To      11:59:59PM (same day)

to:

 

Program 'Water Zone 1' - Not Enabled
If
       On Mon, Wed, Fri
       From    12:00:00AM
       For     24 hours

Thanks, Chris!

Guest
This topic is now closed to further replies.

×
×
  • Create New...