I’ve developed a solution for integrating Lantronix’ Premise Home Control Software with Crestron. I did this for my own home and am now considering what to do next with the code. I’d be interested in hearing from people who have thoughts on this…
Basically my Premise driver (written in C++ using the Premise HSDK) implements what looks to Premise like a set of COM ports. For each device in Crestron you want to expose to Premise you define a “prefix string” and create one of these virtual COM devices. So for my Integra DTR 7.3 receiver I have a COM port available in Premise named “Rec Room Integra”, and it has a “prefix” property of “dtr73”.
Whenever code in Premise writes to the virtual COM port (e.g. the Premise Integra driver, which is all VB code BTW), I take the written data, and prefix it with the “prefix” and a colon. So “FOO\n” becomes “dtr73:FOO\n”.
On the Crestron side I have a SIMPL+ thing that makes it easy to attach a serial RX$ to the real serial TX$ for the device and strip the prefix.
Same thing happens in reverse. If output a serial string in Crestron to Premise, it needs to be prefixed with the prefix:. The Premise driver maps the data to the correct virtual COM port.
There is a single serial connection between Premise and Crestron. My driver effectively multiplexes many “virtual” serial (or IR) connections over that.
Works amazingly well. Was a bit tricky to write because the only implementations of the COM port interfaces w/in Premise are in the core. I figured it out though.
Next step is to make it work over Ethernet.
Two articles illustrating how this works:
The driver is not ready for broad distribution. I am willing to allow access to people who are willing to test it. I may charge for the final version. Testers who provide solid feedback will be given a significant discount.
Go to www.kindel.com/blogs/spkindel for more complete information.