Search This Blog

Wednesday, February 2, 2011

Tweaking a Harmony remote with Openelec

I've done a few things to tune my Harmony remote to my liking.

First, in the Harmony software my base device for the XBMC machine is set to 'MicrosoftMedia Center Extender' (found under HTPC options I think - I've found this is a better starting map than the other options people recommend. I think a lot of people's remote problems start right here, they use the wrong base map.

From there, the basic method is this is to look at the 'keys' defined for the remote, and then remap what those keys do in a custom keymap.xml

To find the keys, we look in:
/usr/share/irtrans/remotes/mediacenter.rem

This file defines the signals/names that will come through to XBMC (and therefore what we can easily remap). I suspect speeds can be tweaked in here and I find it a little too fast when scrolling long lists so I will experiment with this later...

[REMOTE]
[NAME]mediacenter

[TIMING]
[0][N]0[RC]2[RP]87[FREQ]36[SB][RS][RC6]

[COMMANDS]
[1][T]0[D]S11101010000000000011110000010000000001
[2][T]0[D]S11101010000000000011110000010000000010
[3][T]0[D]S11101010000000000011110000010000000011
[4][T]0[D]S11101010000000000011110000010000000100
[5][T]0[D]S11101010000000000011110000010000000101
[6][T]0[D]S11101010000000000011110000010000000110
[7][T]0[D]S11101010000000000011110000010000000111
[8][T]0[D]S11101010000000000011110000010000001000
[9][T]0[D]S11101010000000000011110000010000001001
[0][T]0[D]S11101010000000000011110000010000000000
[ok][T]0[D]S11101010000000000011110000010000100010
[left][T]0[D]S11101010000000000011110000010000100000
[right][T]0[D]S11101010000000000011110000010000100001
[down][T]0[D]S11101010000000000011110000010000011111
[up][T]0[D]S11101010000000000011110000010000011110
[play][T]0[D]S11101010000000000011110000010000010110
[power][T]0[D]S11101010000000000011110000010000001100
[Stop][T]0[D]S11101010000000000011110000010000011001
[Rec][T]0[D]S11101010000000000011110000010000010111
[Rew][T]0[D]S11101010000000000011110000010000010101
[Fwd][T]0[D]S11101010000000000011110000010000010100
[Pause][T]0[D]S11101010000000000011110000010000011000
[Next][T]0[D]S11101010000000000011110000010000011010
[Prev][T]0[D]S11101010000000000011110000010000011011
[eHome][T]0[D]S11101010000000000011110000010000001101
[Back][T]0[D]S11101010000000000011110000010000100011
[EPG][T]0[D]S11101010000000000011110000010000100110
[Info][T]0[D]S11101010000000000011110000010000001111
[LiveTV][T]0[D]S11101010000000000011110000010000100101
[Video][T]0[D]S11101010000000000011110000010001001010
[Music][T]0[D]S11101010000000000011110000010001000111
[TV][T]0[D]S11101010000000000011110000010001000110
[Pictures][T]0[D]S11101010000000000011110000010001001001
[Vol+][T]0[D]S11101010000000000011110000010000010000
[Vol-][T]0[D]S11101010000000000011110000010000010001
[Mute][T]0[D]S11101010000000000011110000010000001110
[Ch+][T]0[D]S11101010000000000011110000010000010010
[Ch-][T]0[D]S11101010000000000011110000010000010011
[Enter][T]0[D]S11101010000000000011110000010000001011
[Clear][T]0[D]S11101010000000000011110000010000001010
[DVDMenu][T]0[D]S11101010000000000011110000010000100100
[Rectv][T]0[D]S11101010000000000011110000010001001000
[Messenger][T][0][D]S11101010000000000011110000010001100100
[Radio][T][0][D]S11101010000000000011110000010001010000
[Teletext][T][0][D]S11101010000000000011110000010001011010
[Red][T][0][D]S11101010000000000011110000010001011011
[Green][T][0][D]S11101010000000000011110000010001011100
[Yellow][T][0][D]S11101010000000000011110000010001011101
[Blue][T][0][D]S11101010000000000011110000010001011110


The main work from here is done in .xbmc/userdata/keymaps/keymap.xml

I've commented my file so it should be easy to follow. To work out waht functions to call, I combed the forums a bit and use the wiki page on functions - http://wiki.xbmc.org/?title=List_of_Built_In_Functions - the only really tricky one is calling a showwindow command to toggle between just unwatched stuff & everything views.

<keymap>

<!-- ************* GLOBAL ***************************** -->
<!-- Define R as reload skin, S as screenshot, anywhere -->
<!-- and define some special remote keys
<!-- Red toggles fullscreen view -->
<!-- Green Toggles the watched status of an item -->
<!-- And yellow will toggle the library views between 'show everything' and 'show watched only' -->

<global>
<keyboard>
<r>XBMC.ReloadSkin()</r>
<s>Screenshot</s>
</keyboard>
<remote>
<Red>FullScreen</Red>
<Green>ToggleWatched</Green>
<Yellow>SendClick(25,14)</Yellow>
</remote>
</global>

<!-- ************************************************ -->

<!-- On the home screen, 1 cleans the library, 2 triggers an update -->

<home>
<remote>
<one>XBMC.CleanLibrary(video)</one>
<two>XBMC.UpdateLibrary(video)</two>
</remote>
</home>

<!-- Set up Audio Delay Easy Keys -->

<FullscreenVideo>
<remote>
<Yellow>AudioDelayMinus</Yellow>
<Blue>AudioDelayPlus</Blue>
</remote>
</FullscreenVideo>

<!-- Set up zooming in picture slideshows -->

<Slideshow>
<remote>
<Yellow>ZoomOut</Yellow>
<Blue>ZoomIn</Blue>
</remote>
</Slideshow>

<!-- make the info window close when info is pressed again -->

<movieinformation>
<remote>
<info>Close</info>
</remote>
</movieinformation>
<musicinformation>
<remote>
<info>Close</info>
</remote>
</musicinformation>

</keymap>


Some other stuff - I have done a bit of key mapping in the Harmony software - e.g in additional buttons I have mapped a button for next subtitle so I can easily cycle between subtitles (from none - sub 1 (if there is a sub 1) - sub 2 (if there is a sub 2) - ... - subs off

You can remap any other button you like this way.







5 comments:

  1. Cool. Thanks for that. I'm going to have to spend some time reviewing this in more detail later. Nice job!

    ReplyDelete
  2. Is this explicitly meant for an asrock 330-ht remote (which I have) in combination with a Harmony One (which I also have)?

    ReplyDelete
  3. It's for any one using a harmony remote with any working Openelec system - so if your receiver is working with Openelec, then yes this guide applies.

    ReplyDelete
  4. Thanks! It works. Did you expand your keymaps.xml any further?

    ReplyDelete
  5. See the post at the top of the blog, has a newer keymap in it. I should post the matching Harmony set up as well but it's annoying difficult to get that out of the harmony software without a bunch of tedious screenshot taking....

    ReplyDelete