Halloween Light Demo 2.0 (Insteon)


Active Member
Here's a short 1+ minute demo of my computer-controlled Halloween lights. I'm using Insteon home-automation technology for control. I'm sending commands to 6 LampLinc modules and 3 ApplianceLinc modules from a USB PowerLinc Controller hooked up to my computer. For Halloween, I'll actually be controlling every light in my house in addition to the lights in this demo. I'm using my own home-grown software that allows me to script various lighting effects to occur while playing an mp3 file. The soundtrack you hear is just something I created using SoundForge. Let me know what you think!

http://darkpixel.dnsalias.net/HalloweenLightTest3aHi.wmv (hires version)

Here's the script file I actually used for this scene. The first part of each event record is when the effect should fire (in seconds from the beginning of playback), the 2nd part is the effect number, and the 3rd part is just an optional comment.


event=3.0|15|Glow Ramp Up
event=8.0|130|Hands On
event=13.0|131|Hands Off
event=15.0|61|Scream (red floods)
event=22.0|16|Glow Ramp Down
event=25.9|62|Ghost Moan (flash green lights)
event=31.0|130|Hands On
event=32.0|60|Thud (flash blue floods)
event=33.9|60|Thud (flash blue floods)
event=36.6|60|Thud (flash blue floods)
event=39.0|131|Hands Off
event=43.0|15|Glow Ramp Up
event=50.056|130|Hands On
event=61.0|131|Hands On
event=62.0|16|Glow Ramp Down
markthomas said:
Can you tell me a little more about your custom software?
Sure, what do you want to know?

It's written in VisualBasic.NET. I'm using the Windows Media Player as an embedded component in the application for the soundtrack playback. The Media Player component has a property that returns the current position in the soundtrack as a double precision nuimber. I preload the effects from the effects script into an array and set a "next effect" index variable. Then I have a timer control that fires every 25 ms. When the timer control fires, it compares the soundtrack's current position with the "next effect"'s programmed timestamp. If it's greater than or equal to the number of seconds specified, then the effect is fired. The effects themselves very depending on what I want the effect to do. Some effects utilize group scenes that I have preprogrammed into the Insteon modules. The lightning is an example of that. When I execute effect #150, I'm calling a sub routine that sends a broadcast message to first turn group 50 immediately on (which consists of a flood light hooked up to a LampLinc and 3 strobes hooked up to an ApplianceLinc), then immediately fade group 50 off at the previously linked ramp rate. Some effects just tell a specific module to do something without needing a group broadcast. The lighted hands are an example of that.
Great stuff! This is what HA is all about and these kinds of features should be part of all HA software programs! I think this just pushed me back into the Insteon camp!
Xpendable, thanks for the writeup. What did you use to send Insteon commands?

UpstateMike, you never really left :)
markthomas said:
Xpendable, thanks for the writeup. What did you use to send Insteon commands?
Do you mean what hardware? I'm using the USB version of the PLC. Or did you mean which commands of the Insteon protocol I'm using?