Posts Tagged ‘Insteon’

So I have been working hard over the last few month trying to consolidate many pieces of what I hope to be the decorations master piece for 2010.

Here is how it started.  For 2009 I had already created a simple programs that would randomly play small 5-10 second sequences such as fading on / fading off, lighting bolts etc. And even in Halloween/Christmas starting I start projecting some images and clips on the window using my laptop and a projector. But wouldn’t it be nice to have it all sync together?  This is where this ‘project’ came up.

For starters I considered dropping these boxes and going with the Light-o-rama product.   Which I am sure you have seen 1000 times before and that same Transiberian Orchestra song!  But after downloading the demo software I found there was no way I could insert code or run a program before or after.   Don’t get me wrong its a excellent product and insteon devices will NEVER match the speed those device can achieve!   But another limitation ‘I’ didn’t like was that its all in central controllers. With the lamplincs I can and have had devices inside the home and some outside at the same time, also if one device dies you replace it and your done, here if you controller dies you are down 16 ‘channels’ .  BUT Downside for me is each device needs to be  programmed individually but once its set your ready to go!.  Another big plus for me was that I could use existing Insteon devices over and over and even mix with the ones in the home.  For example in Halloween I would kill the kitchen lights inside for the lighting bolts outside.   So in true ‘me’ spirit I decided to stick with Insteon and do something different!

Here are some of the LampLincs I’ve picked up over 2009/2010.  Each are identified by unique #

The Show Manager

So “Show Manager” is basically the conductor that start and stop these individual programs.  Here is a high level chart of what it consist of.

For example the ‘Show Manager’ will start and stop the ‘Randomizer’, ‘Sequencer’ as well as accept input from the internet.  Like in 2009 I will provide a button from our community website/ internet users to ‘bump’ the decorations. 🙂  Try that Lightorama.

The program is a simple program that will start and stop programs using VB program looking as the processes in memory.

The “Sequencer” Program (New for 2010)

Different from 2009 is the ‘Sequencer’ program which is what allows me to sync video/audio to commands to the devices.  The screen is very simple and clear.  You have a time line which is broken down in .25 seconds with the devices down the left.  Each color is a different command sent via the serial interface.

Closeup of the Time line board.

Close up of the commands screen

Synchronizing the video between the two computers was a ‘TASK’ .   I had to get down to the milliseconds so the video would sync correctly,

For this I had to use VB 2008/2010 Windows presentation format (WPF) in the remote laptop since you can change the rate of play of the video. I never found a right way to do this in VB 2008 or less. So the main sequencer would send a heartbeat to the laptop everysecond with its time sync so the player could go slower or faster.

The way I put them to talk is a previous entry here, how to Communicate using ports / TCP.   HERE

To be continued….

Here is a quick breakdown of a  Insteon TriggerLinc I use for notifying me upon mail arrival using a external ‘normally open’ contact.

Components needed;

Insteon TriggerLinc goes for $34
Normal Open contact (These come in all shapes and sizes) i chose a minuature one which I spray panted black to match the color of the box.
Here is a link to a few, they run for around $2-3.   See here
Small screwdriver.
Double sided tape
Can of spray paint.

And finally the insteon device you wish to link it to (In my case I linked it to my PLM so I can then act accordingly such as notify via flash lights, email, etc.)
You really dont need a fancy Pc system for notification since you can attach this to any insteon device using the tap/tap method if you like but be aware the light will go off when it closes.  But you do need a access point to capture the signal.  In my case the closest access point is a good 100 feet!!!

As seen in the picture, The TriggerLinc comes with its own contact/magnet but you have the limitation that you need to have the base unit near by.  Good news is that the device allows you to attach external contacts like I did here.  The box opens very easily.

You can see the wires coming out from the bottom right hand side. (No special order needed)
Note: I used a rechargeable ‘Solar’ battery which hasn’t failed me yet. You can find this
at places like Home Depot under lighting section.  They run for around $7 for 4 double ‘A”s.

First I spray painted the contact to match the color of the mailbox (Flat Black)

Finished product.  🙂

