May 182010

I have been into home automation and home entertainment for several years. When I was having my current house built, I had a lot of pre-wire placed in the walls for security keypads, thermostats, cameras, speakers, and video. And I also placed empty conduit in my walls in a few strategic places just in case I hadn’t thought of everything when I built the house (I didn’t, because I have already needed the conduit. Several times.) Here, I thought I would discuss my Home Automation (HA) setup.

First, I have the ultimate in home security, the Elk M1G. It is fantastic because it allows ethernet connectivity for monitoring by Elk specific programs or third-party applications, such as PowerHome. The end result is, if I open a door that is monitored by my security system, my home automation software, PowerHome, can detect that and react as I so designate. For instance, if I open my front door, the Elk tells PowerHome that the front door is open. PowerHome can check to see if it is dark outside, and if it is, it can turn my porch light on automatically. Then after I close the door, it will turn the lights off after four minutes. Want a text message if your security system alarm goes off? The Elk can handle this quite easily. Throw PowerHome on top of that and I could also have all the lights in the house start flashing. Starting to get the idea?

I have mentioned PowerHome already, so let me tell you about it. PowerHome is a very customizable and programmable Home Automation program. The best way to use it is to keep it running 24/7 on an HA PC. HA PCs are nothing special (but it is probably a good idea to find one that draws as little electricity as possible). I also use my HA PC as a Home Theater (HT) PC. PowerHome can easily interface with my security system, the Elk M1G, my lighting control system, Insteon, and other human interfaces such as infrared remote controls, email, and text messages. Because of the excellent integration between the Elk and PowerHome, I can easily write PowerHome programs to monitor my security system and react to changes. Similar to the example above, I have also written a PowerHome program that monitors my motion detectors in my house. If no motion is detected for 45 minutes and the system is not armed, PowerHome sends my work email and cell phones text messages asking if I forgot to set the burglar alarm. I can also monitor my garage door, turn on my garage lights automatically when I open the door, turn on lights at sunset and turn them back off at sunrise, and many other handy convenient features.

So, how do I turn on my lights? I use a lighting control system called Insteon. It allows me to link lights to switches in nearly infinite configurations. For instance, if I wanted my bathroom light switch to also turn on my garage light, I could do that. I don’t know why I would, but I could. I can also set up lighting scenes, such as movie watching and entertainment. Insteon devices primarily communicate with each other over the powerlines themselves, so they are very easy to set up. And the beauty of PowerHome and Insteon… they can talk to each other. PowerHome does this by the use of a USB Insteon module that plugs into a wall outlet. So, if I do turn on my bathroom light, PowerHome can also know about it and also open my garage door, or tun my stereo off. Again, I don’t know why, but I could. And PowerHome can also tell lights to turn on and off as well, such as at sunset/sunrise or upon a door opening.

Since my security system, lighting, and PowerHome are all so tightly integrated, I can also use a web browser from anywhere in the world, or my cell phone, and turn lights on and off, arm and disarm the system, and open and close the garage door. Not only is this convenient, but it also increases the home security and safety of the house. I don’t forget to arm my alarm, close the garage door, or turn the porch light on at sunset. Lights come on as I enter dark rooms. And I can monitor the whole system very easily.

May 052010

Inevitably after I get comfortable in my couch to watch a good movie, I realize that I haven’t set my room lighting to the optimal levels. Or I realize that I have left lights on upstairs. Because I am lazy, I don’t want to get off the couch to dim the family room lights or even worse, go upstairs to turn those lights off. Instead, I just press a button on my Harmony remote control and the lights are set however I want. You will also need an USB-UIRT to receive the IR signals and a 24/7 computer running PowerHome to do the work (I use my HTPC). Of course, you will also need some type of automated lighting. I have Insteon to control my lights.

You could do this with an old, unused remote, but I don’t like to have any extra remotes lying around my family room, so I really prefer the Harmony remote for this. If you don’t have a Harmony remote, and you don’t want to bring another remote into your living room, one other option would be to assign an unused button on your current remote control to be your lighting button. The whole idea here is you need transmit a unique IR signal such that whenever it is seen, it will, say, turn your upstairs lights off. If you do have a Harmony, you can add a new device that you don’t currently have in your home theater (you don’t want to be sending out signals that actually do something). Then you can go to the adjust buttons menus and Rename the labels for the soft buttons. Label one “Upstairs” and one “Fam Room”. It doesn’t matter what the IR command is. It could be channel up, the number 8, video toggle, mute, or anything else. We will learn the commands into the USB-UIRT and PowerHome, so it doesn’t matter what command is coming out of the remote.

