Adding support for home automation devices

From LinuxMCE
Jump to: navigation, search


Although our GSD device allows non-programmers to add support for new devices, our staff will be happy to do it for you. If you have a device that we don't presently support, like a lighting control system, you can setup LinuxMCE, connect the device to your Core, and then contact us with the make & model. We'll setup a time for one of our programmers to add the device. There's a remote assistance feature you enable in LinuxMCE Admin on the Wizard, Security, Outside Access. This lets our programmer log in to your Core to test the new software driver against your equipment so that we don't need physical access to it. If you'd like to add the new device driver yourself you have 2 choices:

  1. Our "Generic Serial Device" module (GSD) is designed for the thousands of devices that are controlled over RS232 and Ethernet. It allows a LinuxMCE driver to be added using a point-and-click, fill-in-the-blanks interface. Basic protocols can be implemented with no programming at all. For more complicated tasks GSD embeds the Ruby language. Ruby is a high-level interpreted language with flexible string handling, like Perl, but the syntax is simpler. The protocol and embedded Ruby for GSD devices is stored in the database and automatically synchronized with all other LinuxMCE systems as long as you leave checked the "Share my IR codes and GSD device" box on the A/V Equipment wizard. So there's no compiling and no code to check in. GSD devices that control a/v equipment, lighting, etc., can be done in as little as an hour or two, almost never more than a day for complex protocols. Click A new concept in collaborative development
  2. For more complex devices, like a software media player, which require low-level access to the PC's hardware, then you'll need a traditional DCE device can be created in C++. We have code generators that automate the process of getting started and build a ready-to-compile Windows & Linux project with stubs for the programmer to implement. See the LinuxMCE Libraries DCE for instructions and a tutorial.