Connected and ready to go. (I used double side ‘3M-picture frame’  tape which you can find at any
Walgreens or Homedepot store)

For my mailbox the device sits comfortably underneath but you can also use Velcro to hid the device if needed.

The cables I pass thru one of the small holes on the left hand side. I used glue to tape secure the cables on the side of the mailbox
then another quick spray of black paint.  🙂

Finished product.

What you will get on your side will be the traditional ON/OFF insteon commands.
In my case I have a notification sent to a PC console as well as emails sent to myself.

Whats up?

Posted: April 25, 2010 in General
Tags: , , , , , ,

I know i’ve been out for a while, but im not dead!  Ive moved all my home system over to the PLM system.  For a couple of reasons.  First the PLC SDM software is no longer supported.
And many times that my program has stopped has been a cause of this.  Its still a great device and Im not planning on removing any pages related to it.

Here is a link of a excellent site to get you started sending commands to the PLM.  Has all the basics and even sample code.  I moved all my custom code following this.

So what have I been working on?
Would you believe decorations?. Im now stocking up on LampLincs for 2010.  I’m up to 30 now (This is of course not counting the one for the home). I’ve got myself a extra PLM off Ebay (2112) and another one on the way.  Even my first PLC will be used for the second phase of the home.  I’ll later go into detail, just that I wanted to show im still here. 🙂

For the 2112, go for the older ones, the new ones dont have a ‘pass-thru’ outlet. And this key to sending groups commands fast!  Hence why I ordered another one.

Also ive been stocking up on LED lights, as you may now the lamplincs have a max load of 300 watts, and with the average load of a traditional 100 bulbs string runs at around 46-64 watts you can add more lights on a single Lamplinc,  For example for this Christmas im suspecting I will need 3 Lamplincs for the icicles.

We’ll off, and thanks for all the comments, I see this blog gets hit a lot. Appreciate it!

We’ll after receiving back some of my hard earned money thru 2008. I shelved out the $159 for the Insteon T1700 thermostat.
It can be found here.

The device is quite small, which is fine and thinner that my orginary Honeywell one which was a real plus.  To install was also very simple.
And technical support was awesome!!!  Who expects to call a company and receive a live person and be able to troubleshoot on the phone in less that 3 min.  And to top it off the rep even called me back since he had to leave. At the end it was a simple dip switch due to my model.  So if after you install it and when you turn on cool and heat comes out and vice-versa, just turn on dip switch two and your set!  Thats Again Mike from Venstar!!!!

The only thing would be the ‘light’ on the side of the Insteon module.  so in dark areas it does stand out.
Like mentioned above the device is very small and the insteon module even smaller.
For example check out the image in comparison to my hand

Setting Mode, Getting Temperature of Thermostat

Ok, enough Pictures and talk, lets see how to control this device.

First forget about sending ON/OFF commands, for me they didnt work, nor did they do anything.  What we will be using is the 0x02 command instead of 0x11 for on or 0x13 for OFF.  What I has able to find was the higher numbers after that worked. I’ll show you what

Ive got and show examples after.  In my case I couldnt send request using the regular PLC commands so I ended using the low level calls using the sendhex function, that article can be found here

More ways to speak to your Insteon Devices

For the examples my PLC is # “0D 51 32” and my Thermostat is “01 02 03“.

