People have been asking for special plugins for Homeseer. It is already possible to link VC and Homeseer.
The REST-like API for HS3 users is discussed in another thread (
http://voxcommando.com/forum/index.php?topic=1395.0). If you have HS2, you can try the following:
1. Download and install the
TenHsServer 2.5 plugin, available here:
http://www.tenholder.net/tenware2/tenHsServer/installation.aspxJust double-click on the installer file to run it. This installer will put everything where it needs to go and configure everything automatically, assuming you have HS2 installed. No thinking required.
2. Select the XML code below, copy and paste it into your VC command tree.
NOTE: Within each command that has a "scrape" action, you'll need to insert the proper URL for your own HS2.<?xml version="1.0" encoding="utf-16"?>
<commandGroup open="True" name="Homeseer2" enabled="True" prefix="" priority="0" requiredProcess="" description="">
<command id="229" name="Generate HS devices payload x m l" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>Scrape</cmdType>
<cmdString>http://[Your HS URL(usually an IP address)]/tenHsServer/tenHsServer.aspx?t={Rnd.1.99}&f=Getdevices</cmdString>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.RegEx</cmdType>
<cmdString>;*(\D\d+):.*?:.*?:(.*?):</cmdString>
<cmdRepeat>1</cmdRepeat>
</action>
<if ifBlockDisabled="False" ifNot="False">
<ifType>(A)<(B)</ifType>
<ifParams>0&&{#M}</ifParams>
<then>
<action>
<cmdType>OSD.ShowText</cmdType>
<cmdString>Storing {#M} devices in your payload x m l file</cmdString>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>TTS.Speak</cmdType>
<cmdString>Storing {#M} devices in your payload x m l file</cmdString>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>PayloadXML.Clear</cmdType>
<cmdString>HS2payloads\hsDevices.xml</cmdString>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.MatchToEvent</cmdType>
<cmdString>hs.addDevice&&99</cmdString>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>VC.RestartQuick</cmdType>
<cmdString />
<cmdRepeat>1</cmdRepeat>
</action>
</then>
<else>
<action>
<cmdType>TTS.Speak</cmdType>
<cmdString>Sorry, there seems to be a problem.</cmdString>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>OSD.ShowText</cmdType>
<cmdString>Sorry, there seems to be a problem.</cmdString>
<cmdRepeat>1</cmdRepeat>
</action>
</else>
</if>
<phrase>Generate devices payload x m l</phrase>
</command>
<command id="248" name="Generate HS events payload x m l" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>Scrape</cmdType>
<cmdString>http://[Your HS URL(usually an IP address)]/tenHsServer/tenHsServer.aspx?t={Rnd.1.99}&f=Getevents</cmdString>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.RegEx</cmdType>
<cmdString>"Result">(.*?)<</cmdString>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.SetLastResult</cmdType>
<cmdString>{Match.1}</cmdString>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.RegEx</cmdType>
<cmdString>\A?(.*?);</cmdString>
<cmdRepeat>1</cmdRepeat>
</action>
<if ifBlockDisabled="False" ifNot="False">
<ifType>(A)<(B)</ifType>
<ifParams>0&&{#M}</ifParams>
<then>
<action>
<cmdType>OSD.ShowText</cmdType>
<cmdString>Storing {#M} events in your payload x m l file</cmdString>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>TTS.Speak</cmdType>
<cmdString>Storing {#M} events in your payload x m l file</cmdString>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>PayloadXML.Clear</cmdType>
<cmdString>HS2payloads\hsEvents.xml</cmdString>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.MatchToEvent</cmdType>
<cmdString>hs.addEvent&&99</cmdString>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>VC.RestartQuick</cmdType>
<cmdString />
<cmdRepeat>1</cmdRepeat>
</action>
</then>
<else>
<action>
<cmdType>TTS.Speak</cmdType>
<cmdString>Sorry, I'm not finding any Homeseer events.</cmdString>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>OSD.ShowText</cmdType>
<cmdString>Sorry, I'm not finding any Homeseer events.</cmdString>
<cmdRepeat>1</cmdRepeat>
</action>
</else>
</if>
<phrase>Generate events payload x m l</phrase>
</command>
<command id="264" name="addDevice" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>Results.RegEx</cmdType>
<cmdString>(\D\d+)&&&&{1}</cmdString>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.SetVar</cmdType>
<cmdString>devID&&{Match.1}</cmdString>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.RegEx</cmdType>
<cmdString>\d(.*?)\Z&&&&{1}</cmdString>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>PayloadXML.AddPair</cmdType>
<cmdString>HS2payloads\hsDevices.xml&&{Var.devID}&&{Match.1}&&True</cmdString>
<cmdRepeat>1</cmdRepeat>
</action>
<event>hs.addDevice</event>
</command>
<command id="269" name="addEvent" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>PayloadXML.AddPair</cmdType>
<cmdString>HS2payloads\hsEvents.xml&&{1}&&{1}&&True</cmdString>
<cmdRepeat>1</cmdRepeat>
</action>
<event>hs.addEvent</event>
</command>
<command id="1115" name="Run event {1}" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>Scrape</cmdType>
<cmdString>http://[Your HS URL(usually an IP address)]/tenHsServer/tenHsServer.aspx?t={Rnd.1.99}&f=RunEvent&d={1}</cmdString>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>OSD.ShowText</cmdType>
<cmdString>Executing event {1}</cmdString>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>TTS.SpeakSync</cmdType>
<cmdString>Executing event {1}</cmdString>
<cmdRepeat>1</cmdRepeat>
</action>
<phrase>Run event</phrase>
<payloadFromXML phraseOnly="False" use2partPhrase="False" phraseConnector="by" Phrase2wildcard="anyone" optional="False">HS2payloads\hsEvents.xml</payloadFromXML>
</command>
<command id="1118" name="Turn {1}{2}" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>Scrape</cmdType>
<cmdString>http://[Your HS URL(usually an IP address)]/tenHsServer/tenHsServer.aspx?t={Rnd.1.99}&f=Device{2}&d={1}</cmdString>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>OSD.ShowText</cmdType>
<cmdString>Switching {PF.1} {2}.</cmdString>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>TTS.SpeakSync</cmdType>
<cmdString>Switching {PF.1} {2}.</cmdString>
<cmdRepeat>1</cmdRepeat>
</action>
<phrase>Turn, Switch</phrase>
<payloadFromXML phraseOnly="False" use2partPhrase="False" phraseConnector="by" Phrase2wildcard="anyone" optional="False">HS2payloads\hsDevices.xml</payloadFromXML>
<payloadList>On, Off</payloadList>
</command>
</commandGroup>
SAY "Generate devices payload x m l, or "Generate events payload x m l" to:
a) Automatically generate payload xml files for your devices and for your Homeseer events.
Once executed, you'll find the 2 files in the HS2payloads folder of your VC directory.
Other included commands:
b) Switch devices on or off.
c) Run any event that you've created in HS2.
Obviously you can change the command phrases in VC. Hopefully you know how to do that.
There's more that can be done with this plugin, particularly if you get creative with events within Homeseer. This is just a sample, and since figuring out how to generate payload xml is definitely quite advanced, I have hopefully taken care of that aspect.
CAVEAT: I could only test it hypothetically using virtual devices and events. I tested it with HomeseerPro 2.5.