Aug 252015

Amazon recently competed their Alexa/Echo integration with SmartThings after previously integrating a number of other home automation hubs like Wink and Hue. I jumped on it as soon as it was available in the Alexa iOS app.

Setting up SmartThings with Amazon Alexa (Echo)

As with other SmartThings integrations, the first step will request an OAUTH login to SmartThings, and allow the user to select which devices can be shared with Alexa. At this time, only switch type devices (including virtual switches) appear to be supported. Sensors, complex/multi-types like thermostats, and modes are not supported at this time. After selecting the devices to grant permission, run the discover devices command on Alexa to enables them in the app as well as Alexa voice control. Amazon Alexa also allows the grouping of different devices to make it easier to turn several switches off or on at the same time.

Amazon Alexa device groups SmartThings devices in Amazon Alexa

How well does it work?

As mentioned above, mode changes and phrases are not supported out of the box with this integration, so I’ve been using virtual switches and the “Big Switch for Hello Home Phrases” app (an example of usage here) to create switches that control the mode. So now I can say “Alexa, turn on goodnight”, which will trigger the virtual switch to run “Goodnight!” on SmartThings.

I’ve been using SmartThings with Z-wave switches to control lights and other items. The response time with Echo/Alexa has been quite good – a voice command takes effect in roughly a second. See the following video for a simple z-wave switch demo I recorded – note that Alexa seems to do well with natural speaking pace, rather than other systems which can sometimes hitch between keywords and commands.

Voice control has been a mixed bag over the last few years.  I have had mixed results from a number of different offerings.  However, I’ve been pleasantly surprised at how well Alexa does with voice commands. I’ve been yelling commands from all over the house for a couple of days and Alexa has yet to get a single command wrong. I’m very impressed so far.

Nov 212014

SmartThings does a lot of things well, but their main failing has been support for larger screens. If you have a tablet, you can run the phone interface, but it doesn’t take advantage of the larger format. For use on my desktop computer I installed an Android emulator to have access to the app on my computer without a phone. SmartThings really needs a larger interface, especially if you have a lot of devices.

I ran across a really cool project on the SmartThings community forums about a home automation dashboard for larger interfaces like computer/tablet screens. I finally got around to trying it out and I’m happy to report it is working really well and was relatively easy to setup.

FlorianZ posted the code for the home automation dashboard as well as some excellent instructions on how to get it running for other users. This is a relatively complex task, but if you are at all familiar with HTML and simple command line instructions, you should be able to figure it out due to the comprehensive documentation. A good overview of the project from the creator:

The interface consists of a Dashing installation running on a free Heroku instance. Dashing is a really cool dashboard framework. What I love most about it is how minimalist, yet customizable it is. It’s just a few hundred lines of code on top of some widely adopted web technologies, including Sinatra, Batman.js, Gridsterand Sprockets. You can easily create new backend services using Ruby, and frontend widgets using CoffeeScript, SASS and HTML.

The following screen shot is what my dashboard looks like after some configuration and customization to my devices and settings:

Home Automation Dashboard

The dashboard does a great job of giving you a lot of information at a glance, but it is also interactive as the switches can be turned off and on from the interface. The full thread on the SmartThings forum is a worth a read, as the next step for many has been to take the dashboard and connect it with a motion activated & wall mounted tablet for a pretty slick presentation. Sounds like a good future project…

Nov 072014

I’ve been using home automation as type of morning wake-up alarm for several years, but always found the scheduling to be cumbersome. In most home automation systems you need to rely on motion detection (what if I just got up to use the restroom, but am headed back to bed?) or timer events (what if I need to wake up early one day and not the next?). When I moved my home automation over to SmartThings with IFTTT integration I could see an easier way to accomplish this.

Smart Alarm Clock

My “smart” alarm clock uses a combination of services and devices to accomplish the following things:

  1. Read my calendar to know when my morning wake up should occur (but only if I’m home).
  2. Turn off my white noise machine and change the SmartThings mode from Night to Home
  3. Play the weather report (text to speech) on a Sonos speaker, and then play a local radio station
  4. Has the ability to trigger other SmartThings items during the change from Morning to Home (e.g. turn on lights, switches, etc).

Devices Used

For my smart alarm clock I’m using several different physical devices:

  1. SmartThings home automation hub
  2. White noise machine – Marsona TSCI-330 in my case
  3. GE Zwave outlet (connected to SmartThings) which turns the white noise machine on and off
  4. Sonos speaker (Play:1)

Sonos & White Noise machine