Next, install the USB-UIRT and make sure it is working. To do that, just… um.. plug it in. They are pretty much fool-proof.

Next, we need tell PowerHome that you have a new controller. Go to the PowerHome explorer and expand the Setup branch and add a new Controller. You will see that there is already support for the USB-UIRT. Go into the settings for the device and set the type to “Pronto”. Shut down PowerHome and restart. PowerHome is now ready to receive IR triggers.

Next go into the PowerHome explorer and expand the Setup branch once again. This time go to Devices. Add an IR device and set it for about 20 IR commands. Then you can expand the newly added device in the navigation tree and start learning IR commands. Right click on a blank row and choose “Learn IR”. Take your remote control to the USB-UIRT and press the button corresponding to the command you are learning. I have found that you have to get an inch or two away from the UIRT when learning commands. If it learns OK, you should see an ASCII string representing the command.

Now we need to add a trigger for the newly learned IR command. But before we can do that, we need a macro that will be executed whenever the IR command is detected. Build a macro that has the one line INTSTEON GROUP OFF and select the group corresponding to your upstairs lights. Run the macro and ensure your upstairs lights turn off. Now build that trigger. Select the trigger type to be IR, select the device and command. Enter in the macro to be run and you should be good to go. Press the button on your remote and the lights should turn off.

The final step is to click over to your HTPC, start a movie that you have ripped to your hard drive, turn off the lights and enjoy :)

May 022010

This functionality has been evolving as of mid 2011 and may not work for you. Sirius/XM has been changing the format of their online streaming. Watch for the latest information.

If you are a Sirius online subscriber, then you can listen to most of the Sirius channels online in most web browsers.  It’s a very nice way to listen to Sirius at work.  The quality is quite good too.  But did you know you can easily add the same Sirius channel lineup to your Windows Media Center?  Here’s how I did it.

First, of course you will need a computer with Windows Media Center.  I happen to be running Vista x64, but I believe this will work on all versions of WMC.  Next, you will need to get a small, free program called “Sirius XM streamer“, which basically sets up a proxy on your computer to the Sirius streams.  To install it, you will have to have the .Net 3.5 framework installed on your computer (also free).  Installation instructions are available on the Sirius XM streamer website.  When you get the streamer installed on your computer, go to the configuration page and enter your Sirius username and password.  The streamer should also work for XM streaming, but I don’t have XM, so I can’t speak for that.  For the default stream protocol, choose HTTP and for the format choose ASX.  Leave Listening IP set to All and listening port set to the default 51710.  Your published URL should look like  The TVersity Media Server details can be ignored.  On the options menu, enable the start server automatically option.  Start the server and after a few seconds you should see the server running messages.

For each channel that you want to appear in the Radio list in WMC, you will need to create two text files and one JPG.  Place these files in your

C:\Users\USERNAME\AppData\Roaming\Media Center Programs\Radio

folder.  Of course replace USERNAME with whatever username you use when you run WMC. You may need to create the folder.  Here are the two text files I needed for Sirius Hits One.  I named them “Hits One.mcl” and “Hits One.htm”.  And I created a subfolder C:\Users\USERNAME\AppData\Roaming\Media Center Programs\Radio\Sirius for the icon images.

Hits One.mcl

<application  name="Sirius 1 - SIRIUS XM Hits 1"		
 url="Hits One.htm" 			
 description="The sound of generation Now!" 			
 <capabilitiesrequired  directx="false" 	

Hits One.htm

function IsMCEEnabled()					
return true;						
window.external.MediaCenter.PlayMedia(1, "" );

