Thanks James just ordered it. Had a question off this topic does vox work with any hubs? was going to use wemo but i have 3 way switches and they dont support them. So i need to use a hub to controll it all.
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Show posts Menu
....
<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 2.2.0.9-->
<groupCollection open="True" name="Kodi LiveTV">
<commandGroup open="True" name="Kodi Live TV" enabled="True" prefix="" priority="0" requiredProcess="" description="">
<command id="727" name="Switch to channel short cut {1}" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>PayloadXML.GetValue</cmdType>
<params>
<param>XbmcPayloads\xbmcTvChannels.xml</param>
<param>{1}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<if ifBlockDisabled="False" ifNot="False">
<ifType>LastActionSuccess</ifType>
<ifParams>&&</ifParams>
<then>
<action>
<cmdType>XJson.Raw</cmdType>
<params>
<param>Player.Open</param>
<param>"item" : {"channelid" : {LastResult}}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>PayloadXML.GetPhrase</cmdType>
<params>
<param>payloads\Channel_translations.xml</param>
<param>{1}</param>
<param>First</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>curChannel</param>
<param>{LastResult}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</then>
<else>
<action>
<cmdType>OSD.ShowText</cmdType>
<params>
<param>Sorry. {1} does not appear in the Kodi channel list.</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</else>
</if>
<phrase>Switch to, Go to, Start</phrase>
<phrase>Channel</phrase>
<payloadFromXML phraseOnly="False" use2partPhrase="False" phraseConnector="by" Phrase2wildcard="anyone" optional="False">payloads\Channel_translations.xml</payloadFromXML>
<event>channelSwitch</event>
</command>
<command id="150" name="channel up" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>PY.ExecString</cmdType>
<params>
<param>result = {var.curChannel}+1</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>curChannel</param>
<param>{LastResult}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>PayloadXML.GetValue</cmdType>
<params>
<param>payloads\Channel_translations.xml</param>
<param>{var.curChannel}</param>
<param>True</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<if ifBlockDisabled="False" ifNot="False">
<ifType>LastActionSuccess</ifType>
<ifParams>&&</ifParams>
<then>
<action>
<cmdType>VC.TriggerEvent</cmdType>
<params>
<param>channelSwitch</param>
<param>{LastResult}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</then>
<else>
<action>
<cmdType>OSD.ShowText</cmdType>
<params>
<param>Sorry, it looks like you're already on the highest channel.</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>PY.ExecString</cmdType>
<params>
<param>result = {var.curChannel}-1</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>curChannel</param>
<param>{LastResult}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</else>
</if>
<phrase>channel up</phrase>
</command>
<command id="169" name="channel down" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>PY.ExecString</cmdType>
<params>
<param>result = {var.curChannel}-1</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>curChannel</param>
<param>{LastResult}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>PayloadXML.GetValue</cmdType>
<params>
<param>payloads\Channel_translations.xml</param>
<param>{var.curChannel}</param>
<param>True</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<if ifBlockDisabled="False" ifNot="False">
<ifType>LastActionSuccess</ifType>
<ifParams>&&</ifParams>
<then>
<action>
<cmdType>VC.TriggerEvent</cmdType>
<params>
<param>channelSwitch</param>
<param>{LastResult}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</then>
<else>
<action>
<cmdType>OSD.ShowText</cmdType>
<params>
<param>Sorry, you're already on the lowest channel</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>PY.ExecString</cmdType>
<params>
<param>result = {var.curChannel}+1</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>curChannel</param>
<param>{LastResult}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</else>
</if>
<phrase>channel down</phrase>
</command>
<command id="166" name="List TV channels" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>XJson.Raw</cmdType>
<params>
<param>GUI.ActivateWindow</param>
<param>"window" : "tvchannels"</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<phrase>Show all T V channels</phrase>
</command>
<command id="763" name="Next channel" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>PayloadXML.GetRandomP</cmdType>
<params>
<param>XbmcPayloads\xbmcTvChannels.xml</param>
<param>2</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<if ifBlockDisabled="False" ifNot="True">
<ifType>(A)==(B)</ifType>
<ifParams>{Match.1}&&{var.channel}</ifParams>
<then>
<action>
<cmdType>OSD.ShowText</cmdType>
<params>
<param>Switching to channel: {Match.1}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>PayloadXML.GetValue</cmdType>
<params>
<param>XbmcPayloads\xbmcTvChannels.xml</param>
<param>{Match.1}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>XJson.Raw</cmdType>
<params>
<param>Player.Open</param>
<param>"item" : {"channelid" : {LastResult}}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>channel</param>
<param>{Match.1}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</then>
<else>
<action>
<cmdType>OSD.ShowText</cmdType>
<params>
<param>Switching to channel: {Match.2}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>PayloadXML.GetValue</cmdType>
<params>
<param>XbmcPayloads\xbmcTvChannels.xml</param>
<param>{Match.2}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>XJson.Raw</cmdType>
<params>
<param>Player.Open</param>
<param>"item" : {"channelid" : {LastResult}}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>channel</param>
<param>{Match.2}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</else>
</if>
<phrase>Next channel</phrase>
</command>
</commandGroup>
<commandGroup open="True" name="Groups" enabled="True" prefix="" priority="0" requiredProcess="" description="">
<command id="246" name="Entertainment Group" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>XJson.Raw</cmdType>
<params>
<param>GUI.ActivateWindow</param>
<param>"window": "video", "parameters": [ "pvr://channels/tv/Развлекательные/" ]</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<phrase>Entertainment Group</phrase>
</command>
<command id="259" name="Mans Group" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>XJson.Raw</cmdType>
<params>
<param>GUI.ActivateWindow</param>
<param>"window": "video", "parameters": [ "pvr://channels/tv/мужские/" ]</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<phrase>Mans Group</phrase>
</command>
<command id="273" name="Music Group" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>XJson.Raw</cmdType>
<params>
<param>GUI.ActivateWindow</param>
<param>"window": "video", "parameters": [ "pvr://channels/tv/Музыка/" ]</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<phrase>Music Group</phrase>
</command>
<command id="244" name="Kids Group" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>XJson.Raw</cmdType>
<params>
<param>GUI.ActivateWindow</param>
<param>"window": "video", "parameters": [ "pvr://channels/tv/Детские/" ]</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<phrase>Kids Group</phrase>
</command>
</commandGroup>
</groupCollection>
<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 2.2.1.4-->
<command id="753" name="Next channel" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>PayloadXML.GetRandomP</cmdType>
<params>
<param>XbmcPayloads\xbmcTvChannels.xml</param>
<param>2</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<if ifBlockDisabled="False" ifNot="True">
<ifType>(A)==(B)</ifType>
<ifParams>{Match.1}&&{var.channel}</ifParams>
<then>
<action>
<cmdType>OSD.ShowText</cmdType>
<params>
<param>Switching to channel: {Match.1}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>PayloadXML.GetValue</cmdType>
<params>
<param>XbmcPayloads\xbmcTvChannels.xml</param>
<param>{Match.1}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>XJson.Raw</cmdType>
<params>
<param>Player.Open</param>
<param>"item" : {"channelid" : {LastResult}}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>channel</param>
<param>{Match.1}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</then>
<else>
<action>
<cmdType>OSD.ShowText</cmdType>
<params>
<param>Switching to channel: {Match.2}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>PayloadXML.GetValue</cmdType>
<params>
<param>XbmcPayloads\xbmcTvChannels.xml</param>
<param>{Match.2}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>XJson.Raw</cmdType>
<params>
<param>Player.Open</param>
<param>"item" : {"channelid" : {LastResult}}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>channel</param>
<param>{Match.2}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</else>
</if>
<phrase>Next channel</phrase>
</command><?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 2.2.0.9-->
<command id="711" name="Switch to channel short cut {1}" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>PayloadXML.GetValue</cmdType>
<params>
<param>XbmcPayloads\xbmcTvChannels.xml</param>
<param>{1}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>XJson.Raw</cmdType>
<params>
<param>Player.Open</param>
<param>"item" : {"channelid" : {LastResult}}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<phrase>Switch to, Go to, Start</phrase>
<phrase>Channel</phrase>
<payloadFromXML phraseOnly="False" use2partPhrase="False" phraseConnector="by" Phrase2wildcard="anyone" optional="False">payloads\Channel_translations.xml</payloadFromXML>
</command><?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 2.2.0.9-->
<commandGroup open="True" name="Kodi Live TV" enabled="True" prefix="" priority="0" requiredProcess="" description="">
<command id="711" name="Switch to channel short cut {1}" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>PayloadXML.GetValue</cmdType>
<params>
<param>XbmcPayloads\xbmcTvChannels.xml</param>
<param>{1}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>XJson.Raw</cmdType>
<params>
<param>Player.Open</param>
<param>"item" : {"channelid" : {LastResult}}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<phrase>Switch to, Go to, Start</phrase>
<phrase>Channel</phrase>
<payloadFromXML phraseOnly="False" use2partPhrase="False" phraseConnector="by" Phrase2wildcard="anyone" optional="False">payloads\Channel_translations.xml</payloadFromXML>
</command>
<command id="122" name="List TV channels" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>XJson.Raw</cmdType>
<params>
<param>GUI.ActivateWindow</param>
<param>"window" : "tvchannels"</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<phrase>List TV channels</phrase>
</command>
<command id="769" name="Next channel" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
<action>
<cmdType>PayloadXML.GetRandomP</cmdType>
<params>
<param>XbmcPayloads\xbmcTvChannels.xml</param>
<param>2</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<if ifBlockDisabled="False" ifNot="True">
<ifType>(A)==(B)</ifType>
<ifParams>{Match.1}&&{var.channel}</ifParams>
<then>
<action>
<cmdType>OSD.ShowText</cmdType>
<params>
<param>Switching to channel: {Match.1}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>PayloadXML.GetValue</cmdType>
<params>
<param>XbmcPayloads\xbmcTvChannels.xml</param>
<param>{Match.1}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>XJson.Raw</cmdType>
<params>
<param>Player.Open</param>
<param>"item" : {"channelid" : {LastResult}}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>channel</param>
<param>{Match.1}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</then>
<else>
<action>
<cmdType>OSD.ShowText</cmdType>
<params>
<param>Switching to channel: {Match.2}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>PayloadXML.GetValue</cmdType>
<params>
<param>XbmcPayloads\xbmcTvChannels.xml</param>
<param>{Match.2}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>XJson.Raw</cmdType>
<params>
<param>Player.Open</param>
<param>"item" : {"channelid" : {LastResult}}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.SetVar</cmdType>
<params>
<param>channel</param>
<param>{Match.2}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</else>
</if>
<phrase>Next channel</phrase>
</command>
</commandGroup><?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 2.2.0.9-->
<commandGroup open="True" name="Try" enabled="True" prefix="" priority="0" requiredProcess="" description="">
<command id="467" name="time-related friendly chitchat" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="See http://voxcommando.com/mediawiki/index.php?title=Custom_DateTime_codes for explanation of special date/time variables.">
<if ifBlockDisabled="False" ifNot="False">
<ifType>(A)Contains(B)</ifType>
<ifParams>,4,5,6,7,8,9,10,11,&&,{DtCustom.%H},</ifParams>
<then>
<action>
<cmdType>XJson.SetVol</cmdType>
<params>
<param>40</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>File.Read</cmdType>
<params>
<param>Nest\Nest_dev_status.txt</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.RegEx</cmdType>
<params>
<param>shared".*?"{1}".*?"current.temperature".(.*?),</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>PY.ExecString</cmdType>
<params>
<param>result=round({Match.1}*1.8+32)</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>WUnder.GetCurrent</cmdType>
<params />
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>OSD.ShowText</cmdType>
<params>
<param>Good morning. {LastResult}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>TTS.SpeakSync</cmdType>
<params>
<param>Good morning, Eugene. {LastResult}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>XJson.SetVol</cmdType>
<params>
<param>100</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</then>
<else />
</if>
<if ifBlockDisabled="False" ifNot="False">
<ifType>(A)Contains(B)</ifType>
<ifParams>,12,13,14,15,16,17,&&,{DtCustom.%H},</ifParams>
<then>
<action>
<cmdType>XJson.SetVol</cmdType>
<params>
<param>40</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>File.Read</cmdType>
<params>
<param>Nest\Nest_dev_status.txt</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.RegEx</cmdType>
<params>
<param>shared".*?"{1}".*?"current.temperature".(.*?),</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>PY.ExecString</cmdType>
<params>
<param>result=round({Match.1}*1.8+32)</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>WUnder.GetCurrent</cmdType>
<params />
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>OSD.ShowText</cmdType>
<params>
<param>Good afternoon, Eugene. {LastResult}{result}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>TTS.SpeakSync</cmdType>
<params>
<param>Good afternoon Eugene. {LastResult}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</then>
<else>
<action>
<cmdType>XJson.SetVol</cmdType>
<params>
<param>100</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</else>
</if>
<if ifBlockDisabled="False" ifNot="False">
<ifType>(A)Contains(B)</ifType>
<ifParams>,18,19,20,21,22,&&,{DtCustom.%H},</ifParams>
<then>
<action>
<cmdType>XJson.SetVol</cmdType>
<params>
<param>40</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>File.Read</cmdType>
<params>
<param>Nest\Nest_dev_status.txt</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.RegEx</cmdType>
<params>
<param>shared".*?"{1}".*?"current.temperature".(.*?),</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>PY.ExecString</cmdType>
<params>
<param>result=round({Match.1}*1.8+32)</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>WUnder.GetCurrent</cmdType>
<params />
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>OSD.ShowText</cmdType>
<params>
<param>{LastResult}</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>TTS.SpeakSync</cmdType>
<params>
<param>{LastResult}. Hope you're enjoying your evening.</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</then>
<else>
<action>
<cmdType>XJson.SetVol</cmdType>
<params>
<param>100</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</else>
</if>
<if ifBlockDisabled="False" ifNot="False">
<ifType>(A)Contains(B)</ifType>
<ifParams>,23,0,1,2,3,&&,{DtCustom.%H},</ifParams>
<then>
<action>
<cmdType>XJson.SetVol</cmdType>
<params>
<param>40</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>File.Read</cmdType>
<params>
<param>Nest\Nest_dev_status.txt</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>Results.RegEx</cmdType>
<params>
<param>shared".*?"{1}".*?"current.temperature".(.*?),</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>PY.ExecString</cmdType>
<params>
<param>result=round({Match.1}*1.8+32)</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>WUnder.GetCurrent</cmdType>
<params />
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>OSD.ShowText</cmdType>
<params>
<param>{LastResult}. Go to bed !!!</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>TTS.SpeakSync</cmdType>
<params>
<param>{LastResult}. Are you still awake?</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
<action>
<cmdType>XJson.SetVol</cmdType>
<params>
<param>100</param>
</params>
<cmdRepeat>1</cmdRepeat>
</action>
</then>
<else />
</if>
<phrase>whats up</phrase>
<phrase optional="true">the</phrase>
<payloadFromXML phraseOnly="False" use2partPhrase="False" phraseConnector="by" Phrase2wildcard="anyone" optional="False">Nest\thermoList.xml</payloadFromXML>
</command>
</commandGroup>