Kodi Community Forum

Full Version: Harmony Remote Remapping
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I have had my Harmony One controlling my living room media center running flawlessly for the past 3 years. My XBMC box is using Openelec. I programed the remote with the code displayed below.

I just got a second Harmony One and programmed it the exact same way (I copied the Keyboard.xml file over to the second XBMC instance)

the only issue is that my new XBMC box (running Windows 8) does not recognize most of the buttons like my Openelec machine does. It pretty much only has the basic functions working like play, pause, stope, select, directional buttons.

I vaguely remember a tutorial stating that in order to get the Harmony remote to function properly in WIndows you would have to add two devices (MCE Remote and MCE Keyboard)

I have never programmed a remote for Windows so I am wondering what the best, most versatile, and simplest procedure is.

how about eventghost?



Code:
<!-- This file contains the mapping of keys (gamepad, remote, and keyboard) to actions within XBMC -->
<!-- The <global> section is a fall through - they will only be used if the button is not          -->
<!-- used in the current window's section.  Note that there is only handling                       -->
<!-- for a single action per button at this stage.                                                 -->
<!-- For joystick/gamepad configuration under linux/win32, see below as it differs from xbox       -->
<!-- gamepads.                                                                                     -->

<!-- The format is:                      -->
<!--    <device>                         -->
<!--      <button>action</button>        -->
<!--    </device>                        -->

<!-- To map keys from other remotes using the RCA protocol, you may add <universalremote> blocks     -->
<!-- In this case, the tags used are <obc#> where # is the original button code (OBC) of the key     -->
<!-- You set it up by adding a <universalremote> block to the window or <global> section:           -->
<!--    <universalremote>                 -->
<!--       <obc45>Stop</obc45>             -->
<!--    </universalremote>                -->
<!-- To find out the OBC's of your remote, try enabling the <displayremotecodes> tag in AdvancedSettings.xml -->

<!-- Note that the action can be a built-in function.                     -->
<!--  eg <B>XBMC.ActivateWindow(MyMusic)</B>                                 -->
<!-- would automatically go to My Music on the press of the B button.     -->

<!-- Joysticks / Gamepads:                                                                    -->
<!--   See the sample PS3 controller configuration below for the format.                      -->
<!--                                                                                          -->
<!--  Joystick Name:                                                                          -->
<!--   Do 'cat /proc/bus/input/devices' or see your xbmc log file  to find the names of       -->
<!--   detected joysticks. The name used in the configuration should match the detected name. -->
<!--                                                                                          -->
<!--  Button Ids:                                                                             -->
<!--   'id' is the button ID used by SDL. Joystick button ids of connected joysticks appear   -->
<!--   in xbmc.log when they are pressed. Use your log to map custom buttons to actions.      -->
<!--                                                                                          -->
<!--  Axis Ids / Analog Controls                                                              -->
<!--  Coming soon.                                                                            -->

<!-- TO DO -->
<!--
        * XBMC.UpdateLibrary(Video)
        * XBMC.CleanLibrary(Video)
        * Queue Item for Playlist
        * AudioDelayMinus
        * AudioDelayPlus
        * Parent Directory
-->

<keymap>
    
    <!-- Global Button Actions - Used as Fall Through -->
  <global>
    <remote>
     <!-- Playback Keys -->
      <play>Play</play>
      <pause>Pause</pause>
      <stop>Stop</stop>
      <forward>FastForward</forward>
      <reverse>Rewind</reverse>
      <skipminus>SkipPrevious</skipminus>
      <skipplus>SkipNext</skipplus>
            
     <!-- Navigation Keys -->
      <left>Left</left>
      <right>Right</right>
      <up>Up</up>
      <down>Down</down>
      <select>Select</select>
            <pageplus>PageUp</pageplus>
            <pageminus>PageDown</pageminus>
      <back>ParentDir</back>
      <menu>PreviousMenu</menu>
      <title>ContextMenu</title>
      <info>Info</info>
      <display>FullScreen</display>         <!-- display NOT USED -->
      <start>PreviousMenu</start>
      <record>Screenshot</record>             <!-- CHANGE if NEEDED -->
      
      <!-- Testing Keys Out -->
    
            <media>testing</media>                <!-- DOESN'T WORK -->
      <recordedtv>testing</recordedtv>
      <subtitle>testing</subtitle>
            <aspect>testing</aspect>            <!-- DOESN'T WORK -->
            <audio>testing</audio>            <!-- DOESN'T WORK -->
      <language>testing</language>
      <display>testing</display>
            <!-- <blue>testing</blue> USING THIS KEY -->
      <star>testing</star>
      <hash>testing</hash>
      
     <!-- System Control -->
