Control your Insteon System with your Voice

So you have your Insteon Home Automation system up and running, and controlling it with your Android phone using the Insteon for Hub app. Now lets take it to the next level, and control it by voice commands. By installing a couple of Android apps, and using the Insteon Direct Commands I covered in my previous article, you’ll be able to turn on/off the lights by speaking to your phone. Below is a video showing the completed setup:



To get started you’ll need to purchase two apps from the Play Store. The first is Tasker, which itself is an automation program for your phone. It’s a very powerful app that allows you to set If/Then type conditions to have your phone perform just about any function that you can dream up. It’s not free, but at $2.99 it’s well worth the investment.

The second app that you’ll need to purchase is AutoVoice ($1.57). AutoVoice is a plugin for Tasker and is what I used for the voice recognition piece in controlling my Insteon system. Once you have both apps installed, you’re ready to setup your first voice command.

  1. Start the Tasker app, and from the Profiles tab click the plus ‘+’ symbol found at the bottom right corner of the screen.
  2. In the resulting menu, select State, and then select Plugin.
  3. On the Plugin State screen select AutoVoice Recognized.
  4. On the State Edit screen click the Edit icon (looks like a pencil) next to Configuration.
  5. Tick Event Behavior.
  6. Tap on Command Filter, and type the keyword(s) you want Tasker to recognize and act upon. For this example, I typed ‘kitchen on‘.
  7. Optional. Tick the Contains All option. When selected, the keywords can be spoken in any order. So I could say, “Turn the kitchen light on” or “Turn on the kitchen light” and either would be recognized. Without this option I would have to make sure the keywords are spoken as typed. “Turn kitchen on”
  8. Tap the check mark at the top of the screen.
  9. Tap the back button at top left of the screen where it says State Edit AutoVoice Recognized.
  10. You’re now returned to the Profile tab, and a menu should popup. Select New Task.
  11. Optional. Give the Task a name, and tap the check mark.
  12. On the Task Edit screen, tap the plus ‘+‘ symbol at the bottom of the screen.
  13. Select Net, and then HTTP Post.
  14. In the Server:Port field enter the Insteon Direct Command to execute. In this example I’ve entered admin:password@10.0.0.10:25105/3?0262245D0A0F11FF=I=3
  15. Tap the back button where it says Action Edit HTTP Post. If you want to have a spoken response after the HTTP Post command has been ran, then continue with step #16, otherwise jump to step #20.
  16. On the Task Edit screen, tap the plus ‘+‘ symbol at the bottom of the screen.
  17. Select Misc, and then Say.
  18. In the Text field type what you want to be spoken. I used, “The kitchen light has been turned on.
  19. Tap the back button where it says Action Edit Say.
    At this point you can test the two task that you just created by clicking the Play button at the bottom left corner of the screen. In this example the Kitchen light should turn on followed by the phone speaking, “The Kitchen light has been turned on.” If the light doesn’t turn on, re-check your direct command in the HTTP Post task.
  20. Tap the back button where it says Task Edit Anonymous.

That’s it for creating the profile and task to turn on the light. Now we need to create a shortcut on the Android phone that initiates the voice recognition. I’m not going to get into the steps to create a shortcut in Android as different phones/ROM’s will vary. All you need to do is initiate creating a shortcut on your home screen, and select the Recognize app. Once that is complete, tap the Recognize icon and speak your keyword(s) from step#6. AutoVoice will recognize the keywords, and execute the tasks to turn on the light, and speak the response that you specified.

If you want to turn off the same light, simply follow these steps again to create a new profile and tasks, changing the keyword(s), HTTP Post command, and Say tasks.

 

13 thoughts on “Control your Insteon System with your Voice

  1. primer que nada hablas español??

    me interesa saber sobre este teme yo cuento con equipo insteon y estoy teniendo problemas con la parte de tasker y autovoice podrias hacer un video tutorial te le agradecería mucho.

    saludos!!

    • Lo siento, pero yo no hablo español. He traducido la pregunta y entender que usted está teniendo problemas con Tasker. Si usted puede describir cuál es el problema quizá pueda ayudarte.

  2. nice tutorial Rich. Is it possible to have the android device being used as a controller to always be listening for a command? say, for the purposes of someone with physical disabilities that cannot touch the controller to activate the “listen” command?

    • Yes, you can set AutoVoice to always listen for a keyword such as “Computer” that would initiate the listening mode.

  3. Thank you for the demo and tutorial Rich! How can I minimize the time autovoice listens after I say a command? Yours seems to trigger immediately, mine listens for maybe 10 more seconds before triggering.

    • I’ve heard about this from another reader, but I don’t think he ever worked it out. The only thing I can suggest is try create a task that does something on your phone instead of sending an Insteon command. Something like turning of WiFi or Bluetooth for example. If that task responds quickly, then I would suspect something on your network and/or the Insteon network. If you haven’t already, reboot everything. Your router the Hub, any switches, phone, etc. You could also try to control different Insteon devices to see if they respond any better. There also could be noise somewhere within the Insteon network. So try turning off everything you can in the house, etc. CFL’s, UPS’s, anything that may cause noise.

      • Thanks again. I did try a a command for toggling Wifi with the same results. I finally found a fix by rolling back google search updates on my Nexus 5. I am not sure if the latest updates caused issues on all phones. I am currently running the beta version of Autovoice with the updated google search and the listener still lingers on after I issue a command, but I have since then integrated Autovoice with Google Now and that works nicely.

  4. Hey Rich. Awesome stuff. I’m in the process of getting this stuff working for my Insteon system. I have a question regarding setting up the voice recognition to issue commands. I have Tasker (which I was already using and love) and I installed AutoVoice. I followed your instructions as far as setting up a new voice command. I’m a little confused now how to actually go about issuing the voice command. Do I just use the standard Google voice prompt like clicking the microphone in the Google search bar? You said “All you need to do is initiate creating a shortcut on your home screen, and select the Recognize app.” I’m not sure what the “Recognize” app is. Is that a separate app I need to download? Or is it a standard system app? Thanks.

    • The Recognize app is actually part of AutoVoice. You may be getting confused with the difference in an app icon on your home screen, and actually creating a shortcut. They can be two different things. So make sure you are using the “New Shortcut” option of your phone on your home screen, and you should be presented with a list of apps to select. Recognize will be in that list. Once the shorcut is created, you will tap on it and speak your command.

  5. Hey Rich, your tutorial was really helpfull. Thanks.
    I am just struggling a little bit to get the motion sensor’s response as you showed in your video. Should I use HTTP get in Tasker? And which Insteon command did you use to read the sensor status?
    If you can share I would appreciate. Thank you!

    • Sorry for the late response. I’m not reading the sensor. I have an email sent as an SMS. When Tasker sees that message, it simply reads it aloud.

  6. Hey Rich, Im having a problem when I write the HTTP POST command in Tasker.
    I enter
    admin:password@10.0.0.10:25105/3?0262245D0A0F11FF=I=3 and enter my info for username, password, my local hub ip address and my device id that im trying to control. I keep getting a error when i play the command. Please help. Thanks

Comments are closed.