@rhillman: about flow sensor, do you have a brand/model you’d recommend?
About primary-secondary opensprinkler options — yes this question has come up in the past, and I think it’s doable. There are a few possible implementations, probably the simplest can be: on the primary controller, define some stations that are associated with the secondary controller. When operating any of these stations, the primary controller, instead of sending signal to its shift register, sends an HTTP command to the secondary controller. This does require some firmware code changes, but it should be fairly easy to implement an ad-hoc solution.