Postscapes is an independent review site. We may earn money when you click on links on our site. Learn more.

Smart Lock Scout

Smart Home Scout

The source for smart home buying advice.

Smart Home Assistant / Connected Product Apps Image

Smart Home Assistant / Connected Product Apps

Looking for a universal app to manage all of your connected devices?

The equation of one app required for every connected device you own not adding up anymore?

Below we take a look at an emerging number of smart home apps that integrate with a multiple connected products and allow you to set rules and workflows to manage them based on grouping actions, sensor readings, and your previous interactions with the devices.

The following guide will:

  • Help narrow down based on specific integrations
  • See app reviews for Apple Itunes/iOS and Android
  • Drill down on what products are compatible with each smartphone app

11/18/2019

Smart Home App Comparison Guide

Who stands out with the best user interface and rules engines?

Yonomi

Manage all your smart home devices remotely using your mobile phone, Amazon Alexa, Google Home, Apple Watch, or Android Wear.

iOS: 4.2/5 (879 Ratings)

Android: 3./5 (821 Ratings)

olisto

Create and customize triggs with the easy Olisto WHEN THEN rule engine.

iOS: 3/5 (5 Ratings)

Android: 3.5/5 (182 Ratings)

Closed / Acquired

  • Thington (Acquired by Eero)
  • Stringify (Acquired by Comcast)
  • Gideon
  • Yeti

Simple One to One Apps

These apps unify your different smart home products into one app, but generally lack more advanced features like linking rule-sets together.

"Save time and control your world by connecting DO Button to Philips Hue, LIFX, Google Drive, Nest Thermostat, WeMo, Twitter, Evernote, Slack, and hundreds of apps and devices you use every day."

myHome Plus controls entire home in one app, full-feature supporting all Apple HomeKit accessories, Nest Thermostat, Nest Protect, Nest Cam, WeMo Switch, WeMo Insight, WeMo Light Switch, and WeMo Motion; and makes the days of switching apps to control different products over.

Details

With ImperiHome, control your home automation systems and connected objects from a single and highly customizable interface.

Additional

CastleOS

Product Specific

Smart Home Hubs and Security Apps

Smart Home Assistant / Connected Product Apps 1 image

ADT Pulse

  •  4.8/5 with 539,100 Reviews
  •  4.8/5 with 26,225 Reviews
Smart Home Assistant / Connected Product Apps 2 image

Frontpoint App

Smart Home Assistant / Connected Product Apps 3 image

Nest

Smart Home Assistant / Connected Product Apps 4 image

SimpliSafe

  •  4.8/5 with 49,900 Reviews
  •  4.8/5 with 6,000 Reviews
Smart Home Assistant / Connected Product Apps 5 image

SmartThings

  •  4.0/5 with 7,300 Reviews
  •  4.2/5 with 303,918 Reviews
Smart Home Assistant / Connected Product Apps 6 image

Vivint Smart Home App

  •  4.6/5 with 16,400 Reviews
  •  4.9/5 with 59,022 Reviews
Smart Home Assistant / Connected Product Apps 7 image

Wink

  •  2.9/5 with 484 Reviews
  •  3.2/5 with 8,222 Reviews
Smart Home Assistant / Connected Product Apps 8 image

XFINITY Home

  •  4.5/5 with 6,500 Reviews
  •  4.5/5 with 36,922 Reviews

Smart Door Lock Apps

Smart Home Assistant / Connected Product Apps 9 image

August

  •  4.8/5 with 60,400 Reviews
  •  4/5 with 5,664 Reviews
Smart Home Assistant / Connected Product Apps 10 image

Gate

  •  3.1/5 with 18 Reviews
  •  3/5 with 51 Reviews
Smart Home Assistant / Connected Product Apps 11 image

Kevo

  •  4.5/5 with 1,400 Reviews
  •  3.8/5 with 5,359 Reviews
Smart Home Assistant / Connected Product Apps 12 image

Kwikset Premis

  •  2/5 with 114 Reviews
Smart Home Assistant / Connected Product Apps 13 image

Lockly

  •  4.2/5 with 21 Reviews
  •  4.4/5 with 43 Reviews
Smart Home Assistant / Connected Product Apps 14 image

Nuki

  •  4.7/5 with 87 Reviews
  •  4.2/5 with 2,497 Reviews
Smart Home Assistant / Connected Product Apps 15 image

RemoteLock

  •  2/5 with 4 Reviews
  •  3.2/5 with 24 Reviews
Smart Home Assistant / Connected Product Apps 16 image

Schlage Home App

  •  4.7/5 with 9,800 Reviews
  •  4.3/5 with 855 Reviews
Smart Home Assistant / Connected Product Apps 17 image

Sesame

  •  3.4/5 with 45 Reviews
  •  3/5 with 254 Reviews
Smart Home Assistant / Connected Product Apps 18 image

TTLock

  •  3.5/5 with 22 Reviews
  •  4/5 with 154 Reviews
Smart Home Assistant / Connected Product Apps 19 image

U-tec

  •  3.4/5 with 81 Reviews
  •  2.5/5 with 339 Reviews