Services Used

Want to see how it works? In order to have everything work together I’m using several services:

  1. Google Calendar
  2. SmartThings
  3. IFTTT with the SmartThings and GCal channels activated

How To

Want to know how it works? I’ll describe exactly how I’ve configured these devices and services to work together:

Create a virtual switch

The creation of a virtual switch will give us a reference point for connecting other SmartApps in the SmartThings system, as well as externally via IFTTT. In order to create a virtual switch you will need to request access at After requesting developer access, select My Devices and create a new device. For the name and label, use something descriptive like “Good Morning Switch”. Set the Type as On/Off Button Tile. You will also be asked to give a device network id, enter a large number as to not interfere with existing devices (I used 399).

SmartThings good morning switch

Set actions for SmartThings Phrases

SmartThings has several built-in phrases (Good Morning! Good Night! Goodbye! I’m Back!) which can control devices as well as the mode of the home hub (home, away, night). In this case, we will be using the Good Night! phrase when we go to bed, and the Good Morning! phrase when we want to wake up in the morning. I’m going to make some adjustments to the actions performed when these phrases are sent to SmartThings.

SmartThings phrases

For the Good Morning! phrase, I’ve added one additional step – turn off the while noise machine that we run while sleeping. This could of course include any other devices you may have which you want to run when you wake up – turn on the coffee machine, the bedroom lights, etc. For the Good Night! phrase I have it already making sure the front door is locked and the lights are all out. I’ve further modified this phrase to have it turn on the sound machine via the zwave switch and turn off the Good Morning Switch. This last detail about turning off the Good Morning Switch may not make sense until the next step.

SmartThings good morning phrase SmartThings good night phrase

Set the switch to change SmartThings modes by using Hello Home Phrases

We want the virtual switch created in the first step to trigger the phrase for “Good Morning!”. To do this, we will need to install an app in SmartThings named “Big Switch for Hello Home Phrases“.

Big Switch for Hello Home Phrases is an app created by tslagle13 for the SmartThings community, and is not available in SmartThings by default. In order to use this app, you will need to add it manually. I’ve created a guide on how to do that here: Add Community Created SmartApps to SmartThings. Some additional information about app creation can be found here: Writing your first SmartApp.

After the app has been added, you can configure a new instance of it in the SmartThings app. I’ve configured this app to turn on the Good Morning! phrase when the Good Morning Switch is turned on. As I’m using this for morning wake-ups, I’m only going to have it happen when the switch is turned on, and only if the mode is Night. I’ve limited the switch to only work in this way because I only want the switch to trigger once per day (and is only reset when the Good Night! phrase is used), and I don’t want it to trigger when I’m not home (SmartThings mode would be set to Away automatically by phone geo-fencing).

Big Switch Good Morning 1 Big Switch Good Morning 2

Add Sonos Weather Speech to Text and Play a Radio Station

I want the Sonos to play a weather report, and then a local radio station. To do this, I need to select one of the Sonos SmartApps from the SmartThings Labs area of the SmartSetup.

SmartThings Sonos Weather App

After the app has been selected, we can begin to configure it. The first item is to set the trigger event. The app supports a lot of different options, but we are going to use the virtual switch created earlier as the trigger for this app. Once triggered I’ve configured the app to play the weather for our zipcode, and then a local radio station at 25% volume.

SmartThings Sonos good morning switch

SmartThings Sonos good morning switch 2

Automate the Schedule with IFTTT and Google Calendar

At this point we have the Good Night! phrase turning on the sound machine and the Good Morning Switch turning the sound machine off and triggering the weather report & radio. Now it is time to automate it to trigger from events configured in my Google Calendar. To do this, I’m using a service named IFTTT (If This Then That) to talk to both GCal and SmartThings. Once you create an account, you will need to activate the Google Calendar & SmartThings channels on IFTTT. For the SmartThings channel you will also need to allow IFTTT access to the Good Morning Switch.


After the channels have been created, you can create a new recipe. Select Google Calendar as the Trigger starting point, and choose Event From Search Starts. There, pick a phrase you want to use to label the time slot you want to wake up which will not also be used by other events. In my case, I’ve used “ST Wakeup” as my search phrase. Note that the event will trigger approximately 15 minutes before the event start. So that means if you want to wake up at 8 AM, you will need to create your event to start at 8:15 AM. Next select SmartThings as the action for the trigger. You should be able to select Switch On and choose the Good Morning Switch from the drop-down.

ifttt action and trigger


All done

