The way the current firmware works is that when a program is scheduled, it calculates the start times of all stations involved in the program. If a station is manually turned off, it doesn’t automatically move stations upwards. This behavior can certainly be changed by modifying the code, but it’s unclear to me whether the user wants to move the stations immediately upward or not. So all scheduled stations remain in their originally planned start time. We can add an option in the future, where when manually turning off a station, the user is prompted with the option of moving all other schedules upward or not.
Also, because there is no queuing structure, each station is only allowed one schedule at any given time. If the station hasn’t finished running, requests to run the station again will be ignored (unless if you manually turn off that station first, then you can schedule a new run time).
This can be solved by using a run-time queue, which should be fairly easy to implement. It’s already on my todo list.