Smart Home Assistant / Connected Product Apps 20 image

Ultraloq

  •  3.9/5 with 61 Reviews
  •  4/5 with 219 Reviews
Smart Home Assistant / Connected Product Apps 21 image

Yale Connect

  •  3.5/5 with 4 Reviews
  •  3.2/5 with 60 Reviews

Smart Door Locks
In the market for a smart door lock?

These connected home apps are tied to one device or hub at their core and have various levels of sophistication in terms of rules engines, schedule based interactions, etc

Pre-order / Coming Soon

Voice Control Focused

Experience the first voice activated home automation system for high-end homes.

Details

Mosaic allows you to control both your smart devices and workflows through talk, chat and type platforms.

DIY and Open Source

open

OPENHAB

The open Home Automation Bus (openHAB) project aims at providing a universal integration platform for all things around home automation. It is...

mycroft

MYCROFT

Mycroft uses open software to process natural language, determine your intent and take action.

HOME ASSISTAN

HOME ASSISTANT

Home Assistant is an open-source home automation platform running on Python 3. Track and control all devices at home and automate control....

Additional resources

[gravityform id="38" title="false" description="false" ajax="true" tabindex="49"]
<div class='gf_browser_chrome gform_wrapper' id='gform_wrapper_38' ><div id='gf_38' class='gform_anchor' tabindex='-1'></div><form method='post' enctype='multipart/form-data' target='gform_ajax_frame_38' id='gform_38' action='/smart-home-assistant-product-apps/#gf_38'> <div class='gform_body'><ul id='gform_fields_38' class='gform_fields top_label form_sublabel_below description_below'><li id='field_38_2' class='gfield field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label gfield_label_before_complex' >Your Name</label><div class='ginput_complex ginput_container no_prefix has_first_name no_middle_name no_last_name no_suffix gf_name_has_1 ginput_container_name' id='input_38_2'> <span id='input_38_2_3_container' class='name_first' > <input type='text' name='input_2.3' id='input_38_2_3' value='' aria-label='First name' tabindex='50' aria-invalid="false" /> <label for='input_38_2_3' >First</label> </span> </div></li><li id='field_38_3' class='gfield field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_38_3' >Can you share a high level overview of what you are looking for?</label><div class='ginput_container ginput_container_textarea'><textarea name='input_3' id='input_38_3' class='textarea medium' tabindex='54' aria-invalid="false" rows='10' cols='50'></textarea></div></li><li id='field_38_4' class='gfield field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_38_4' >Best way to reach you?</label><div class='ginput_container ginput_container_text'><input name='input_4' id='input_38_4' type='text' value='' class='medium' tabindex='55' aria-invalid="false" /></div></li> </ul></div> <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_38' class='gform_button button' value='Submit' tabindex='56' onclick='if(window["gf_submitting_38"]){return false;} window["gf_submitting_38"]=true; ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_38"]){return false;} window["gf_submitting_38"]=true; jQuery("#gform_38").trigger("submit",[true]); }' /> <input type='hidden' name='gform_ajax' value='form_id=38&amp;title=&amp;description=&amp;tabindex=49' /> <input type='hidden' class='gform_hidden' name='is_submit_38' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='38' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_38' value='WyJbXSIsIjI0MzNjYTY3YTUxNWM5ZTM5NmFkOWNiZWJiMjkyMDYyIl0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_38' id='gform_target_page_number_38' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_38' id='gform_source_page_number_38' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> </form> </div> <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_38' id='gform_ajax_frame_38'>This iframe contains the logic required to handle Ajax powered Gravity Forms.</iframe> <script type='text/javascript'>jQuery(document).ready(function($){gformInitSpinner( 38, 'https://www.postscapes.com/wp-content/plugins/gravityforms/images/spinner.gif' );jQuery('#gform_ajax_frame_38').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_38');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_38').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_38').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_38').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_38').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_38').offset().top - mt); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_38').val();gformInitSpinner( 38, 'https://www.postscapes.com/wp-content/plugins/gravityforms/images/spinner.gif' );jQuery(document).trigger('gform_page_loaded', [38, current_page]);window['gf_submitting_38'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}setTimeout(function(){jQuery('#gform_wrapper_38').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_38').offset().top - mt);jQuery(document).trigger('gform_confirmation_loaded', [38]);window['gf_submitting_38'] = false;}, 50);}else{jQuery('#gform_38').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger('gform_post_render', [38, current_page]);} );} );</script><script type='text/javascript'> jQuery(document).bind('gform_post_render', function(event, formId, currentPage){if(formId == 38) {} } );jQuery(document).bind('gform_post_conditional_logic', function(event, formId, fields, isInit){} );</script><script type='text/javascript'> jQuery(document).ready(function(){jQuery(document).trigger('gform_post_render', [38, 1]) } ); </script>
[gravityform id="38" title="false" description="false" ajax="true" tabindex="49"]
<div class='gf_browser_chrome gform_wrapper' id='gform_wrapper_38' ><div id='gf_38' class='gform_anchor' tabindex='-1'></div><form method='post' enctype='multipart/form-data' target='gform_ajax_frame_38' id='gform_38' action='/smart-home-assistant-product-apps/#gf_38'> <div class='gform_body'><ul id='gform_fields_38' class='gform_fields top_label form_sublabel_below description_below'><li id='field_38_2' class='gfield field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label gfield_label_before_complex' >Your Name</label><div class='ginput_complex ginput_container no_prefix has_first_name no_middle_name no_last_name no_suffix gf_name_has_1 ginput_container_name' id='input_38_2'> <span id='input_38_2_3_container' class='name_first' > <input type='text' name='input_2.3' id='input_38_2_3' value='' aria-label='First name' tabindex='50' aria-invalid="false" /> <label for='input_38_2_3' >First</label> </span> </div></li><li id='field_38_3' class='gfield field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_38_3' >Can you share a high level overview of what you are looking for?</label><div class='ginput_container ginput_container_textarea'><textarea name='input_3' id='input_38_3' class='textarea medium' tabindex='54' aria-invalid="false" rows='10' cols='50'></textarea></div></li><li id='field_38_4' class='gfield field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_38_4' >Best way to reach you?</label><div class='ginput_container ginput_container_text'><input name='input_4' id='input_38_4' type='text' value='' class='medium' tabindex='55' aria-invalid="false" /></div></li> </ul></div> <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_38' class='gform_button button' value='Submit' tabindex='56' onclick='if(window["gf_submitting_38"]){return false;} window["gf_submitting_38"]=true; ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_38"]){return false;} window["gf_submitting_38"]=true; jQuery("#gform_38").trigger("submit",[true]); }' /> <input type='hidden' name='gform_ajax' value='form_id=38&amp;title=&amp;description=&amp;tabindex=49' /> <input type='hidden' class='gform_hidden' name='is_submit_38' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='38' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_38' value='WyJbXSIsIjI0MzNjYTY3YTUxNWM5ZTM5NmFkOWNiZWJiMjkyMDYyIl0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_38' id='gform_target_page_number_38' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_38' id='gform_source_page_number_38' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> </form> </div> <iframe style='display:none;width:0px;height:0px;' src='about:blank' name='gform_ajax_frame_38' id='gform_ajax_frame_38'>This iframe contains the logic required to handle Ajax powered Gravity Forms.</iframe> <script type='text/javascript'>jQuery(document).ready(function($){gformInitSpinner( 38, 'https://www.postscapes.com/wp-content/plugins/gravityforms/images/spinner.gif' );jQuery('#gform_ajax_frame_38').on('load',function(){var contents = jQuery(this).contents().find('*').html();var is_postback = contents.indexOf('GF_AJAX_POSTBACK') >= 0;if(!is_postback){return;}var form_content = jQuery(this).contents().find('#gform_wrapper_38');var is_confirmation = jQuery(this).contents().find('#gform_confirmation_wrapper_38').length > 0;var is_redirect = contents.indexOf('gformRedirect(){') >= 0;var is_form = form_content.length > 0 && ! is_redirect && ! is_confirmation;var mt = parseInt(jQuery('html').css('margin-top'), 10) + parseInt(jQuery('body').css('margin-top'), 10) + 100;if(is_form){jQuery('#gform_wrapper_38').html(form_content.html());if(form_content.hasClass('gform_validation_error')){jQuery('#gform_wrapper_38').addClass('gform_validation_error');} else {jQuery('#gform_wrapper_38').removeClass('gform_validation_error');}setTimeout( function() { /* delay the scroll by 50 milliseconds to fix a bug in chrome */ jQuery(document).scrollTop(jQuery('#gform_wrapper_38').offset().top - mt); }, 50 );if(window['gformInitDatepicker']) {gformInitDatepicker();}if(window['gformInitPriceFields']) {gformInitPriceFields();}var current_page = jQuery('#gform_source_page_number_38').val();gformInitSpinner( 38, 'https://www.postscapes.com/wp-content/plugins/gravityforms/images/spinner.gif' );jQuery(document).trigger('gform_page_loaded', [38, current_page]);window['gf_submitting_38'] = false;}else if(!is_redirect){var confirmation_content = jQuery(this).contents().find('.GF_AJAX_POSTBACK').html();if(!confirmation_content){confirmation_content = contents;}setTimeout(function(){jQuery('#gform_wrapper_38').replaceWith(confirmation_content);jQuery(document).scrollTop(jQuery('#gf_38').offset().top - mt);jQuery(document).trigger('gform_confirmation_loaded', [38]);window['gf_submitting_38'] = false;}, 50);}else{jQuery('#gform_38').append(contents);if(window['gformRedirect']) {gformRedirect();}}jQuery(document).trigger('gform_post_render', [38, current_page]);} );} );</script><script type='text/javascript'> jQuery(document).bind('gform_post_render', function(event, formId, currentPage){if(formId == 38) {} } );jQuery(document).bind('gform_post_conditional_logic', function(event, formId, fields, isInit){} );</script><script type='text/javascript'> jQuery(document).ready(function(){jQuery(document).trigger('gform_post_render', [38, 1]) } ); </script>