En la primera parte de esta serie os hice una introducción a Raspberry Pi y cómo utilizarla con Kodi (XBMC). Antes de meternos en harina de posibilidades, configuración personalizada, add-ons y otros trucos, me gustaría dedicar esta segunda parte a una de las formas de controlar la Raspberry que os mencioné, el propio control remoto de la TV. Y es que es uno de los puntos llamativos de esta solución multimedia.
Como ya os comenté HDMI CEC es un protocolo estándar que se incluyó desde la versión 1.0 de HDMI y que permite comunicación bidireccional a través del cable HDMI para controlar dispositivos externos (DVD, set-top-box, etc.) a través de un único mando. Eso si, su implementación es opcional por lo que disponer de un puerto HDMI no significa que nuestro dispositivo lo soporte.
Cada fabricante implementa su versión particular de CEC y le da un nombre comercial. Los principales son: Anynet+ (Samsung), Aquos Link (Sharp), BRAVIA Link y BRAVIA Sync (Sony), HDMI-CEC (Hitachi), E-link (AOC), Kuro Link (Pioneer), INlink (Insignia), CE-Link and Regza Link (Toshiba), RIHD (Remote Interactive over HDMI) (Onkyo), RuncoLink (Runco International), SimpLink (LG), T-Link (ITT), HDAVI Control, EZ-Sync, VIERA Link (Panasonic), EasyLink (Philips), y NetCommand for HDMI (Mitsubishi). Esto no quiere decir que existan otros fabricantes y que tengan otro nombre distinto.
Primera prueba del procolo CEC
Si has seguido al pie de la letra la primera parte de esta serie dedicada a Raspberry Pi, tendrás el dispositivo listo y conectado a la TV mediante un cable HDMI. En mi caso dispongo de una TV LG por lo que los pasos que yo voy a describir aqui es para esta marca, aunque son similares en el resto.
- Seleccionar la fuente HDMI correspondiente a la Raspberry Pi.
- Pulsar el botón SimpLink+ en el mando a distancia. Nos aparece un menú donde me detecta la Raspberry Pi como un disco duro grabador:
- Seleccionar HDD Recorder.
- Desde este momento ya podemos utilizar las flechas del mando a distancia para controlar la Raspberry Pi.
Eso si, dependiendo de la marca de TV podremos usar mas o menos botones y aqui es donde viene el primer problema: en mi caso funcionan los botones de dirección, el intro (botón aceptar), los de control de reproducción (play, pause, stop, etc) cuando estoy visualizando un video, pero no tengo botón «volver atrás» por lo que puedo avanzar por los menús pero no tengo manera de volver al principio, ni tengo «botón derecho» para los menús contextuales. Y aqui es donde entra la utilidad de esta entrada, vamos a detectar qué botones podemos utilizar en cada caso y cómo podemos remapearlos para que hagan lo que nosotros queramos en cada una de las pantallas de XBMC.
Detectando los botones
Una de las formas de detectar cuantos botones podemos utilizar en el manejo de nuestra Raspberry Pi es activando el modo debugging. Para hacer esto necesitamos acceder a la Raspberry mediante SSH.
Para conectarnos a la Raspberry mediante SSH necesitamos un cliente. Desde Windows lo más sencillo es descargar PuTTy, un cliente gratuito:
PuTTy | Windows x86 | Descarga
Realizamos los siguientes pasos:
- Habilitar el modo depuración. Para ello desde la Raspberry Pi seleccionamos Sistema > Ajustes > Sistema > Depuración > Habilitar registro de depuración. Si no ves la opción depuración asegúrate de que el nivel de ajustes no esté en básico (en la misma ventana abajo a la izquuierda).
- Utilizar PuTTy para conectarnos a la Raspberry. Basta con introducir la IP de nuestra Raspberry Pi (Sistema > Info del sistema > Red), dejando el resto de opciones por defecto:
- Una vez conectados nos aparecerá el prompt de login. Dependiendo del sistema que tengamos instalado será uno de estos:
-
- RaspBMC: username: pi, password: raspberry
- OpenELEC: username: root , password: openelec
- Ejecutamos el siguiente comando en el prompt:
Para XBMC: tail -f ~pi/.xbmc/temp/xbmc.log |grep OnKey:
Para Kodi: tail -f ~/.kodi/temp/kodi.log |grep OnKey:
Este último comando nos permitirá detectar que botón estamos pulsando en el mando a distancia y nos aparecerá de esta forma en pantalla:
20:13:02 T:3038433280 DEBUG: OnKey: 166 (a6) pressed, action is Up
Una vez pulsadas todas las teclas del mando a distancia tendremos una idea de qué pulsaciones son recibidas por la Raspberry y nos permitirá crear crear un archivo XML con nuestra configuración personalizada.
Para detener el proceso de captura con pulsar Ctrl-C y desactivar el modo depuración desde menú de la Raspberry. Seguimos conectados mediante PuTTY para la siguiente tarea.
Creación del archivo personalizado XML
El siguiente paso es crear (o modificar si ya existiese) el archivo del mapeado de teclas. Este archivo se debe llamar remote.xml (keyboard.xml si lo que queremos es remapear un teclado estándar) y su ubicación debe ser la siguiente: xbmc/userdata/keymaps. Existe una entrada en la Wiki del proyecto Kodi que habla extensamente de esta tarea (Modifying Keyboard y Keyboard.xml), pero os resumo aqui el esquema del archivo XML:
- Las etiquetas que abren y cierran el archivo completo son <keymap> y </keymap>.
- Dentro podemos encontrar varias secciones, pero las principales son:
- <global>: define el mapeado para las teclas de manera genérica a no ser que otra sección sobreescriba su uso.
- <home>: define el mapeado de las teclas para el menú principal.
- <FullScreenVideo>: define el mapeado de las teclas cuando nos encontramos reproduciendo a pantalla completa.
- ¡Importante!: En cada una de las secciones debemos introducir los mapeos entre llaves <remote></remote> ya que de otra forma no funciona.
Os dejo mi archivo de ejemplo para que podáis jugar con las opciones, y el cual está configurado de la siguiente forma:
- Sección global:
- Rebobinar <<: Atrás
- Avanzar >>: Menú contextual (botón derecho ratón)
- Stop ■: Menú principal
- Sección fulscreenvideo:
- Rebobinar mas |<<: Ratio de aspecto
- Rebobinar <<: Info
- Avanzar más >>|: Bajar volumen
- Avanzar >>: Subir volumen
He dejado los botones direccionales sin configurar porque ya funcionan como yo quiero:
- Sección home:
- Botones direccionales: Moverse por los menús
- Botón central: Intro
- Sección fullscreenvideo:
- Botones izquierda / derecha: Avanzar / retroceder 1,5 min
- Botones arriba / abajo: Avanzar / retroceder 10 min
Para poder crear / editar el archivo remote.xml:
- Desde el terminal SSH del PuTTy accedemos al directorio keymaps:
Para RaspBMC y XBMC: cd .xbmc/userdata/keymaps
Para RaspBMC y Kodi: cd .kodi/userdata/keymaps
Para OpenELEC y XMBC: cd /storage/.xbmc/userdata/keymaps
Para OpenELEC y Kodi: cd /storage/.kodi/userdata/keymaps
- Normalmente no debe existir el fichero remote.xml por lo que necesitamos crear uno nuevo:
sudo nano remote.xml
El comando sudo nos permite ejecutar con permisos de administrador. Nano es un editor de texto muy sencillo de usar:
- Escribimos el texto que deseemos (podemos copiar y pegar sobre la ventana del PuTTy, por ejemplo, lo escribimos previamente en un notepad o desde fichero que os he facilitado antes).
- Pulsamos Ctrl-O y después intro para guardar el fichero.
- Pulsamos Ctrl-X para salir de Nano.
Una vez realizada la actualización del fichero remote.xml, es recomendable reiniciar nuestra Raspberry Pi para que los cambios tengan efecto.
Kodi (XBMC) y Raspberry Pi, la combinación perfecta (I)
Comentarios
Buenas tardes, Lo primero, muchas gracias por la guía, estaba buscando justo la configuración del CEC. he tratado de realizar los pasos, pero tengo un problema, no encuentro el archivo de logs. Puse el comando que especificas: tail -f ~pi/.xbmc/temp/xbmc.log |grep OnKey: Me da error, ya que no encuentra el archivo. He tratado de localizar el archivo, pero no consigo dar con él. Por si en la versión que tengo (Openelec 5), había cambiado la ruta, he probado con el comando find, pero no consigo dar con él. Por favor, ¿sabes que puede pasar? Muchas gracias de nuevo
Hola Jorge, lo primero disculpa por no responderte antes pero el comentario estaba echo en el blog de test y no en el oficial por lo que no me llegó la notificación (la url test.thoughts.com.es no es valida, tiene que ser en thoughts.com.es). En respuesta a tu pregunta, ese archivo no tiene que existir, simplemente es un archivo que se debe crear automáticamente y que es la salida de lo que sale en pantalla, pero fijate que no están poniendo bien el comando, lo que va delante del pi es el símbolo ~ (lo puedes escribir pulsando Alt+126) y no un guión, por eso te está dando error. Espero que así lo consigas. Un saludo!
Hola, quisiera su ayuda. Al reproducir un vídeo y salir de el, este se sigue reproduciendo detrás en un segundo plano. En mi xbmc del ouya logre quitarlo, pero ahora en otro dispositivo no encuentro donde está esa configuración. Si saben les agradecería su ayuda.
Hola Dante, lo primero disculpa por no responderte antes pero el comentario estaba echo en el blog de test y no en el oficial por lo que no me llegó la notificación (la url test.thoughts.com.es no es valida, tiene que ser en thoughts.com.es). En cuanto a tu problema, no sé a que te refieres con «salir del video». Efectivamente si estas reproduciendo un video en Kodi y pulsas simplemente el menú pues navegas por los menus pero el video sigue en segundo planto. Para parar el vídeo simplemente deber pulsar el botón Stop (el cuadradillo de toda la vida), de esa manera detendrás el video sin problema. Un saludo!
hola tengo raspberry pi B con raspbian, y kodi, Active lo de CEC para controlar kodi con el control remoto de la tv e instale el addon de you tube y funciona bien, el detalle es que al principio cunado veia videos durante la reproduccion al presionar en el control remoto de la tv, el boton de flecha abajo aparecian sobre el mismo video un menu donde podias elejir ver los videos relacionados o videos subidos para el canal del usuario, al igual que como funciona en el navegador cuando usas «youtube/tv» si presionas flecha abajo en el teclado durante la reproduccion de un video. El problema es que ahora ya no puedo hacer eso, ahora el boton de flecha abajo del tv funciona como el boton de flecha izquierda, alguien sabe como solucionar eso?
Hola! La verdad es que al final, no pude configurar mas teclas, porque mi mando no envía nada mas… pero te quería agradecerte públicamente el post ya que pude ver exactamente que limitaciones tenia de teclas. Muchas gracias!!! Sergio
Me alegro que te haya sido de utilidad. La verdad que con tantos tipos de televisión y formas de implementar el CEC este método, aunque parece algo engorroso, es bastante chulo para ver todo lo que podemos hacer. Muchas gracias por tu comentario.
Hola ¿Sabes cómo podemos usar el mando a traves de la tele conectada por hdmi para poder envíar señales a programas escritos en python? graicas
Hola. ¿Sabes si con este método hay alguna manera de que la Raspberry se apague y se encienda con la tele? Un saludo y gracias.
Muy bien explicado, has conseguido que pueda manejar todo el control remoto sin depender de app en el móvil gracias.
Tengo una sony bravia y cuando instalé el kodi en la raspberry pi 2, funcionaba con el control de mi tv. no se que pasó que dejó de funcionar, ahora controlo el kodi el con el mouse, pero es muy impráctico. dime si hay alguna manera de hacerlo funcionar. Saludos y gracias.
Buenas tardes Ivan… Porque el botón derecho del ratón no me deja ir Atrás??? Esto me pasa desde ayer y por lo que he averiguado en mi TV BOX es problema de KODI porque lo demás funciona correctamente. GRACIAS
Hola, tengo un televisor lg, la raspberry conectada por hdmi, pulso el simplink y me aparecen todas las opiniones en gris, no me deja seleccionar nada, si me pudieras hechas una mano, gracias
¿Que versión de Kodi tienes?
Ya se que tienes un tiempo el articulo, pero esta genial y es de mucha ayuda!!. Si quieres actualizar la primera parte LibreElec es una gran alternativa a OpenElec que anda un poquito de capa caida. Gracias