0x6b – Bit 2 – Get Thermostat Mode (Returned is 00=off,01=Heat,02=Cool,03=Auto,04=Fan)


	Sm.SendPLCHex("02 40 01 A1 00 09 FD 9B 0D 51 32 01 02 03 05 6B 02"	Sm.SendPLCHex("02 46 01 42 10 9F") ' Execute my command

	'You should get the reponse on the Last Bit of your reponse.  For example
	04 01 02 03 0D 51 32 26 6B 02

	So in this case 0x02 Means the device is on COOL.

0x6b – Bit 3 – Get Temperature (Returned is the temperature, you convert to decimal and divide by two)

	Sm.SendPLCHex("02 40 01 A1 00 09 FD 9B 0D 51 32 01 02 03 05 6B 03")
	Sm.SendPLCHex("02 46 01 42 10 9F") ' Execute my command
	'You should get the reponse on the Last Bit of your reponse.  For example
	04 01 02 03 0D 51 32 26 6B 9A 
	So in this case 0x9A Converted to decimal is 154 divide
        that by two and you get 77 degrees!!

0x6b - Bit 4 - Set to Heat

Sm.SendPLCHex("02 40 01 A1 00 09 FD 9B 0D 51 32 01 02 03 05 6B 04")

Sm.SendPLCHex("02 46 01 42 10 9F") ' Execute my command

0x6b - Bit 5 - Set to Cool

Sm.SendPLCHex("02 40 01 A1 00 09 FD 9B 0D 51 32 01 02 03 05 6B 05")

Sm.SendPLCHex("02 46 01 42 10 9F") ' Execute my command
0x6b – Bit 6 – Set to Auto (To switch automatically from Cool to Heat depending on your settings)

	Sm.SendPLCHex("02 40 01 A1 00 09 FD 9B 0D 51 32 01 02 03 05 6B 06")
	Sm.SendPLCHex("02 46 01 42 10 9F") ' Execute my command

0x6b – Bit 7 – Fan on

	Sm.SendPLCHex("02 40 01 A1 00 09 FD 9B 0D 51 32 01 02 03 05 6B 07")
	Sm.SendPLCHex("02 46 01 42 10 9F") ' Execute my command

0x6b – Bit 8 – Fan off

	Sm.SendPLCHex("02 40 01 A1 00 09 FD 9B 0D 51 32 01 02 03 05 6B 08")
	Sm.SendPLCHex("02 46 01 42 10 9F") ' Execute my command

0x6b – Bit 9 – All Off

	Sm.SendPLCHex("02 40 01 A1 00 09 FD 9B 0D 51 32 01 02 03 05 6B 09")
	Sm.SendPLCHex("02 46 01 42 10 9F") ' Execute my command

Setting the Cool / Heat Thermostat Temperature

Here insteon of 0x6B we will be using the 0x6C for Cool and 0x6D for HEAT.  So lets say you’ve set your device to Cool and want to lower it to 75 Degrees.  Just like when we read the temperature, when we set it we need to multiply the requested value * 2 and convert it to HEX.  In the sample below the variable Set_Temp holds what we want it to.  The next statement converts it to HEX and *2 and presto!

'This is the temperature we want to set Cool to!
Dim Temp As String = Hex(Set_Temp * 2)
Sm.SendPLCHex("02 40 01 A1 00 09 FD 9B 0D 51 32 01 02 03 05 6C " + Temp)
Sm.SendPLCHex("02 46 01 42 10 9F")

'This is the temperature we want to set heat to!
Dim Temp As String = Hex(Set_Temp * 2)
Sm.SendPLCHex("02 40 01 A1 00 09 FD 9B 0D 51 32 01 02 03 05 6D " + Temp)
Sm.SendPLCHex("02 46 01 42 10 9F")

Hope this works for you and its working great for me.  Each hour I poll the temperature and as part of that routine I poll my thermostat to keey the information up to date. I’ll post more as I find out!

So after weeks of playing,printing, and busting buttons  I think what I ended up is with some acceptable buttons, here are the layout of my first KeyPad Linc

These were done using a InkJet, I still need to try using a Color Laser to see.  Since I got this one off of ebay it was only the 6 key’s which I got the conversion kit off of SmartHome for $5 to 8 bottons.

The Etched buttons do look better but a bit costly.  Here is the breakdown

8 Button Keypadlinc

Color Kit, which changes the color of the LED behind the button

6 to 8 Button Conversion kit or new buttons if you break one. 🙂

Here is the low down,

1st  – Controls the load on the switch which is in my hallway

2nd – The Kitchen Main light

3rd – The Lights inside the Garage

4th – A group which controls all outside lights, (Garage, flood lights, back lights, entrance etc.)

5th- Not linked to any device but when pressed the PC will turn off all the lights in 2 min’s and set the house state to off, which includes bumping up the thermostat to 80 Degrees.

6th- Linked to my I/O Link to open/monitor the garage.

7th -My Children s room both have a main light and a night light switch, this button is linked to both of them, only thing is the Main Switch has a on – level of  0 which causes only the night light to turn on. The best way for this is to link them manually then go back the the program for Smarthomenet’s and change the turn on code to 0.

8th -Linked to my T1700 Thermostat.  Its linked by setting your thermostat to the desiered state then link like any other switch.  Very simple and clean.  I also link this button back to my PLC so I know its been pressed.

Finally my first Insteon Motion sensor arrived!.  The box is average size and has a pretty big label showing SkyLinc and SmartHome technologies.

Out of the box, cool white color.

The device even comes with its own 9V battery so you can start up quickly.  Linking is the done the same was a other devices.

Like most of the Insteon device it has its traditional SET button, In this case the ‘SET” button is inside the battery compartment.

Which also houses the ‘dip’ switch for fine tuning of the device.  I’ve set mine to not show the LED which is a very BIG led. (I tell you what they are for below the image)
For this reason you can see the PIN #2 is on all others are ‘off’ which are not connected or on the top.

According the the 1 page (What looks like a photocopy) the pins are used for the following

Dip Switches

1.Sensitivity, enable to reduce the sensor 33%

2.Turn of LED (It will still flash if there is a incorrect link or the device you link too has been removed.

3.Night-only mode – Only operate when dark

4.On-Only mode, so it doesn’t tell you when the device hasnt seen movement in 1 minute.

5.Not Used.

The linking was very simple, press the link button and press the link of the device you want to turn on/off.  In my case its the PLC so I can see the ON (0x11) and OFF (0x13) commands and act accordingly.    

I haven’t found any way to change the default re-transmition time which is 1 minute, so unlike the Eagle eye which transmits every 10 seconds, this will only t ransmit if the status changes for example from ON to OFF.  So this means if you have movement in the area you will only see ONE – ON command until one minute after when there is no movement. You wont get a message each minute.    Also there is no way to poll the device, but it does seem to have already hard coded its ‘address’.  So its considered a device which status changes from On for occupied to OFF to no motion detected in 1 min.

Among my findings the RANGE is great!. In my case I have 4 access points so even in the back yard the reception is great!.  The white color is a plus, fits in anywhere , this was something I never understood with the eagle eye’s. (brown) Plus includes its own mointing kit which you can swivel the device.  I used double side tape before using the screws this way I can find the best spot before making it permanent.

Here is the VB/SDM strings which come in when the sensor is activated

02 11 8C F0 00 00 01 CB 13 01 - Which is for OFF (No motion for 1 min)
02 11 8C F0 00 00 01 CB 13 01 - Which is for On (Motion)

02 11 8C F0 00 00 01 CB 11 02 - Which is for Dusk start / Dawn end (Dark for 3 Minutes)
02 11 8C F0 00 00 01 CB 13 02 - Which is for Dusk end start / Dawn Start?

More Pics

Mounting Kit not shown.

I placed my first Insteon Sensor in the top middle hallway, and covers the two corners perfectly,
I quickly removed the two eagle Eye’s I had…

As promised here are some new screen shots of the Client.  Its totally revamped and I think in a cleaner format.  Its a combination of VB2008 / Flash Action Script 2.0

Sample Screens – Jan 2009

Comments and feedback is appreciated!

Lets say your like me and you wish to check the status of the contact on your garage.    But notice that regular polls only return the device itself not the status of the contact.

For example maybe at a given time you want to make sure the contact is closed.  Here is how

I’m going to use as reference the original articles of getting “Insteon to talking to your PC found below” Part #1,#2,

This is using VB .NET and assuming you already have some experience with the SDM/PLC commands.

For the Sensor Poll We are going to use the command #19 and a second command of ’01 to query the device.  For example

For this example Lets say for example my plc is AA.BB.CC
My I/O Linc is : 11.22.33


So in VB polling the device using the SDM would be like this,

sm.SendINSTEONRaw(”AA BB CC 11 22 33 05 19 01″, 3)

In return you will get the following bytes, notice the change in the last digit.
If the garage is closed (Contact closed)
 - 04 11 22 33 AA BB CC 25 03 01 

If the garage is closed (Contact OPEN)
 - 04 11 22 33 AA BB CC 25 03 00

If you get FF,FE or other numbers make sure you are using the last 01 on your command #19 as this will give you the state of the device which isnt the contact status.



Hurray, My I/O linc arrived on Saturday 10th!!!

The good news is that its setup and in place.  Setup was a breeze since I’m literally replacing two X10 products for one.  I love it!

So the wiring is the same

Here is my Garage contact I purchased separately before, now as part as a kit.


Since the top part is so light I ended up using Velcro so I didn’t need to drill holes.

Now the I/O Link

Here are the official instructions

As for the hook-up its very straight forward and the on-line manual has a very good description of this.  My recommendation is use the individual strands of a CAT 5 cable, they fit perfect.

Here i’ve connected in my garage door sensor. (Click to magnify) – Green cables

Below I’ve connected my ‘momentary’ switch to the back of the garage opener. (You do have to setup your I/O linc to do the momentary relay before which is the “C” setup).

This is done by pressing the ‘SET” button 3 times x 3 times for a total of 9 times. Double check on-line just to be sure.

Orange is my Open/Close wires to the Garage and the green are my sensors

Here is the box setup next to the Garage opener.  Since there is no space for the I/O linc I had to set it up next to the opener.  Plus I didn’t want to put it flush with the device since it vibrates a lot.

Now each time the device Open’s I get the “11 FF” message and when it closes the “13 FF” message. But i still haven’t figured out
how to read the sensor yet.  Once I get those details I’ll post part 2.

Here is how the linking process works.  It’s done both ways (like a 3-way switch)

* If you want to monitor the garage  status AND use a keylink button you NEED to link then both ways,

1.First open your garage door.

2.Starting linking your I/O link to the KeyLink Key or switch have the switch control your garage then Link Keylink key and then then I/O.

4. This way when you press the key it open/closes as well as the button lights up when you open the door and close it. 🙂

Here are the official instructions

Like many programs there is always more ways to do one thing.

Here is another way I found to talk to my PLC what I’ve been able to get is that i’m sending the direct HEX (PLM) commands to the PLC. Which in turn makes  the processing faster. In my environment it helped a little but had its down sides.

My initial articles using the regular Insteon commands are here.

Turn on a group (SM is your VB PLC Object) Using the PLCHEX command

Im suspecting the first HEX codes are the address and command we are sending to the PLC

Example #1,

My PLC ID is 0D.51.32
Group I want on is “1A
Groups use :C5
Command: Turn on (11=On,12=Fast On,13=Off,14 = Fast Off,19=Poll, 10=Ping)
Power:Full (The last FF for 255 HEX)


Sm.SendPLCHex("02 40 01 A1 00 09 FD CB 0D 51 32 00 00 1A C5 11 FF)
Sm.SendPLCHex("02 46 01 42 10 9F") ' - Execute Command?

Advantages is that there is no ‘sendtxt’ echo coming back or even a echo of my text going out, which for me makes the command process faster.  And you still get the ‘echo’ in the same format coming in so no change to your program is needed if you are already capturing th text comming back.

Cons:There is no place to define the HOPS?. Sometimes can fail is you send to many commands one right after the other, Im suspecting that since you we are cutting the initial ack on the start it choke after too many commands.  My solution to this was to pause between each command I sent to it.  A good 1 seconds did more than just fine.

* BTW, I like to send the group commands twice since I dont do Group clean-up’s so I basically execute the second line twice.

Turn on a single device (SM is your VB PLC Object) Using the PLCHEX command

Example #2,

My PLC ID is 0D.51.32
Device I want on is :0A.0B.0C
Single Devices use  :05
Command: Turn on (11=On,12=Fast On,13=Off,14 = Fast Off,19=Poll, 10=Ping)
Power:Full (The last FF for 255 HEX)


Sm.SendPLCHex("02 40 01 A1 00 09 FD CB 0D 51 32 0A 0B 0C  C5 11 FF)
Sm.SendPLCHex("02 46 01 42 10 9F") - ' - Execute Command?

Hope this helps in your development, and drop me a line if this helps you…