OpenSprinkler Forums Comments, Suggestions, Requests Colliding Programs Can Cause Valves to Not Run

  • This topic is empty.
Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #22397

    Oleengr
    Participant

    Collisions between programs can cause multiple valves to be open at the same time or valves not being run if the Sequential option is checked.

    I use Interval programming exclusively for my 6 valves. Unless there are local watering restrictions, IMO and experience, Interval programs have advantages for water usage, seasonal rescheduling, and flexibility in meeting the watering needs.

    I had two interval programs with the same interval scheduled to run yesterday. There happened to be an overlap in the valve run times between the two programs, but since I had selected Sequential in the Program Options page, I expected that would be OK. Yesterday, the program preview showed that the valve that was scheduled to start during the time first one was running was omitted completely, rather than being delayed to run after the first valve finished. If the Options are set so that Sequential is unchecked, then the simulation shows that two valves operating at the same time although started at different times.

    It appears that Sequential option only applies within the individual programs and causes valves to be omitted when the programs collide. If you want to prevent multiple valves from operating, then all interval programs have to be checked to make sure that there are no overlapping run times, because any two interval programs will eventually collide and run on the same day, and that includes collisions with Day-of-Week programs.

    If an individual watering system can live with more than one watering valve turned on at one time, then this is a non-issue.

    It would be nice if the firmware would deal with overlaps between programs, but this might be difficult to manage in the general case. I didn’t see written info that listed the limitations of the sequential option. If it is as I understand, then a clear explanation should be in the setup browser pages as well as the user manual.

    A way to prevent more than one valve from being opened at one time, would be to set to each interval program to execute in the same day, uncheck the SEQUENTIAL option and look for multiple valves being open at the same time in the program preview. If you run a mix of Interval and Day-of-Week programs, the above should be repeated for each day a Day-of-Week program used.

    Another, easier way to check for overlaps in programs would be to add a special preview mode that would run the preview with all programs set to run within the 24 hour period of the preview.

    #23529

    Ray
    Keymaster

    I think this has been explained in the user manual. Specifically, in the online user manual, there is a section that describes ‘Understand how the programs are executed’:
    http://rayshobby.net/?page_id=730#program
    and the third bullet says ‘While a scheduled list is running, no other programs will be scheduled even if a match is found.’. Perhaps I should make it more explicitly by saying that ‘The other programs will be ignored’. I recall that the video also briefly describes the way programs are executed.

    So if two different programs have exactly the same time settings, they will always be scheduled together and the stations will be serialized. If one happens to be a minute behind the other, it won’t get executed. The reason is mainly because if you push the second program behind the first one, it may get into conflict with a third program, and as a result all the programs will be pushed back. This can potentially lead to a stack overflow problem. I am not saying this will necessarily happen, but for robustness it’s important to make sure the algorithm does not crash under any circumstance.

    More intuitively, if you have a number of tasks you have to do, and one is behind schedule, you could keep pushing tasks back but you might run into the risk of never get back on schedule, or the other solution is to simply ignore the task that’s behind. The current firmware uses the second approach, and so it is up to the user to make sure programs are not ignored unintentionally. The program preview feature is particularly designed to help you find these potential problems. If you find a problem in the preview, you can modify the program time settings accordingly.

    #23530

    Oleengr
    Participant

    I had every expectation that If I read the user manual close enough that I would find that I was expecting OpenSprinkler to do things that were clearly not possible.

    While the Geek in me would have taken the time to ready the User Manual carefully, the Everyday-User in me cares more about What it WILL do and WON’T do rather than WHY/HOW it does what it does.

    When you take into account the exceptional capabilities of OpenSprinkler to allow 30+ programs, Complex Day of Week programs, Interval programs, and Multiple Watering Periods per program, you don’t have to have to have more than a few valves to control before you can find yourself with programs that interfere with one another. If your watering system doesn’t support having multiple valves open at the same time, then it can be tedious to make sure that there aren’t any conflicts. And then, when a person has it all worked out, all it takes is some seasonal changes and it can start all over.

    Given my brief experience with OpenSprinkler, the one thing that occurs to me that would easily permit spotting conflicts is a Global Program Preview feature. Such a preview would temporarily set all programs set to operate on the same day and turn off the Sequential feature. With this as a preview, it becomes easy to see where there are conflicts and the user can make adjustments.

    #23531

    djagerif
    Participant

    Or even just a popup message as soon as you enter a value that will conflict with another. This way you are notified immediatly of an overlap and can adjust your times accordingly. I like the Global View also.

    Ingo

    #23532

    Ray
    Keymaster

    I can add this to the todo list, but to be honest, detecting conflict is not as easy as it appears: the conflict may happen at some arbitrary day in the future (say if one program is a weekly schedule, one is an interval day schedule), so even with an algorithm to automatically detect this, it will have to simulate through a potentially large number of days until it finds a conflict.

Viewing 5 posts - 1 through 5 (of 5 total)
  • You must be logged in to reply to this topic.

OpenSprinkler Forums Comments, Suggestions, Requests Colliding Programs Can Cause Valves to Not Run