I vote no for going through EZServ. I’d rather see Jon come up with some kind of sub-plug-in for the plug-in, so that third parties could write routines to handle their specific devices, yet everything operates under the aegis of HomeSeer.
It could be as simple as a number of exported routines from the main plug-in, with some predefined entry points in the sub-plug-in. If I were writing something like this from scratch, I’d build a small API that allowed each kind of device to have its own controller, and keep the knowledge about that device within the controller. The main program would simply load the controllers, translate events into generic API calls into the controllers, and manage the PLM as a central resource.
Adding new devices, or updating definitions of devices, would then be fairly simple and painless. There are only so many different kinds of IO operations possible with these devices, all of which can be genericized into inputs, output, status reports, sensors, and such.