After the IFTTT integration has been completed, you only need to do the following to make use of the logic created:

  1. Create named calendar events on your Google Calendar, 15 minutes after the time you want them to trigger (I’ve created repeating events on my calendar, can edit or delete single days if needed).
  2. Use the Good Night! phrase when you go to bed

The beauty of using SmartThings and IFTTT is all of the other possibilities.  For example, perhaps you are using a sleep tracker which integrates into IFTTT, you could have it trigger the wakeup routine instead of a calendar event.

Additional Considerations

There is one way to simplify the above workflow – have Sonos provide the whitenoise as well.  I looked into this but didn’t pursue it much further as I already had a device that was working fine.  There don’t seem to be any white noise streams available for the sonos, but you could try streaming/direct playing a dedicated file hosted on Amazon S3 or something similar.  I started this, but gave up when the creation of a seemless 10 hour white noise MP3 looked a bit more complicated than I was expecting.

One other way to simplify things is to have a physical button or remote trigger the Good Night! phrase, rather than selecting it from the app on our phones.  Thus far it hasn’t seemed worth it, as we usually have phones or ipads handy before we go to bed, but it might be worth looking into at some point.

Oct 302014

One of the great things about SmartThings is how easy it is to develop for and how active the development community is. Users can create SmartApps for specific scenarios, and then use those SmartApps multiple times in their SmartThings environment as needed. Unfortunately, there isn’t an “app store” type concept within SmartThings. Unless a SmartApp has been officially published through SmartThings, each user has to create their own app with the SmartApp code. In other words, everyone has their own unique copy of the SmartApp, rather than one shared app code base. This is great if you want to make changes to existing apps, but adds extra complexity for regular usage and can lead to maintenance issues down the road (though I haven’t seen any examples yet of the SmartThings platform breaking older versions of apps). Ultimately for regular users this can be frustrating – there are a lot of great SmartApps created by the community, but it is not so simple to get them up and running on your SmartThings hub. This guide is an attempt to demystify the SmartApps process a little bit.

Add a SmartApp to SmartThings

Access to My SmartApps is all controlled through the development website for SmartThings, If you already have SmartThings configured, you can use your existing login at the site. However, you will need to enable access to the development environment once logged in, or you will not see all of the options available. After logging in to the website, select the My SmartApps menu link. Once that page loads you will see any SmartApps you have created, as well as a button: + New SmartApp.

For this guide we will be adding an existing community app named “Big Switch for Hello Home Phrases”. This app allows you to use a virtual or physical SmartThings switch to run a Hello Home Phrase. Hello Home Phrases allows actions and mode changes, like Home to Away or Night to Home.

Click the +New SmartApp button. It will ask you to enter some information about your app, add the basic required data in (app name, author, app description) but don’t worry about the rest of the data as it will be replaced by the next step. When finished, select the Create button at the bottom of the screen.

New Smart App

After the app has been created, you will be looking at a code view of the app which was just created. Don’t worry, there is no coding needed. In the top right corner of the screen there is now a drop-down named Browse SmartApps, select it and then Browse SmartApps again.

Browse SmartApps

You will now see a large list of preconfigured Community SmartApps. Find the Big Switch for Hello Home Phrases under the Convenience group and select it. You will now see an Overwrite button in the lower right.

Select Big Switch

Select that Overwrite button and you will see the code from the SmartApp appear in your version of the app. Next, select Save, and then Publish, For Me. A green success message should appear “SmartApp published successfully for me”. The SmartApp is now published and ready to be installed & used in your SmartThings environment.

Installing & Using the SmartApp

Now that the SmartApp has been published, it can be installed and configured. SmartApps are added via the SmartSetup, which is started with the large + icon on in the app.


After the SmartSetup screen loads, swipe to the right until you see the My Apps category. There you should see the app which was just published. One key thing to note – I wasn’t able to figure out why the My Apps category wouldn’t show up under SmartSetup the first time I tried this. I had to log out of the app, and then back in again before My Apps would appear – simply relaunching and refreshing the app was not enough.

My Apps

When you select the app from My Apps it will launch the configuration & installation screen for the app. There you can configure all of the available options and save your settings.

Configure SmartApp

Once configuration has been saved, the app will typically show up under the “Convenience” section of the main SmartThings app, where it can be further configured or uninstalled.

Oct 272014

Xipiter has a great write-up on how they hacked the MiCasaVerde Vera quickly and easily:

The device has embedded SSH private keys on THE IMMUTABLE sections of the firmware image so we know that all these devices have the same embedded ssh key. It uses that key to access the manufacturers backend and set up ssh port forwards… While this a simple little device, the ability to attack it on the local network and potentially reach it THROUGH the manufacturers own servers as a beachhead to other computers on your home network is a reminder of why devices like this need to be understood better

This is a good illustration how the funky remote access methods for Vera got them into trouble. They would be better served with the API keys & calls other IoT hubs have been focused on. If you are running a Vera, it may be worth investigating offline mode until there is some confirmation that the remote access is possible or not.

Oct 182014

As I’ve been moving all of my home automation projects over to the SmartThings environment, I’m expanding my number of devices and scenarios in order to take full advantage of the easy monitoring and alerts which are possible within the SmartThings ecosystem.

The Problem

Leak detectors are normally pretty simple devices; water conductivity completes an electric circuit and a buzzer or alarm sounds.  This is great if you are within listening distance, but next to useless if you are away from home or even in a different part of the home.  Having recently seen the damaged caused by a burst hose at a friend’s house, the benefits to being alerted to a leak as quickly as possible are obvious.

When I initially started looking at z-wave devices to detect leaks and floods I found some things I didn’t like about most of the products available.  The first design flaw I found is that many of the devices were designed to sit on the same surface which was going to flood – they didn’t have a detachable monitoring lead.  This means that there is a pretty good chance that the devices are going to fail after or during a flood, as they are not designed to be waterproof.  The second thing I didn’t like about most of the devices on the market was price, with many starting around the $50 mark.

The Solution

During my search for an affordable z-wave smoke alarm I discovered that many devices made for the Lowes Iris system were z-wave compatible.  Searching that further I found that there was a leak detector made by Utilitech which was reasonably priced at around $30 which also worked with SmartThings – Utilitech Water Leak Detector White Indoor Flood Sensor (Works with Iris) Item #: 422362 | Model #: TST01-1.

Utilitech Water Leak Detector

I purchased one and put it to use with my SmartThings system.  First up, hardware impressions.  It appears to be well made, all of the pieces have a solid feel and the mounting is well designed (they also include a lot of mounting tabs if you have particularly long cable runs).  The device has a separate lead for the water monitor so that the device can be mounted above where the monitor contacts are mounted.  The leak detector was easy to pair with SmartThings and a number of SmartApps are suggested after the device is configured in the SmartThings system.  I chose to work with some of the included SmartApps for Damage & Danger to do two things when water is detected – send a push alert to my phone (and any devices connected to the SmartThings account), and send a text message to my telephone number.

 IMG_0805.PNG IMG_0804.PNG IMG_0806.PNG

As with my smart smoke detection I used the Sonos integration with SmartThings via Sonos Notify with Sound to send a text to speech (SmartThings detected a flood) auditory alert about the leak as well.  I tested the alerts a number of times and it seemed to be fairly responsive, typically the SMS & push message updates were received on my phone in under 5 seconds.  In total the installation of the leak detector and setup of the SmartApps had taken less than 20 minutes.  Not bad for a bit more intelligence at home.

Save 10% on SmartThings
If you are interested in using SmartThings, this referral link will get you 10% off any order containing a Hub or Kit.

Oct 112014

As I’ve switched my home automation from Vera to SmartThings I’ve also been expanding my network of z-wave devices at home. Since SmartThings does such a great job with different notification options I’ve also been looking more into monitoring our home for different kinds of damage or danger. One of the first tasks on the agenda was to make our fire detection much smarter and able to alert us even if we are not at home. I looked around at the available market for z-wave smoke detectors and found a bit of a mixed bag. I could splurge and purchase the Nest device at roughly $100, or go with the Monoprice version of the Everspring Z-Wave Smoke Detector which runs at roughly $40.

However, after reading through the SmartThings forums a lot of people were having success using some of the devices which are certified for Lowe’s Iris Home Security and Automation system. The system runs z-wave as well and a lot of the devices are compatible with SmartThings since they both speak z-wave. First Alert makes a battery powered smoke detector with a model name of “ZSMOKE” which has built in z-wave and only costs $29.97. Note that they also make a CO2 z-wave model, however I already CO2 detection in the house, and I’m not as worried about being alerted to CO2 even when I’m away from the house. The other thing to know about CO2 detection is that the detection components deteriorate much quicker than they do for smoke alarms, which can lead to a lot of false alerts 4-6 years down the road.

IMG_0808.PNG IMG_0807.JPG

