OK. You will need to delete any existing "Live TV" channel commands in your Command Tree that select or switch the channels, and replace them with the following command group:
<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 2.2.1.4-->
<commandGroup open="True" name="New TV channel group for eugekiller" enabled="True" prefix="" priority="0" requiredProcess="" description="">
<command id="723" 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="142" 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="160" 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>
</commandGroup>
EDIT: You also need to enable the Python (PY) plugin, if it is not yet enabled in your configuration.And, you need to
replace your existing Channel_translations.xml file in your payloads folder with the one attached to this post.
The difference is that all of the channels in the new file have an additional, incremented "dummy payload number," so that VC can figure out what channel is up or down from the current channel.
The new command group has three commands:
1. Switch to/start/go to channel X
2. Channel up
3. Channel down
When you first want to watch your TV channels, you will first need to use Command 1. After that, the channel up and down commands should work at any point.
If you use some other method to first load a channel, channel up or down will not know what channel you're currently on so they won't work.
Note: I have compared your channel translations payload xml file to the xbmcTVchannels payload xml file. There are a lot of channels in your translations file that don't exist in the Kodi channel list, and vice versa. I don't know if that matters to you or not. My commands above compensate for this somewhat, and will let you know if you've chosen a channel that Kodi cannot find.