<!--      <volumeplus>VolumeUp</volumeplus>
      <volumeminus>VolumeDown</volumeminus>
      <mute>Mute</mute>
-->
      <power>XBMC.ShutDown()</power>
      
     <!-- Custom Action Keys -->
      <myvideo>XBMC.ActivateWindow(Videos,MovieTitles)</myvideo>
      <mymusic>XBMC.ActivateWindow(MyMusic)</mymusic>
      <mypictures>XBMC.ActivateWindow(MyPictures)</mypictures>
                    <!-- <mytv>XBMC.ActivateWindow(Home)</mytv> -->
                    <!-- <mytv>XBMC.ActivateWindow(VideoLibrary,TvShowTitles)</mytv> MYTV DOESNT SEEM TO WORK -->
      <livetv>XBMC.ActivateWindow(Videos,TvShowTitles)</livetv>
      <blue>XBMC.ActivateWindow(Home)</blue>
      <green>XBMC.ActivateWindow(Weather)</green>
      <yellow>ToggleWatched</yellow>
      <red>FullScreen</red>
      
     <!-- Numeric Keys -->
      <zero>Number0</zero>
      <one>Number1</one>
      <two>JumpSMS2</two>
      <three>JumpSMS3</three>
      <four>JumpSMS4</four>
      <five>JumpSMS5</five>
      <six>JumpSMS6</six>
      <seven>JumpSMS7</seven>
      <eight>JumpSMS8</eight>
      <nine>JumpSMS9</nine>
    </remote>
  </global>
  
    <!-- Home Button Actions -->
    <Home>
    <remote>
      <info>XBMC.ActivateWindow(SystemInfo)</info>
      <menu>XBMC.ActivateWindow(Settings)</menu>
      <!-- <back>XBMC.ActivateWindow(ShutdownMenu)</back>  old, delete if succesfful -->
      <back>ParentDir</back>      
             <!-- <title> </title>         -->                                            <!--TO DO-->
      <clear>XBMC.ActivateWindow(Weather)</clear>
      <blue>XBMC.ActivateWindow(ShutdownMenu)</blue>
    </remote>
  </Home>
  
    <FullscreenVideo>
      <remote>
        <zero>Number0</zero>
        <one>Number1</one>
        <two>Number2</two>
        <three>Number3</three>
        <four>Number4</four>
        <five>Number5</five>
        <six>Number6</six>
        <seven>Number7</seven>
        <eight>Number8</eight>
        <nine>Number9</nine>
        <left>StepBack</left>
        <right>StepForward</right>
        <up>BigStepForward</up>
        <down>BigStepBack</down>    
            <skipplus>BigStepForward</skipplus>
            <skipminus>BigStepBack</skipminus>
        <blue>ParentDir</blue>
        <back>SmallStepBack</back>
            <pageplus>SubtitleDelayPlus</pageplus>
            <pageminus>SubtitleDelayMinus</pageminus>
        <menu>OSD</menu>
        <start>OSD</start>
        <title>CodecInfo</title>
        <info>Info</info>
        <enter>OSD</enter>
        <select>OSD</select>
        <teletext>XBMC.ActivateWindow(Teletext)</teletext>
            <!--   <subtitle>ShowSubtitles</subtitle>                 NOT USED -->
            <!--   <language>AudioNextLanguage</language>         NOT USED -->
      </remote>
   </FullscreenVideo>
  
    <FullscreenInfo>
    <remote>
      <title>CodecInfo</title>
      <info>Close</info>
      <menu>OSD</menu>
    </remote>
  </FullscreenInfo>
  
    <PlayerControls>
    <remote>
      <menu>Close</menu>
    </remote>
  </PlayerControls>

  <MyFiles>
    <remote>
      <clear>Delete</clear>
    </remote>
  </MyFiles>
  
    <MyMusicPlaylist>
    <remote>
      <back>Playlist</back>      <!-- Close playlist -->
      <clear>Delete</clear>
    </remote>
  </MyMusicPlaylist>
  
    <MyMusicPlaylistEditor>
    <remote>
      <zero>Queue</zero>
    </remote>
  </MyMusicPlaylistEditor>
  
    <MyMusicFiles>
    <remote>
      <zero>Queue</zero>
      <star>Queue</star>
    </remote>
  </MyMusicFiles>
  
    <MyMusicLibrary>
    <remote>
      <zero>Queue</zero>
      <star>Queue</star>
    </remote>
  </MyMusicLibrary>
  
    <Visualisation>
    <remote>
      <left>PreviousPreset</left>
      <right>NextPreset</right>
      <up>IncreaseRating</up>
      <down>DecreaseRating</down>
      <back>LockPreset</back>
      <title>CodecInfo</title>
      <select>XBMC.ActivateWindow(VisualisationPresetList)</select>
      <menu>XBMC.ActivateWindow(MusicOSD)</menu>
      <start>XBMC.ActivateWindow(MusicOSD)</start>
      <info>Info</info>
    </remote>
  </Visualisation>
  
    <MusicOSD>
    <remote>
      <menu>Close</menu>
      <title>Info</title>
      <info>CodecInfo</info>
    </remote>
  </MusicOSD>
  
    <VisualisationSettings>
    <remote>
      <menu>Close</menu>
    </remote>
  </VisualisationSettings>
  
    <VisualisationPresetList>
    <remote>
      <menu>Close</menu>
    </remote>
  </VisualisationPresetList>
  
    <SlideShow>
    <remote>
      <zero>ZoomNormal</zero>
      <one>ZoomLevel1</one>
      <two>ZoomLevel2</two>
      <three>ZoomLevel3</three>
      <four>ZoomLevel4</four>
      <five>ZoomLevel5</five>
      <six>ZoomLevel6</six>
      <seven>ZoomLevel7</seven>
      <eight>ZoomLevel8</eight>
      <nine>ZoomLevel9</nine>
      <info>CodecInfo</info>
      <skipplus>NextPicture</skipplus>
      <skipminus>PreviousPicture</skipminus>
      <title>Info</title>
      <select>Rotate</select>
      <back>PreviousMenu</back>
    </remote>
  </SlideShow>
  
    <ScreenCalibration>
    <remote>
      <select>NextCalibration</select>
      <enter>NextCalibration</enter>
      <zero>ResetCalibration</zero>
      <display>NextResolution</display>
      <xbox>NextResolution</xbox>
    </remote>
  </ScreenCalibration>
  
    <GUICalibration>
    <remote>
      <select>NextCalibration</select>
      <enter>NextCalibration</enter>
      <zero>ResetCalibration</zero>
    </remote>
  </GUICalibration>
  
    <SelectDialog>
    <remote>
      <back>Close</back>
    </remote>
  </SelectDialog>
  
    <VideoOSD>
    <remote>
      <back>PreviousMenu</back>
      <menu>Close</menu>
      <start>Close</start>
    </remote>
  </VideoOSD>
  
    <VideoMenu>
    <remote>
      <menu>OSD</menu>
      <back>PreviousMenu</back>
      <info>Info</info>
      <title>CodecInfo</title>
      <zero>Number0</zero>
      <one>Number1</one>
      <two>Number2</two>
      <three>Number3</three>
      <four>Number4</four>
      <five>Number5</five>
      <six>Number6</six>
      <seven>Number7</seven>
      <eight>Number8</eight>
      <nine>Number9</nine>
      <play>Select</play>
    </remote>
  </VideoMenu>
  
    <OSDVideoSettings>
    <remote>
      <back>Close</back>
      <menu>Close</menu>
      <start>Close</start>
    </remote>
  </OSDVideoSettings>
  
    <OSDAudioSettings>
    <remote>
      <back>Close</back>
      <menu>Close</menu>
      <start>Close</start>
    </remote>
  </OSDAudioSettings>
  
    <VideoBookmarks>
    <remote>
      <back>Close</back>
      <menu>Close</menu>
      <start>Close</start>
      <zero>Delete</zero>
    </remote>
  </VideoBookmarks>
  
    <MyVideoLibrary>
    <remote>
      <zero>Queue</zero>
      <clear>Delete</clear>
            <!-- ADD Custom Button to Switch Between Watched/Unwatched Shows -->
    </remote>
  </MyVideoLibrary>
  
    <MyVideoFiles>
    <remote>
      <zero>Queue</zero>
      <star>Queue</star>
    </remote>
  </MyVideoFiles>
  
    <MyVideoPlaylist>
    <remote>
      <back>Playlist</back>      <!-- Close playlist -->
      <clear>Delete</clear>
      <zero>Delete</zero>
    </remote>
  </MyVideoPlaylist>
  
    <VirtualKeyboard>
    <remote>
      <back>BackSpace</back>
      <star>Shift</star>
      <hash>Symbols</hash>
      <zero>Number0</zero>
      <one>Number1</one>
      <two>Number2</two>
      <three>Number3</three>
      <four>Number4</four>
      <five>Number5</five>
      <six>Number6</six>
      <seven>Number7</seven>
      <eight>Number8</eight>
      <nine>Number9</nine>
      <pageminus>CursorLeft</pageminus>
      <pageplus>CursorRight</pageplus>
    </remote>
  </VirtualKeyboard>
  
    <ContextMenu>
    <remote>
      <title>Close</title>
      <back>Close</back>
    </remote>
  </ContextMenu>
  
    <FileStackingDialog>
    <remote>
      <back>Close</back>
    </remote>
  </FileStackingDialog>
  
    <Scripts>
    <remote>
      <info>XBMC.ActivateWindow(ScriptsDebugInfo)</info>
    </remote>
  </Scripts>
  
    <ScriptsDebugInfo>
    <remote>
      <info>Info</info>      <!-- clears debug python info -->
    </remote>
  </ScriptsDebugInfo>
  
    <NumericInput>
    <remote>
      <zero>Number0</zero>
      <one>Number1</one>
      <two>Number2</two>
      <three>Number3</three>
      <four>Number4</four>
      <five>Number5</five>
      <six>Number6</six>
      <seven>Number7</seven>
      <eight>Number8</eight>
      <nine>Number9</nine>
      <back>BackSpace</back>
    </remote>
  </NumericInput>
  
    <Weather>
    <remote>
      <back>PreviousMenu</back>
    </remote>
  </Weather>
  
    <Settings>
    <remote>
      <back>PreviousMenu</back>
    </remote>
  </Settings>
  
    <MyPicturesSettings>
    <remote>
      <back>PreviousMenu</back>
    </remote>
  </MyPicturesSettings>
  
    <MyProgramsSettings>
    <remote>
      <back>PreviousMenu</back>
    </remote>
  </MyProgramsSettings>
  
    <MyWeatherSettings>
    <remote>
      <back>PreviousMenu</back>
    </remote>
  </MyWeatherSettings>
  
    <MyMusicSettings>
    <remote>
      <back>PreviousMenu</back>
    </remote>
  </MyMusicSettings>
  
    <SystemSettings>
    <remote>
      <back>PreviousMenu</back>
    </remote>
  </SystemSettings>
  
    <MyVideosSettings>
    <remote>
      <back>PreviousMenu</back>
    </remote>
  </MyVideosSettings>
  
    <NetworkSettings>
    <remote>
      <back>PreviousMenu</back>
    </remote>
  </NetworkSettings>
  
    <AppearanceSettings>
    <remote>
      <back>PreviousMenu</back>
    </remote>
  </AppearanceSettings>
  
    <Profiles>
    <remote>
      <back>PreviousMenu</back>
    </remote>
  </Profiles>
  
    <systeminfo>
    <remote>
      <back>PreviousMenu</back>
    </remote>
  </systeminfo>
  
    <shutdownmenu>
    <remote>
      <back>PreviousMenu</back>
    </remote>
  </shutdownmenu>
  
    <submenu>
    <remote>
      <back>PreviousMenu</back>
    </remote>
  </submenu>
  
    <MusicInformation>
    <remote>
      <back>Close</back>
    </remote>
  </MusicInformation>
  
    <MovieInformation>
    <remote>
      <back>Close</back>
    </remote>
  </MovieInformation>
  
    <LockSettings>
    <remote>
      <menu>Close</menu>
      <back>PreviousMenu</back>
    </remote>
  </LockSettings>
  
    <ProfileSettings>
    <remote>
      <menu>Close</menu>
      <back>PreviousMenu</back>
    </remote>
  </ProfileSettings>
  
    <PictureInfo>
    <remote>
      <skipplus>NextPicture</skipplus>
      <skipminus>PreviousPicture</skipminus>
      <info>Close</info>
      <back>Close</back>
    </remote>
  </PictureInfo>
  
    <Teletext>
    <remote>
      <zero>number0</zero>
      <one>number1</one>
      <two>number2</two>
      <three>number3</three>
      <four>number4</four>
      <five>number5</five>
      <six>number6</six>
      <seven>number7</seven>
      <eight>number8</eight>
      <nine>number9</nine>
      <red>Red</red>
      <green>Green</green>
      <yellow>Yellow</yellow>
      <blue>Blue</blue>
      <info>Info</info>
      <back>Close</back>
      <menu>Close</menu>
      <start>Close</start>
      <teletext>Close</teletext>
    </remote>
  </Teletext>
  
    <Favourites>
    <remote>
      <back>Close</back>
    </remote>
  </Favourites>
</keymap>
I think I have figured it out and it was much simpler than I was making it. I simply set up the harmony remote as an MCE Keyboard and mapped all the keys the same as the keyboard. I also deleted the Keyboard.xml

It seems I was over thinking everything.