You can see where the mcl file points to the jpg image to use for the icon. Those images are 124×124 pixels, regular jpg files. I didn’t do anything fancy with them, but I did try using gifs and tried to get the transparency to work, but it would not. If you have better luck, let me know. Also, I do not know what the difference is between “startimage” and “thumbnailimage”. As you can see I set them both to point to the same image, and it seemed that it had to be that way. Again, if you figure something else out, let me know.  Place the images in the Sirius subfolder created above.

I have uploaded a zip file with all of the images for each Sirius channel here

May 012010

I am paranoid about closing my garage door. Or leaving it open. Whatever. I don’t think I’ve ever had anything stolen out of my garage, or any nefarious person (or varmint) enter my house through my open garage door, but I am paranoid about it nonetheless. Have you ever left for work in the morning, walked out to your car to see your garage door wide open?  Or have you ever come home from work to see you garage door open because you forgot to close it on your way out of the driveway in the morning? Me too. So I take matters into my own hands now. It would be impossible for me to leave my garage door open with me at home or away. Can’t happen. Would you like to know how I do it?

First, the required equipment and software:
I have an Elk M1G Security system
I use PowerHome for home automation
Optional, for the really paranoid, I have a Panasonic network camera which can watch the door
and I needed one addition magnetic zone sensor

My house did have a burglar alarm installed when I bought it, with sensors on all of the first floor doors and windows *except* the overhead garage door. I believe this is common practice for new homes, but I may be wrong. My house also came with a very inexpensive, builder’s grade burglar alarm. I immediately replaced it with the Elk M1G because it offers so much in the way of home automation. More about the M1G in later posts here for sure. I then installed a magnetic sensor on the garage door so the M1G would know when the door was open and closed. I have a home theater personal computer (HTPC) which also does my home automation. It is on 24/7 and I don’t know how I would live without it. It is the same closet where my burglar alarm is installed. I have PowerHome installed on that computer, which is capable of communicating with the Elk over IP. Finally, I ran a pair of wires in parallel across the “doorbell” switch in the garage back to a relay output on the Elk. The Elk has inputs and outputs, just like any computer. Zone sensors are inputs, but in this case I hooked up this wire pair to an output. The Elk can control the output (that is, electrically close or open the output) as required. It’s nothing more than a relay. The idea here is I want the Elk to be able to close the garage door, so I gave the Elk its own set of wires which bypass the doorbell switch in the garage. With that, I have everything that I need to complete this project.

The Elk keypads have four programmable buttons which can also be illuminated based on rules. I wrote a rule and function to illuminate a button whenever the garage door was open. I wrote a function to close the output that I connected the doorbell wires to above for one second when I press that button. So I press the button on the Keypad, the Elk interprets that and says “oh, he pushed the button, so I need to close this relay for one second”. Closing the relay for one second is the same thing as pressing the doorbell switch in my garage for one second because I have wired that relay as a bypass in parallel across the doorbell switch. I also added some logic so I can’t accidentally open the garage door from the keypad. The logic checks to see if the door is already closed, and if it is, it doesn’t do anything else. Therefore it won’t accidentally open the door. Great, so I can so look at any keypad in my house and see if the door is open or closed. And if it is open, I can close it. But that’s not good enough.

The Elk M1G is also capable of voice enunciations. I have my Elk connected to a couple of in-wall speakers throughout my house. Now, whenever my garage door is opened, the Elk starts counting down from 60, decrementing by one each minute. When it hits zero it announces throughout my house “Garage door is open” and then resets the counter. So I get hourly reminders that my garage door is open.

I also have PowerHome check to see if the garage door is closed seven minutes after the security system is armed. If the door is not closed, then PowerHome sends me, and my wife text messages on our cell phone, and our work email address a notification that the burglar alarm is armed, but the garage door is open. PowerHome has a built in web server and I have written a front end that can also display the status of the garage door, and of course, it also has a button that I can click and close the garage door. All this is accessible with our cell phones or any web browser.

And yes, I am really, really paranoid, so I also have a Panasonic IP camera in the garage so I can pull up a web page that stores the most recent images from the camera and verify visually whether on not the door is closed.  More on the Panasonic cameras in a later post.

As you can see, I am really paranoid about my garage door.  But I can tell you I have not left it open overnight in years.  Nor have I come home from work to see it wide open either.  This functionality gives me a lot of peace of mind and I am really glad that I have automated every aspect of my garage door.