The smoke detector was easy to install into SmartThings (simply hold the test button as you insert the batteries to pair it to the system) and mount in an existing bracket on the ceiling. The smoke detector will continue to act as a regular (dumb) alarm until it is extended further on the SmartThings network with some SmartApps to go with it.

IMG_0809.PNG IMG_0812.PNG

I’ve added several different SmartApps now that my SmartThings system has smoke detection:

Damage & Danger


SmartThings has some out of the box SmartApps which are already configured for common scenarios with smoke detectors. There are several different options within these SmartApps, which all fall under the “Damage & Danger” category. Using these apps my SmartThings system will now do the following for any smoke alert:

  • Send an alert via the SmartThings app to our phones (when it triggers and when all clear)
  • Send a text message for the smoke alert (when it triggers and when all clear)
  • Turn on specific lights (most using GE z-wave switches)
  • Unlock the front door (Kwikset SmartCode 914 Series Z-Wave Deadbolt which I’ll cover in a future post)

Sonos Notify With Sound


Sonos has some pretty cool integration options with SmartThings, some of which I’ll post further about in the future. For the smoke alarm, there is an app named “Sonos Notify With Sound” which will play a custom alert on any configured Sonos speakers when smoke is detected. This isn’t the most critical of features, as the smoke alarm is plenty loud, but generally I tend to think the more the merrier when it comes to fire alarms.

Low Battery Notification

SmartThings already has some low battery notifications built into the system, however there are other apps which people have created to select specific devices and battery levels and send an alert once they cross a specific threshold. I’ve installed one which I have configured to alert me when devices hit 10% battery.

Somethings with SmartThings are not always easy to setup and configure, but this was completely painless. The device works well and paired quickly, and SmartThings has most of the functionality needed in the SmartApps out of the box.

Save 10% on SmartThings
If you are interested in using SmartThings, this referral link will get you 10% off any order containing a Hub or Kit.

Jun 072014

I’ve been using Vera and Z-wave for a number of years as my home automation solution. As I previously posted, Home Automation: Motion sensors and lights with VERA scenes (micasaverde z-wave), sometimes the Vera system requires some workarounds with smart switches or timers in order to accomplish logic tasks for scenes. This can get quickly convoluted when you have complex logic involved or multiple schedules.

For Vera you typically need to learn to write Lua code for more complex actions, however there is a plugin which makes it easy to do in a mostly point and click operation – Program Logic Event Generator (PLEG) from RTS Services. This plugin is free for use up to 30 days, and a full license is a very reasonable $5.50.


The first step is to install the PLEG plugin in your Vera system. In this case there are actually two plugins which need to be installed, the Program Logic Event Generator Plugin and the Program Logic Core Plugin. After installing the plugins, refresh your browser window. By default, PLEG will install a new device named “Program Logic Event Generator”. Edit that device to start using an instance of the plugin (multiple instances can be added for different tasks).

Program logic event generator

PLEG first allows users to set the Inputs for a system. The inputs could be a trigger, schedule, or some element of device properties (e.g. dimmer level). One of the powerful things about PLEG is that it lets you configure a window of time for a scheduled, start and stop values. This sounds simple, but this functionality is not easily available in the default Vera interface. In my example, I have two triggers, one is a schedule from 11 PM until 30 minutes before sunrise, and the other is a tripped motion sensor which has been armed. One thing to note about names – Logic used in the next step uses the names previously saved for triggers, schedules, or properties in free text (no point and click), so it helps to use descriptive names.

PLEG triggers

PLEG schedules

After inputs come Conditions. Conditions are the logic lines which need to be followed for a specific action. Each line must evaluate to true in order to fire the Condition Name (also the Action). In my example, the LightsOn action will trigger only if ArmedSensorTripped and From2300toDawn are both true. For LightsOff, the action will fire when 20 minutes has passed since the LightsOn condition was fired. My example only has two different states, but several can be used here.

PLEG conditions

After Conditions have been defined, Actions can be associated to each. The UI behavoir here takes a little getting used to – when the Edit button is selected for a Condition, the PLEG interface will go away, and will be replaced with a devices list. After selecting the device actions (in my case turning two lights on or off) select the FINISHED button at the top of the screen to go back to the plugin.

PLEG action

PLEG actions

Once finished with Actions the new plugin logic is ready to go, after saving the settings in Vera. My example is quite simple, but there are many other ways to make use of this powerful plugin. There are some good examples on the RTS page here: PLEG Usage and a message board here with some examples & troubleshooting posts: MiCasaVerde Program Logic Plugins.