Insteon and ISY 994i Home Automation: First Steps with Motion Sensors

After settling on Insteon as my brand of choice a year ago, partially because they have an excellent Canadian supplier in AARTech, its been working very well for a entry level configuration. I setup the initial system with common areas (entry, kitchen, main hall and bedroom) with lighting control, along with some motion detectors for some of those rooms to properly automate said lights. To date it’s worked very well with the basic Insteon Hub (2242-222) and a variety of mobile apps. So far the Windows Phone development by Insteon themselves has been mixed…the basics work, but a lot of future features are not available, and the app did not work at all on Windows Mobile 10, but no Apple or Android issues.

With the basics all working fairly well and some experience behind me, the next step was to get a smarter central brain this year in the form of the Universal Devices ISY994i Controller. With this controller you can work with all the Insteon equipment and sensors, but gain significant smart control via a built in program and logic builder allowing much more complex and customized operations. So far after a weekend of playing with it I am very impressed, and certainly have been forced to refresh myself on some basic programming logic around If/Then/Else statements.


Adding all the devices was very simple, Universal Devices instructions lead you to basic setup and login, and everything but motion sensors was just a matter of telling the ISY Admin console to “listen” and then walking around the house and pressing the ‘set’ button on each device. In the case of motion sensors I had to open the back of them to access their set button and put them into listen mode, and then manually add them by address printed on the sensor, as they communicate differently being battery operated.

With all the devices added, one of my first challenges I wanted to take on was more advanced control of the lights via the motion sensors. In my Insteon Hub setup it’s a simple linking that says motion sensor A is a controller for kitchen lights and when triggered should remain on for x minutes if no further motion is detected. This produced the issue of working in the kitchen at the counter doing food prep and not moving enough before the x minutes timeout thus being left in the dark to fail your hands around. No method exists in the Insteon Hub system to provide for an override type function once the link between motion sensor and lights is created, if you manually turn the light on, the motion sensor will still turn the lights off after the timeout minutes!

Thus, the solution via the ISY system is to create a program so that you can run on motion detectors for day to day wandering, but have some form of override to tell the system to ignore motion detector and keep the lights on. The primary solutions I saw before purchasing was using an Insteon Dimmer switch, and having the motion controller set the lights to 100%, while having a manual press of the dimmer switch ‘on’ go to 99%. Visible not noticeable, but a program could then tell the motion controller that if lights are not at 100%, don’t turn them off, makes sense! My issue…I’m not using dimmable lights in my kitchen and don’t really want to change out my lighting fixture (older fluorescent with non-dimmable ballast).

Once I started exploring, I found that via the ISY programming logic it has for regular On/Off switches (2477S) allows for single press “On” as well as quick double press “Fast On” as separate operations. This allows me to write the program sets below to operate the lights as normal with motion detectors, and if you just single press the light on it operates the same and turns off if not enough motion is sensed:

KitchenLightsAutoIf you move around enough, then anytime during the 8 minutes I’ve set the motion sensor sees you have moved and the lights are already on, so jumps to the else statement and starts the 8 minute counter over again. If the lights are off then it turns them on and starts the counter. I’ll elaborate on the time settings in the If statement shortly. Take note however that to use this program, you cannot have the motion sensor in a scene with the lights, as that creates the more basic Insteon Hub type connection which will override the program, I fought with this at the start. Additional note, because I’m controlling the off function via the program, the motion sensor device options should be always sensing, and only be sending “on” commands. The “On commands only” option disables the sensor from using it’s internal Timeout minutes setting:

MotionOptThis leads up to the “override” program I built which takes advantage of the double-press “Fast On” option of the light switches. In this room I have both the main light switch as well as a wireless remote mounted to a wall where no switch/electrical box existed, but I wanted a switch. The If Statement looks for either of the buttons to be double-pressed “Fast On”, and then proceeds to disable my regular motion sensor automatic light control program. It then waits an hour and re-enables the automatic light control program so that I still gain the benefit of not leaving a light on unintentionally for an extended period:

KitchenOverIn operation it works perfect and as a side effect requires no special training or convoluted instructions and works with my regular non-dimming lights. I used a similar program to take advantage of the On vs Fast On function for my big yard light to tell it a single press means turn the light on for 25 minutes while a double press means turn the light on for 60 minutes.

As for both the time window in my Kitchen Lights Auto program and as seen in the Override program the Auto Night program is another handy usage of the ISY program control. In this case I wanted to reduce how long the motion activated lights stay on in the middle of the night as it’s probably cat activated, and if not it’s generally a quick pass through. My solution was to have part of the If Statement for daytime hours to use longer timeouts as desired, but then late at night have the system know it’s the middle of the night and my hallway light outside the bedroom does not need to be on for 5 whole minutes! But it did require a slight rework of the logic compared to the main Lights Auto programs for each room:KitchenLightsAutoN

Namely I had to move the entire On/Wait/Off command set into the Then statement; otherwise during the daylight hours when this program had the Wait/Off portion in the else statement the If statement was “False” based on the time of day, which caused it to bump to the Else statement and turn the lights off faster than the main daytime Lights Auto program. In both cases my “Fast On” override program disables both the daytime and night program, so if I am doing late night work or entertaining I can always override and keep the lights on.

So there we have it! First steps this weekend transitioning from the basic Insteon Hub to the more advanced ISY994i controller and the many cool things it lets me do! Next up I’ll do a post as I start playing with MobiLinc, a mobile app meant to talk to the ISY controller which offers some very cool advanced features including Geo-Fencing! Look forward to that one next!


Scott Haner

Thanks for reading TechZerker! I’m Scott, a Canadian tech professional for over a decade with a wide range of experience. I created TechZerker as my own source to talk about a variety of tech subjects, from reviews of hardware I get my hands on, challenges I see in my tech work, gaming with focus on nostalgic gaming (games over 10-ish years old, but not Retro), and more recently my explorations in Linux and Linux gaming as a long time Windows Insider and fan. I am passionate about the tech I work and live with and enjoy a good, intelligent discussion on all these topics.