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

#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.