Automation
(Last updated: Saturday October 6, 2007)
MH work in progress page
What is Insteon?
Insteon is a product and protocol from Smarthome which is comparable to X10 (you can find the developers forum at Insteon Developers). Insteon has several features that make it's protocol more reliable. One of which is that it adds feedback for Insteon commands. The Power Line Controllers (PLC) can speak X10 and Insteon so both protocols can exist in the same setup.
There are three PLC interfaces that support the Insteon protocol and will have or currently have some support under Mr. House (MH):
- Insteon Serial Power Line Modem (2412s) (PLM - MH Beta code support)
- Insteon USB PLC (2414u) (PLU - MH support WIP)
- Insteon Serial PLC (2414s) (PLS - MH support Planned)
Insteon PLS and PLU
These are the files that I'm working on. I'd consider these files to be alpha. I've got a lot of debugging turned on and I'm experimenting with various code. So don't be surprised if I break something. When the code is no longer alpha I'll add it to the MH SVN trunk and we'll go from there. Right now this code lacks a lot of code to read and write to the device directly.
- Insteon_PLC.pm - A shared file, both Insteon_PLS and Insteon_PLU use this code.
- Insteon_PLS.pm - The MH Perl module to support the Insteon USB PLC (2414s)
- Insteon_PLU.pm - The MH Perl module to support the Insteon USB PLC (2414u)
- Event_queue.pm - An event queue module.
Instructions to install software
There are 2 sections the PLU and PLS instructions (see above for a description of which is which). Follow the directions for the device you have. If you have the PLM Insteon Serial Power Line Modem (2412s) go to this site as I'm not the author of that software. So here's what you will need to do:
- my iplc linux driver - I need to put together the instructions for this, it's a bit complex so give me a week. I'll clean up my web pages also. You may also need the USB detach program. It's purpose is to detach the HID driver from the Insteon PLU (see the detach page for details).
- my Insteon_PLU.pm, Insteon_PLC.pm & Event_queue.pm put in ~mh/lib (see Files )
- the following entry in you mh.private.ini file (or your mh.ini file):
- The following code file in your ~mh/code directory, insteon.pl
# USB PLC (dev number may differ for your use)
Insteon_PLU_device = /dev/iplc1
Insteon_PLU_device_datatype = raw
Insteon_PLU_device_mode = rw
# Category=Insteon interfaces start up
#@ This script contains the startup routines for the PLU and the PLS (as iplcs)
use Insteon_PLU;
# noloop=start This directive allows this code to be run on startup/reload
my $Insteon_PLU;
###
### PLU
###
$Insteon_PLU = new Insteon_PLU(undef, undef, 'Insteon_PLU');
$Insteon_PLU->add_hook();
# noloop=stop
- my Insteon_PLS.pm, Insteon_PLC.pm & Event_queue.pm put in ~mh/lib (see Files )
- the following entry in you mh.private.ini file (or your mh.ini file):
- The following code file in your ~mh/code directory, insteon.pl
# Serial PLC
Insteon_PLS_serial_port = /dev/ttyM8
Insteon_PLS_serial_baudrate = 4800
# Category=Insteon interfaces start up
#@ This script contains the startup routines for the PLU and the PLS (as iplcs)
use Insteon_PLS;
# noloop=start This directive allows this code to be run on startup/reload
my $Insteon_PLS;
###
### PLS
###
$Insteon_PLS = new Insteon_PLU(undef, undef, 'Insteon_PLS');
$Insteon_PLS->add_hook();
# noloop=stop
What you will see if it's working (this was in the middle of a complex macro):
10/06/07 06:11:55 PM PLU:B:buf (2 69 8 2 74 0 29 2 69 8 2 74 1 18 2 69 8 2 74 0 26 2 69 8 2 74 1 18) 10/06/07 06:11:55 PM PLU:B:oldd () 10/06/07 06:11:55 PM PLU:B:buf (2 74 0 29 2 69 8 2 74 1 18 2 69 8 2 74 0 26 2 69 8 2 74 1 18) 10/06/07 06:11:55 PM PLU:B:oldd () 10/06/07 06:11:55 PM PLU:B:buf (2 69 8 2 74 1 18 2 69 8 2 74 0 26 2 69 8 2 74 1 18) 10/06/07 06:11:55 PM PLU:B:oldd () 10/06/07 06:11:55 PM PLU:B:buf (2 74 1 18 2 69 8 2 74 0 26 2 69 8 2 74 1 18) 10/06/07 06:11:55 PM PLU:B:oldd () 10/06/07 06:11:55 PM PLU:B:buf (2 69 8 2 74 0 26 2 69 8 2 74 1 18) 10/06/07 06:11:55 PM PLU:B:oldd () 10/06/07 06:11:55 PM PLU:B:buf (2 74 0 26 2 69 8 2 74 1 18) 10/06/07 06:11:55 PM PLU:B:oldd () 10/06/07 06:11:55 PM PLU:B:buf (2 69 8 2 74 1 18) 10/06/07 06:11:55 PM PLU:B:oldd () 10/06/07 06:11:55 PM PLU:B:buf (2 74 1 18) 10/06/07 06:11:55 PM PLU:B:oldd () 10/06/07 06:11:57 PM PLU:B:buf (2 69 8 2 74 0 29 2 69 8 2 74 1 18 2 69 8 2 74 0 26 2 69 8 2 74 1 18) 10/06/07 06:11:57 PM PLU:B:oldd () 10/06/07 06:11:57 PM PLU:B:buf (2 74 0 29 2 69 8 2 74 1 18 2 69 8 2 74 0 26 2 69 8 2 74 1 18) 10/06/07 06:11:57 PM PLU:B:oldd () 10/06/07 06:11:57 PM PLU:B:buf (2 69 8 2 74 1 18 2 69 8 2 74 0 26 2 69 8 2 74 1 18) 10/06/07 06:11:57 PM PLU:B:oldd () 10/06/07 06:11:57 PM PLU:B:buf (2 74 1 18 2 69 8 2 74 0 26 2 69 8 2 74 1 18) 10/06/07 06:11:57 PM PLU:B:oldd () 10/06/07 06:11:57 PM XE8EJ: xE8 on 10/06/07 06:11:57 PM XE8EJ: LRiLamp on 10/06/07 06:11:57 PM PLU:B:buf (2 69 8 2 74 0 26 2 69 8 2 74 1 18) 10/06/07 06:11:57 PM PLU:B:oldd () 10/06/07 06:11:57 PM PLU:B:buf (2 74 0 26 2 69 8 2 74 1 18) 10/06/07 06:11:57 PM PLU:B:oldd () 10/06/07 06:11:57 PM PLU:B:buf (2 69 8 2 74 1 18) 10/06/07 06:11:57 PM PLU:B:oldd () 10/06/07 06:11:57 PM PLU:B:buf (2 74 1 18) 10/06/07 06:11:57 PM PLU:B:oldd () 10/06/07 06:11:57 PM XE4EJ: xE4 on 10/06/07 06:11:57 PM XE4EJ: LRicon on
Other Links
Outside links that may be of interest to the Linux Insteon community.