Using Indigo 7 for Home Automation with a Mac


Back in 2013 I moved from using a very good Windows program called mControl for home automation control over to Indigo for Mac OS. mControl worked great for my needs then but I didn’t want to dedicate an additional computer to the home automation and video recording tasks since I usually left my iMac running anyway.

Indigo looked like an excellent choice and over the years and it has indeed proven to be a great software package for home automation control from a Mac. I realized that even though I’ve blogged about some of the things that I’ve done with Indigo I haven’t really mentioned my overall experience with the software.

It’s now on version 7 and though the cost has risen this is largely due to improved software support and the inclusion of the required licensed technology needed to control Z-Wave compatible door locks. Indigo is very extensible; one can find a number of community-built plugins and it also supports scripting via Python.

I wouldn’t recommend it for someone that isn’t very tech savvy; there are other consumer appliances more suitable for basic home usage, but if you want to do anything more than have a few automated tasks (for example, anything that requires a good bit of logic and virtual devices or variables) you’ll need something like Indigo.

At our house I do use a Wink system and it works fine there but it’s not capable of doing much more than running a few automated tasks; consumer appliances (usually cloud-connected) currently don’t offer very much in this realm. But at the apartment I’m still using Indigo and have moved into some more advanced home automation interactions.

With Indigo I now have several actions that are dependent on the status of other devices, virtual devices and variables. I’m also using some Bluetooth proximity detectors to provide additional enhancements and in the past I’ve done some more interesting things that I currently don’t have setup.

I highly encourage anyone with more than a passing interest in home automation, and a Mac that you’re willing to leave powered on all of the time, to look into Indigo. The initial cost may seem high but when you consider the basic cost just to purchase a consumer appliance hub such as Wink or SmartThings, and then potential issues with any of your existing equipment, you may find that the savings aren’t really there in the long run. Indigo works with X10, Insteaon and Z-Wave devices as well as some other devices that don’t use those protocols.

Moving from mControl 3 (Windows) to Indigo 6 (OS X) for Home Automation



The Short Version: I moved VPN, home automation control, and video recording from an ASUS eeeBox PC (Windows) to my iMac (OS X Mountain Lion). VPN was changed from PPTP to L2TP using iVPN to control the server. Video recording is with the same program (Vitamin D Video Pro) using the same license. mControl was dropped and I’m now using Indigo 6 to control everything.

For home automation control I’ve been running mControl over the past few years. The development team rarely updated the software but rather than invest in a different package I went ahead and upgraded to version 3 when it was released. The software was running on an ASUS system I had setup at the house for managing home automation and security video recording.

Continue reading

Loss of X10 Control Using a SmartHome 2413U PowerLinc with mControl 3 (Build 4346)


The Short Version: mControl 3 Build 4346 caused problems with controlling X10 devices. Rolling back to a previous build restored functionality.

I recently upgraded my version of mControl 3 to Build 4346. Unfortunately, I soon noticed that I was no longer able to control my X10 devices, including the virtual X10 switches I use to control some macros, from mControl. The log showed mControl was sending the commands but it was apparent that they weren’t actually reaching the controller.

I’m still working on shifting away from using X10 devices. At the moment I have a mix of Insteon and X10 in the house and the 2413U works well since it controls both Insteon and X10.

I started looking for a solution and it didn’t take long to find a new post in the Embedded Automation forums in which other users of this build were experiencing the same problem. Over the weekend I tried a few tricks (disabling unused drivers, updating other software) but finally concluded that until a new release that addresses this problem is available I’d simply have to roll-back to a previous version.

Going back to the previous build that I was using (the first non-beta version of mControl 3) solved the X10 communication problem. mControl is back to managing both Insteon and X10 devices properly.

Triggering Music from mControl


The title of this post is more general than the actual task. Specifically, I implemented a new method to play a different song for each weekday the first time a motion sensor is triggered.

A while back I  played a song from iTunes whenever a specific event was detected in mControl (I’ve used two different methods to handle this). After I upgraded from version 2 to version 3 of mControl I held off on adding this capability back into the macros. The method for using iTunes worked fine but this time around I wanted to find something simpler to use that could be enhanced via scripting.

This time I used a free command-line utility called cmdmp3 that can play an MP3 file. In mControl I added a new item to a macro (Run Application), which executes a batch file that contains the necessary command-line parameters to play the songs. The batch file actually plays a different song for each weekday.

