Thanks to the help of Joel Tamkin and Eric Maycock for the bulk of this code, I’ve packaged up a repo on github that will work with the Monoprice 11990 Dual Relay Module.
SmartThings initially sets this up as a “Z-Wave Device Multichannel”, that at first glance, appears to work perfectly. However, when manually toggling the second switch, SmartThings doesn’t reflect the status change. The custom device type does this. Eric wrote the code to make this work for a Philio module, but the Philio has features that the Monoprice doesn’t. I basically took his module, and removed the bits that didn’t apply.
There’s also a SmartApp in the repo that will associate a virtual switch to each switch on the relay module, letting them be used by Routines and other SmartApps. I think that the ST-supported “Multi-Channel Control” app is supposed to do this, but it didn’t work for me (and others). This app is again mostly borrowed code.
The bulk of the work I did was in the documentation on how to set it all up. I’m new to the SmartThings platform and Groovy, so I’d love any input. Feel free to file an issue on GitHub.