Very interesting. I do have some technical questions because I think there are a couple of non-trivial aspects in your approach:
1) If I understand it correctly, the relay board you are using is ‘active low’ — which means a logic LOW activates the relay and logic HIGH releases the relay. Correct me if I am wrong.
2) You can connect an OpenSprinkler’s station port directly to the relay signal pin because the station ports are essentially open-collectors (albeit driven by triacs instead of transistors or MOSFETs). This matches well with the ‘active low’ relays because when a station is turned on, that station port is connected to GND, thereby generating an active low signal which in turn triggers the relay. It’s important that OpenSprinkler and the relay board must share a common ground, which is achieved by your USB cable that provide 5V power to the relay board and the wiring ensures that they share a common ground.
3) This is the interesting part: normally triacs are not meant to work with DC voltage / current because they require a zero-crossing to properly turn off. I am guessing that it works in your case because the relay board uses opto-coupler which consumes very little current. As a result, when you turn off the zone, the DC current running through the triac is small enough that ensures the triac will turn off. This is not the case if the current flowing through the triac is larger than a few milliamps — the triac will stay on and will not turn off. That’s why triacs are really meant for AC current and not DC current. I think it happens to work in your case because the DC current is very small.
Anyways, it’s a clever approach and I didn’t think that the triacs would work with these relay boards (therefore previously I have been telling people to replace triacs with transistors or MOSFETs).