I’ve included the basic framework for the batch file. The code used to get the current day of the week and then run specific sections of the batch file was obtained from a forum post.

The batch file could use some refinement. For example, I had planned to place each song path in its own variable, but I had some problems getting the variables to work properly as parameters for cmdmp3. If I had worked that out then each section would simply have a song variable assigned to another variable that would serve as the parameter for cmdmp3.

Eventually I’d like to make the song selection randomized, which would considerably shorten the necessary code for the batch file by eliminating the test for the day of the week along with the related sections.

@echo off
for /f %%a in ('date /t') do set DAY=%%a
if %DAY%==Sun goto :sun
if %DAY%==Mon goto :mon
if %DAY%==Tue goto :tue
if %DAY%==Wed goto :wed
if %DAY%==Thu goto :thu
if %DAY%==Fri goto :fri
if %DAY%==Sat goto :sat

c:\tools\cmdmp3win.exe "filepath"
goto next

c:\tools\cmdmp3win.exe "filepath"
goto next

c:\tools\cmdmp3win.exe "filepath"
goto next

c:\tools\cmdmp3win.exe "filepath"
goto next

c:\tools\cmdmp3win.exe "filepath"
goto next

c:\tools\cmdmp3win.exe "filepath"
goto next

c:\tools\cmdmp3win.exe "filepath"
goto next


Everything after “:next” can include whatever you may want to add after the song is played. If you don’t need to add anything then you can simply leave it as it is.

Updated 11/21/2011: I seem to have run into a familiar problem – executing external programs from within mControl. The batch file itself is sound but either mControl has a bug or the other program I’m using to execute external applications isn’t working properly. It may just be a configuration issue but I’ll need to spend some time on it before I can provide a proper solution for making this work from mControl.

Replacing X10 Motion Sensors (MS14A) with Insteon Motion Sensors (2420M)


The Short Version: The Insteon motion sensors cost nearly ten times more than the X10 motion sensors but they are very reliable (as long as you have the necessary APs to send the signals over a reasonable distance or through several walls).

Ever since I started using home automation devices I’ve relied on X10 motion sensors for several different tasks. Unfortunately, I’ve noticed consistent communication problems between the X10 devices and the computer. Due to the manner in which Insteon devices communicate I haven’t noticed issues with those devices. Some of the X10 light switches don’t respond from time-to-time. That’s not as big of a concern as having problems with the motion sensors.

Reluctantly (because of the cost), I ordered Insteon motion sensors to replace the X10 sensors. I paired the sensors with the PLC and then added them to the device information in mControl. Communication problems seemed non-existent. Sure, they cost considerably more than X10 sensors, but what good are X10 sensors if they don’t work as needed?

The Insteon motion sensors also have a red LED that pulses at a regular interval. However, unlike as with the X10 sensors, it’s very noticeable. Fortunately, it can be disabled, which I did with one of the sensors.

Updated 12/12/2011: Don’t forget to link your motion sensors to an AP or the controller itself.

mControl v3 Upgrade


Embedded Automation has officially released version 3 of mControl. There are several changes including new modules that can be purchased individually to additional features. Based on what I’ve seen it appears that the Base version, available for $170, includes almost everything that version 2 came with.

I wasn’t thrilled about the price until I learned that owners of previous versions of mControl can get an upgrade discount of $150, cutting the price down to only $20! Tonight I submitted my request and mControl 2 license and plan to purchase the upgrade as soon as the discount is available under my account.

For more information about upgrading there is a guide available on their store product page.

Updated 10/04/2011: Last night I purchased my upgrade license, which was only $20 after the discount. The only problem I had was applying the new license. I had to delete the license key file that I used with the beta version before I could re-install mControl 3 and apply the new license.

Waking Wireless Speakers from Standby for Audio Output (Windows 7)


I recently purchased a set of wireless speakers, which I’ve connected to my ASUS EeeBox PC. They work well but I have encountered a problem that is common to wireless speakers – they go into a standby mode and require a few seconds to initialize. For playing music this isn’t a problem. However, using the speakers for text-to-speech can be a problem as the speakers may not initialize before the computer has finished speaking. In addition, Windows text-to-speech output doesn’t seem to have a signal strong enough to wake up the speakers anyway.

Continue reading