Home Automation

From VoxCommando
Jump to: navigation, search

Supported Devices

VoxCommando supports direct control and communication with:

For a demonstration, see the video: Scenario: Coming Home From Work.

VoxCommando can also:

  • work with IFTTT with the help of VC's Watcher plugin.
  • control a large number of devices by communicating through EventGhost.
  • communicate with home automation solutions that provide command line control, such as the Telldus Tellstick, using the standard VC Launch.** actions.
  • communicate with various products such as Lutron devices or Universal Devices' ISY series using the core VC "scrape" actions or the TCP plugin depending on the objective. In these cases, we cannot guarantee results, however, and we have not tested all such products. Much depends on the user having access to proper documentation from the device manufacturer, and some experimentation will likely be required. Start by searching the user forum for other users' experiences with the product in question.

Vera

If you have a VeraLite or Vera3 home automation system from MiCasaVerde, VC's Vera plugin incorporates a number of useful features and custom actions.

Vera.png

After enabling the plugin, go to the Vera plugin settings and click the "Find Local" button to automatically set the IP and port number for your Vera.

Poll/Generate Events: select this if you wish to generate events in VoxCommando whenever a Vera device or scene changes its status. As always, these events will appear in the history panel when they occur, and can be dragged onto any command in the command tree to act as command triggers.

Once the plugin options have been saved, you can generate payloadXML files for your devices and scenes.

  • Click the "Gen XML" button to generate payloadXML files. These files will contain lists of value-phrase pairs based on your existing Vera setup, and will be saved in the \Vera folder of your main VoxCommando directory. You can then use these payloadXML files when creating your own commands.
If your Vera device names do not feel natural as spoken phrases, you don't necessarily have to rename devices on Vera (except for your own sake, to keep things straight). Instead, you can rename devices directly within the payloadXML files once these have been generated. Note that you can enter multiple names for the same device in the payloadXML; simply separate these "aliases" with commas in the phrase column.
  • You can also create and update "maps" that associate existing device IDs and scenes with friendly names to make it easier to build commands. For a general introduction to maps and how to use them in VoxCommando, see the Introduction to Maps video tutorial.


VoxCommando's Vera plugin includes a fairly extensive set of actions that can be used to create customized commands for your home environment. Search the user forum for some command examples.

X10 (Insteon)

VoxCommando can work with X10 devices provided that you have an X10 CM15A USB device connected to the computer which is running VoxCommando. Devices other than the CM15A may work if they are compatible with the SDK but we have not tested any.

You must have the Activehome Pro SDK installed on your system and the X10 plugin must be enabled in VoxCommando options.

Activehome Pro does not need to be running. It is sufficient to install the SDK and attach the CM15A device to your computer using a USB cable.

Users have also been successfully using the scrape action (see below) with Insteon. Search the forum and see especially aussie mate's post Using VC with Insteon for more information.

Scrape

Many contemporary home automation systems and devices support communication via "RESTful" APIs. It is usually possible for VoxCommando to interact with these systems using the Scrape action, and in version 2 of VoxCommando, additional interaction is often possible via the new Scrape.Put and Scrape.Post actions, depending on the device.

VC's scrape function is like an http "get" request. This action returns the raw text contents of a file found at the address: <URL> and stores it in {LastResult}. You can then do what you want with that {LastResult} within your VC command.

Note that using the basic scrape action is the same as typing a URL into the address bar of your web browser except that, instead of displaying the web page, its HTML gets stored in {LastResult}. When communicating with certain devices, sometimes all you need to do is access a particular URL -- you don't need the returned content. Simply submitting this special get request URL is enough to cause a change of state in your home automation device.

Theoretically, you could use Launch.OpenURL to do the same thing, but then you'd have a web browser window (or new tab) opening up every time you issue a speech command. Using the scrape action instead accomplishes the same goal, without opening a browser window.

Examples can be found on the user forum, including using scrape actions to control devices or communicate with home automation software such as:

The ability of VC to communicate with devices via scrape actions also depends on what kinds of authentication methods they use. See the Fibaro and Nest examples for some common methods of handling authentication.

Scrape.Get

As of VC2 version 2.1.3.5 we are replacing the basic Scrape with the updated action called Scrape.Get. This new action supports additional optional parameters (such as content-type headers, required by some APIs). [Though deprecated, Scrape and Scrape.UserAgent actions will continue to function.]

TCP Plugin

The TCP plugin allows VC to send and receive messages on TCP sockets, and can therefore be used to communicate with products such as Lutron devices (to create a telnet connection), some RFID readers, network audio receivers/amps, etc.

The plugin must be enabled in VoxCommando options. In the TCP plugin settings, you can specify an IP address and port number to send single messages to a receiving device.

For some purposes you will want to create a named client in order to write and receive messages from a server instead. There are various actions in the TCP plugin that can be used for such purposes. These distinctions are determined by the device that VC is attempting to communicate with, and it is usually a significant time saver to consult the device documentation.

[explain basics of the tcp connecting and disconnecting and terminators etc. to try to avoid some of the common forum questions/confusions in this regard?]

HOME in touch

The HitServer plugin has a set of custom actions designed to work with HOME in touch Hit Server.


Generating, polling, and triggering "events"

If your home automation system can transmit information by TCP, UDP, or HTTP, you may be able to automatically alert VC when device states change.

This is generally done by telling your home automation system to trigger an event in VC when a state changes. Consult the API page on the wiki.


(documentation in progress) Vera plugin > poll/generate events. explain X10 > event polling. explain others (e.g. ISY w/ network module?)