In my last few articles (Part 1, Part 2, Part 3), I introduced you to some products from X10 that you can use in your home automation network. I’ve shown you things like the X10 socket-rocket screw-in lamp module that makes it extremely simple to control lamps without the need for special wiring. I’ve shown you the X10 appliance module for controlling other devices such as floor heaters which can be moved from room to room easily. I’ve also shown you the X10 wall switch module and the X10 controlled wall outlet which allow you to control your lights & other pluggable appliances by replacing your existing light switches and wall power outlets. In my last article, I also showed you a few products that you can use to control your devices, but all of those require you to be physically nearby your transceiver. Well, today I want to show you a product that will allow you to control your X10 home automation system from anywhere in the world using your cellphone, tablet, and / or computer. I’m talking about the Insteon Hub which is available on Amazon for $130.00. Whereas X10 has been around for a little more than 35 years, Insteon is a newer system used in home automation systems. One of the cool things about the Insteon Hub is that it is also compatible with your X10 devices. Another cool thing about it is that it allows you to control your devices over the web and that is how we will be controlling our X10 devices from anywhere in the world.
To get started, you will need to head over to Amazon and pick up the Insteon Hub. Once you have it, follow the included instructions for connecting it to your home network via the included ethernet cable. This particular model does not work with wireless networks. So, you’ll need to make sure that your home network router includes an ethernet switch on the back which most do these days. Since the hub will be communicating with your X10 devices using your home wiring, you will need to plug the hub’s power directly into a wall outlet. Do not plug it into a controlled wall outlet as explained in my previous articles and do not use a power strip or surge protector. I know best practice is to use a surge protector of some kind. But, surge protectors and some power strips include filters which will block the commands being sent from the hub. The same holds true for other X10 devices as well.
Once you have the hub connected to your home network router and to the internet, you will need to create an Insteon account and configure your hub. Don’t worry. It’s extremely simple to do and can be done from almost any device including your Android cellphone or tablet, iPhone, iPad, or computer. To do that, you will need to download the “Insteon for hub” app from Google Play or the Apple Store. If you do not want to use your mobile device for setup, you can also use your computer by pointing your web browser to http://connect.insteon.com. You can also download the “Insteon for Windows” app by visiting http://www.insteon.com/pc.
If you are using your cellphone or tablet for setup, it will be best if you connect the mobile device to your wireless network at least until you are finished with setup. Afterwards I will show you how to access your Insteon hub over the web. For now, launch the Insteon app and click on “New Account” and follow the on-screen instructions until you have successfully created an account and your Insteon hub is now online. Note: While going thru the setup process, it is advised that you configure a static IP address for your Insteon hub as this is how we will be accessing the device over the web.
When you are finished configuring your Insteon hub, go ahead and add a device or two to make sure everything has been setup properly. For your X10 devices, you will need to click on the icon shaped like a little house and click the “All Devices” icon. From there, you will need to click the “+” (plus sign icon) in the upper-right corner. You should then see a screen that asks “What would you like to add?” and a bunch of icons. Scroll to the bottom of the screen and click the “X10 Device” icon. On the next screen, you will be able to set the name of the device and give it an icon. You can also set a schedule if you need. The most important part on this screen though is the “House/Unit Code” setting. Make sure you select the correct house & unit codes for the device you are wanting to control. When you are done, click the disk icon in the upper-right corner to save the new device.
After the device has been registered in the app, you can test it by clicking the icon in the “All Devices” screen and clicking the “on” or “off” button. If everything worked correctly, your X10 device should receive the command and the device associated with that X10 house & unit codes should turn on or off depending on which button you selected. You can also test the dimmer from the same screen if your device supports it.
Now that you have your Insteon hub working with your X10 network, it’s time to setup everything to work over the web. In order to do that, the first thing you are going to need to do is configure your router to let traffic in from the outside. Since routers are basically firewalls, your router by default is configured to block any requests that originate from outside of your network from accessing anything inside your network. The way you will be accessing your home automation network over the web is you will be sending a command from your mobile device to the Insteon servers which will in turn pass the command to your Insteon hub. Unlike many of the other home automation system providers out there, Insteon has decided to provide this service free of charge. Plus, this method prevents you from having to pay extra to your internet service provider for a static IP address. Instead, your Insteon hub will continuously communicate with the Insteon servers informing them when your IP address changes.
To allow the Insteon servers to pass commands inside your network to your hub, you will need to do something called “port forwarding”. If you don’t know what port forwarding is, you can do a quick Google search and find out just about everything you can imagine. I would also recommend that you do a Google search for the type of router you have as I will be explaining how to do port forwarding with my Cisco Linksys EA2700 which is probably different than what you have. I would also recommend that you checkout the “Remote Access Setup” section of the Insteon hub user’s manual found at https://www.insteon.com/pdf/2242-x22.pdf. Between my Cisco Linksys router and the internet is a DSL modem / router. If you do not have a router between your private network and the internet, you can skip this section and jump directly down to the section labeled “Port Forwarding on the Comtrend NexusLink 3100u Broadband Router” if you are using the same router.
Port Forwarding on the Cisco Linksys EA2700 Router
If you are using the Cisco Linksys EA2700, you can configure it for port forwarding using your web browser. First, you will need to get the IP address of your router. To do that, click on the Start button (if you’re using Windows, which I am going to assume you are using for the remainder of this tutorial. Otherwise, you will need to search for the equivalent commands for your operating system), type “cmd” (without the quotes), and press the enter key. This will launch a command prompt. From there, type “ipconfig” (without the quotes) and press enter. This will give you a list of the network adapters available on your computer. If you are connected to your network over wireless, you will need to look for the section labeled something like “Wireless LAN adapter Wireless Network Connection”. If you are connected via an ethernet cable, you will need to look for the section labeled “Ethernet adapter Local Area Connection”. The piece you are mostly concerned with is your “IPv4 Address”. It should look something like “192.168.0.*” or “192.168.1.*” where “*” is a number between 1 & 255. Just below the IP address should be a similar address labeled “Default Gateway”. This is the IP address of your router.
With the IP address of your router at hand, open a web browser and type that number into the address bar and press enter. You should now be greeted with a prompt asking for your username and password. If I remember correctly, the default username is “admin” (again, without the quotes) and the password should be left blank. If this doesn’t work for you, do a quick Google search to locate the default username and password. Once you have logged into the router, click on the “Applications & Gaming” tab. In the first empty box on the left, type in a name for your Insteon hub. For mine, I simply called it “Insteon”. In both the External & Internal ports textboxes, you will need to enter the port number you selected during the Insteon hub seutp. If you didn’t change it, it should be “25105”. If you aren’t sure, launch the Insteon app on your mobile device and click the icon at the bottom-right that looks like a cog and click “Edit Settings”. Then click on the “House” option. Scroll down about 75% of the way and you should see your port number. Now would also be a good time to take note of the “Local IP” value displayed a few lines above the port number. You will need to insert the last section of the IP address into the “To IPv4 Address” textbox and check the “Enabled” checkbox in your browser. Make sure you click the “Save Settings” button at the bottom of the page to save your changes. Here is what my settings look like:
Port Forwarding on the Comtrend NexusLink 3100u Broadband Router
At this point you should be able to test your Insteon hub using the Insteon app on your mobile device without it being connected to your wireless network. However, if you are like me, your internet connection probably isn’t connected directly into your Cisco router. For me, I have a DSL modem which connects my Cisco router & home network to the internet. So, I had to take one more step before I could get my Insteon hub accessible over the web. I had to also do port forwarding on my DSL modem as well. I am using the Comtrend NexusLink 3100u broadband router provided by Windstream. This router also includes a switch on the back for ethernet connections and wireless access. So, if you are connected directly to this router and are not using another router or switch as explained above, you will need to do this step anyways.
To access your broadband router, open your web browser and point it to http://192.168.254.254. This is the default IP address of the broadband router unless you (or someone else) has changed it. The first thing you will need to do is to log into the router. I believe the default username and password for this router are “admin” and “admin”. If that’s not correct, you’ll need to look them up as I changed mine on the very first day and can’t remember what they were originally. After you have logged in, click on “Advanced Setup” on the left, click on “NAT”, and again on “Virtual Servers”. On the right, click the “Add” button. On the next screen, change the “Use Interface” dropdown to match whatever interface you are using. Unless you have done something you probably shouldn’t had, you should only have 1 interface available. Next, check the radio button next to “Custom Service” and add something like “Insteon Hub” in the textbox next to it. If you have your Insteon hub connected directly to this router, you will need to enter the IP address of the hub in the “Server IP Address” textbox. However, since I have another router sitting between this router and my hub, I had to enter the IP address of the Cisco router which then forwarded everything on to the hub. Just as before, you will need to set the ports to the port that the Insteon hub is listening on. If you want to get crazy (or you are security conscious like I am), you could have your Insteon hub listen on a port other than the default 25105 port, set this router to listen on a different port, forward requests on this different port to a completely different port on the Cisco router, and then have the Cisco router forward to the new port that you have configured the Insteon hub to listen on. Here’s an example:
DSL router listens on port 33103 and port forwards to the Cisco router on port 29909. The Cisco router listens on port 29909 and port forwards to the Insteon hub on port 24144. The Insteon hub would then be listening on port 24144.
I know that is a lot of port forwarding, but hey, I don’t want people messing with my home automation system without having to work for it first. Besides, not only does my home automation system include control for my lights, it also includes my security cameras, alarm system, fireplace, media center, garage door, computers, and will even include my door locks once I get those in place. So, you can see why I never leave the defaults for anything that someone I don’t know could access easily.
Anyways, you should be ready to test your connection from your mobile device to your Insteon hub now. Instead of using a Virtual Server, you could have also went with “Port Triggering” which works just like explained above for the Cisco router. I have other reasons for why I went with a Virtual Server which I’ll explain another time. For now, here is what your settings should look like for your Virtual Server or for your Port Triggering depending on which you decided to go with. Again, your IP address and port numbers will be different. As I’ve already explained, mine are also different, but I’m using the defaults here to help illustrate how things should work.
If everything worked correctly, you should now be able to control your X10 devices from anywhere in the world using your cellphone or tablet. You can also use your computer if you downloaded the Insteon for Windows app mentioned earlier. This also assumes that your mobile device or computer has internet access and so does your home network where your Insteon hub is located. If you have any problems with anything explained in this article, let me know in the comments below and I’ll try my best to help you out.
In a future article, I will show you how to talk to your Insteon Hub by writing your own apps. I will show you how to create your own mobile apps for Android cellphones & tablets using Java and the Android SDK. I will also show you how to talk to your Insteon Hub using Python and C#. At some point, I also plan on showing you how to connect other devices to your home automation network using things like XBee, RF (radio frequencies), and IR (infrared). This will allow you to control your devices using things like the Raspberry Pi and / or standard remote controls like the one you use for your TV. In fact, I will also be showing you how I control my media center using these same devices too. I can do things like pressing one button to dim the lights, turn on the fireplace, turn on the TV & set it to the correct input, turn on the surround sound, and turn on the Bluray player. I can even have all of this do the same thing based on a timer or even have the lights & music turn on when I pull into the driveway or even turn into the neighborhood using GPS on my cellphone. If you read my article where I show how to use your Raspberry Pi as an FM transmitter, then you can see how this can be used along with your home automation system to provide even more useful events. It’s pretty cool stuff and there are millions of other things you can do using the same equipment I’ve been showing you.
So, until then, share your home automation stories with us in the comments below.
PayPal will open in a new tab.