iLink INSTEON scene management software
ilink - Software to manage home automation scenes using
SmartHome's INSTEON home
automation products.
Note that new Insteon devices are no longer fully compatible with the
Insteon PLC controller that ilink uses. Smarthome has issued
the following statement:
Because the PowerLinc Controller belongs to an older generation
of controllers and has not been updated with the latest revisions, it
is no longer compatible with INSTEON devices as of March 2012. The
PowerLinc Controller can be used to control X10 devices.
For INSTEON control use the new PowerLinc Modem (2413U).
The PowerLinc Modem (PLM) is not API compatible with the PLC which
means that iLink is not able to communicate with the PLM.
All development and support for iLink has ceased. The code and
infomation on this website will remain for historical purposes.
There are currently two versions of ilink. There is a command line
only version and a GUI version. Both versions offer basic scene
management. The command line version is used for proof-of-concept
testing and has more options for testing and experimenting with
INSTEON control. Both versions should be considered Alpha quality.
I've been using them in my environment without problems but these
are distributed with no guarantees.
There are also a couple of other command line programs that can
be built. icmd is a simple command line program that sends
Insteon commands to devices. It takes a device id, command
name, and command data as arguments.
timers is a command line program for listing and loading PLC timers.
It supports the same text file format as
InFreeHome
but adds the capability to set timers that execute group broadcast
in addition to direct commands.
download is a command line program to download a timercoreapp
to the PLC. In addition, it can also dump regions of the PLC's memory.
The most recent timer core application for the PLC is
version 12.
spyder is a command link program that tries to find all your
device links and save them in a file. You can also verify device
links against the file and add new links. A basic command-line link
management program.
ilink is currently distributed as source only and is licensed
under the GPL.
- ilink source Version 0.2.22a
(May 9, 2008)
Fixed bug that prevented sending commands to remote devices.
The link and spyder command can now take the PLC /dev/xxxx as
an argument.
Added initial code to spyder to actually spyder an Insteon network.
Worked on the hid low level driver so it should communicate with
the PLC more reliably.
Here's a screen shot of the main GUI screen:
More screen shots
Requirements
- Linux (currently tested on Fedora Core 5)
- INSTEON PowerLinc V2 USB
- GUI version: GTK+ 2.4 or later
- GUI version: libglade 2.10 or later
- USB driver for the INSTEON PowerLinc V2 from the Linux Home Automation site
Features of both versions
- Create scenes without physical access to the devices.
- Support for all 5 buttons on the ControlLinc V2.
- Support for all 8 buttons on the KeypadLinc V2.
- Support for KeypadLinc V2 as a scene responder and controller.
- Program link tables of individual devices.
- Program all devices with all scene information.
- Keep a backup of all the scene information.
- Ability to assign meaningful names to devices.
- Ability to discover device info (id, type, etc.) by putting device into linking mode.
- Ability to add/modify/delete the timers in the PLC.
Features in the GUI version only
- Ability to replace one device with another in all scenes. (Can be used when a device is physically changed)
- Ability to query all known devices and build a scene database.
- Individual device control/status.
- Ability to program a PLC link database with all known devices.
- Ability to configure some aspects of KeypadLincs.
- Ability to list PLC timer events (edit/add coming soon).
- Ability to copy a scene from one controlle to another (soon).
Features in the command line version only
- Ability to query a device to make sure it is responding to commands.
- Ability to read blocks of a device's internal memory.
- Ability to write individual bytes to a device's internal memory.
- Monitor mode to view INSTEON traffic.
Features in development
- KeypadLinc configuration.
- Timer support.
- Ability to make the PLC a controller of a group.
- Scheduling/event based commands.
- Make the program multi-threaded.
Notes
While the code distributed only works with the USB version of the
PowerLinc V2 controllers, it would not be hard to replace the low level
USB communication code with serial port code.
There are actually 4 versions of the low level communication
code included:
- ikd.c - interfaces to the iplcd kernel driver.
- iusb.c - interfaces via libusb library api.
- ihid.c - interfaces via hiddev api.
- iser.c - interfaces via tty port to serial PLC.
ihid.c is the version I currently use. The other versions should work
but may require makefile changes to get them to properly link. The
libusb version seem to be less reliable and is slower,
probably by a factor of 2 or 3. This slowness may simply be tuning.
iser.c is untested at this time, I don't have a serial PLC.
Porting to Windows is probably possible, if this is something you'd
like to do, please contact me.