Alta definición
Registro en forodvd
+ Responder tema
Resultados 1 al 11 de 11

Configurar cualquier mando con XBMC sin comprar nada

Vista híbrida

Mensaje anterior Mensaje anterior   Próximo mensaje Próximo mensaje
  1. #1
    honorable Avatar de Gromit
    Registro
    14 may, 14
    Mensajes
    537
    Agradecido
    839 veces

    Predeterminado Re: Configurar cualquier mando con XBMC sin comprar nada

    Un primer borrador, un poco tocho, sería:

    Configurar cualquier mando para XBMC/Kodi sobre linux con LIRC.


    Introducción.
    El objetivo es poder configurar cualquier mando a distancia que tengamos por casa para manejar XBMC. Con esto podemos conseguir:
    • ahorrarnos comprar otro mando que incremente la plaga de cacharros que pueblan el sofá, reutilizando un mando viejo, o mejor todavía:
    • aprovechar algunos botones no usados del mismo mando de la tele o del recepto AV. De forma que con un solo mando manejamos tanto la TV como la XBMC mientras vemos peliculas. Así lo tengo yo y parece que el XBMC esté integrado en la misma TV o receptor. Un anillo para dominarlos a todos...
    • consecuentemente podemos simplemente personalizar algunos botones con cualquier acción de la XBMC a nuestro gusto, dando nueva vida a los rebaños de inútiles botones que colocan los fabricantes en todos los mandos para que parezcan la sala de control de la enterprise (es bien sabido que la calidad de un aparato se conoce por la cantidad de botones que trae).

    Por ejemplo: un botón para ir directamente a: peliculas/generos con un solo click. O para apagar el htpc sin pedir confirmación, shutdown directo, o para ponerlo en sleep, etc.

    Requisitos:
    • mmm… un mando a distancia! por infrarojos, casi cualquiera vale (con pilas).
    • Un htpc (pc) que tenga lector de infrarojos (IR receiver), muchos ya tienen. O ponerle uno.
    • XBMC. En mi caso corre sobre linux (ubuntu) y es lo que voy a explicar aquí. Para windows o mac la primera parte será diferente pero la configuración de XBMC debería ser igual.
    • paciencia...


    Resumen de los pasos:
    - A- Comprobar que LIRC funciona y reconoce el mando.
    LIRC es el “daemon” (servicio) de linux que se ocupa de leer las señales que llegan por el puerto de infrarojos. Lo primero es comprobar que funciona y que recibe algo cuando le das a un boton del mando.
    -B- Buscar o crear el archivo de configuración de tu mando concreto para LIRC.
    donde se apareja la señal de cada botón (un numeraco hexadecimal) con un ID del botón. Para muchos mandos la configuración ya está creada. Para el resto, como el mio, se puede crear mediante un programa de 'aprendizaje', que te pide ir dandole a los botoncitos y va creandolo.
    -C- Mapearlos las pulsaciones de botones de LIRC con acciones de XBMC. (play, pause, stop, up, down, left, right, select, info...).

    Pasos:
    Previo: Lo primero sería decidir que mando vamos a usar. Esto no es un tema técnico sino de lógica. Puede ser el mando de algun aparato que esté apagado mientras vemos peliculas o bien usar los botones que no se usan de un aparato que si está en uso y en marcha, como la TV o el reproducto A/V. Pero de forma que no interfieran, logicamente. Por ejemplo, si mapeamos el botón 'power' del mando de la TV con el 'play' de XBMC vamos a tener problemas...

    Muchos mandos tienen botones que no se usan o no tienen efecto en modo normal, algunos como el mio tienen justamente botones de play, pause, etc. que son perfectos justo para eso.

    - A- Comprobar que LIRC funciona y reconoce el mando.
    En muchas distribuciones LIRC ya viene y lo tendrás instalado. Sino tendreis que buscar como instalarlo en vuestra distribución, por ejemplo en las basadas en debian puede instalarse, junto las configuraciones, con el siguiente comando:

    Código:
    apt-get install ir-keytable lirc
    Durante la instalación nos preguntará que mando tenemos, si no aparece el nuestro seleccionar cualquiera.

    Una vez instalado LIRC yo empezaría por probar si el sistema recibe las señales de infrarojos de nuestro mando, osea si el hardware está funcionando y el sistema operativo se entera. Para ello y para las configuraciones posteriores necesitaremos averiguar dos cosas importantes:

    - El “device” de infrarojos de nuestro sistema: /dev/XXXX (en mi caso /dev/lirc0)
    - El driver. Puede ser que con “default” nos funcione. Si no se tendrá que investigar y buscar por ahí.

    El device es una especie de directorio virtual donde el hardware deja las señales del puerto infrarojo. En mi caso, un intel NUC con una distribución basada en ubuntu (debian), el device es: /dev/lirc0
    Si ya estubiera configurado en vuestro sistema tal vez podais encontrar los valores correctos en: /etc/lirc/hardware.conf

    Con esto vamos a ver si el sistema recibe algo por el puerto IR. Pasamos a modo root, detenemos el daemon de lirc en caso de que este activo y volcamos el contenido del device en pantalla:

    Código:
    	sudo -s                                 
    	/etc/init.d/lirc stop 	(para otras distribuciones el comando puede variar)
    	cat /dev/lirc0   		(o el device correspondiente de tu sistema)
    Entonces si pulsamos cualquier botón del mando (de cualquier mando), deberían aparecer numeracos por el terminal, algo así:

    Código:
    6s?#~<+<y<+<y<y<y<y<+<y<+<y<+<+<+<+<y<+<y<y<y<y<+V_<y<y<+
    <+VV<y<+VVA?)#VH?)#dVV_VpEV_V_V_<+V_VpEVVV<+V_V_VV_V_V_VVV_VV_VVp?V_
    pEp?V91#VQ?K????!)#dVV_VV_V_V_V_VV_VpEVVVVV_VV_V_V_pEVVV_V_Vp?VhV_V_Vp'?
    C#VH?u?)#d<+<y<+V_V_<y<yVV_<+V_p?
    <+VVV_VVV_V_V_VVV_V_V_VVVV_V_Vp1#VQ??N)#dV_V_pEpEpEpEV_VpEVVhVVp?VV_VVV_VpEV
    _VVpEV_VV_VVpEVJ?)#V@?^C
    Cortamos con CTRL-C.

    Eso significa que el puerto infrarojos funciona y recibe la señal del mando. Los carácteres anteriores son codificaciones “en crudo” de las pulsaciones (no son un script en perl, aunque lo parezcan al ojo inexperto).
    Si esto no funciona, mal vamos. O no hay puerto de infrarojos o el sistema no lo ha reconocido, o ambos dos. Lo mejor sería buscar informacion sobre la instalacion de LIRC en tu distribucion. Por ejemplo para ubutu: https://help.ubuntu.com/community/LIRC . Y para tu hardware concreto.
    Y que no te pase nada...

    -B- Buscar o crear la configuración para LIRC.
    Si lo anterior funciona lo siguiente es que LIRC reconozca nuestro modelo de mando.
    Primero revisamos la configuración de LIRC, echamos un vistazo al archivo: /etc/lirc/hardware.conf
    Ahí debería estar especificado el device, el driver y otras cosas. Si no lo está lo completais o directamente lo borrais todo y escribís lo siguiente:

    Código:
    REMOTE_DRIVER="default"
    REMOTE_DEVICE="/dev/lirc0"
    REMOTE_SOCKET="/var/run/lirc/lircd"
    REMOTE_LIRCD_CONF="/etc/lircd/lircd.conf"
    REMOTE_LIRCD_ARGS=""
    START_LIRCD="true"
    LOAD_MODULES="true"
    LIRCMD_CONF=""
    FORCE_NONINTERACTIVE_RECONFIGURATION="false"
    START_LIRCMD=""
    Ajustando el driver y el device según vuestro sistema. De nuevo para otras distribuciones podría ser diferente, tendreis que investigar por google.
    Y aseguraos que el archivo de configuración está en el lugar especificado: /etc/lircd/lircd.conf
    Con eso debería bastar y el lirc arrancar y funcionar. Si no tendreis que buscar por google según vuestro modelo de HTPC y distribución, por ejemplo buscad en google: «lirc, redhat, hp-viejuno-XYZ»

    Si tenemos suerte nuestro mando igual es uno de los que viene configurado por defecto.Podemos comprobarlo con el programa para testear LIRC, el irw, de la siguiente manera.
    Pasamos a root, si no lo estamos ya, arrancamos el daemon LIRC de nuevo y lanzamos el irw:

    Código:
    sudo -s
    /etc/init.d/lirc start
    irw
    Ahora si pulsamos teclas del mando deberían aparecer las pulsaciones en el terminal, algo así:

    Código:
    000000005ea1b946 00 Up MyRemote
    000000005ea1b946 01 Up MyRemote
    000000005ea17b84 00 Enter MyRemote
    000000005ea17b84 01 Enter MyRemote
    00000000fe8016e9 00 Play MyRemote
    00000000fe8016e9 01 Play MyRemote
    00000000fe80e619 00 Pause MyRemote
    00000000fe80e619 01 Pause MyRemote
    Cortamos con CTRL-C.

    Si no sale nada por pantalla es normal, significa que vuestro mando no viene configurado por defecto. En caso de que si que funcione, podeis pasar a la parte -C-.
    Sino, pues hay que buscar o crear la configuración de vuestro mando en concreto, como explicamos a continuación.
    Lo primero sería buscar si aparece tu mando, por fabricante y modelo aquí: LIRC - Linux Infrared Remote Control (o un modelo similar).
    Si está nos bajamos el conf, lo copiamos en /etc/lirc/ y lo renombramos como: lircd.conf
    Reiniciamos el daemon:
    Código:
    /etc/init.d/lirc restart
    y volvemos a probar con irw como en el paso anterior. Si funciona pasamos a -C-

    Si no está nuestro mando es que nadie lo ha mapeado aun, tendrás la oportunidad de ser el primero! Usaremos un programa para que “aprenda” nuestras teclas:

    Código:
    cd /etc/lircd/
    /etc/init.d/lirc stop
    irrecord --driver=default --device=/dev/lirc0 --disable-namespace MyRemote    (poniendo el driver y device correctos)
    Este programa nos pedirá que vayamos pulsando teclas aleatoriamente y sin parar durante un rato, para identificar parametros generales del mando. Una vez hecho esto nos pedirá que pongamos el nombre de una tecla, escribimos por ejemplo “play”,le damos al enter y nos dirá que dejemos pulsada la tecla “play” un segundo o dos. Luego lo mismo con otra tecla y asi sucesivamente hasta que registremos todas las teclas que necesitemos.

    Cuando acabemos nos dejará un archivo: MyRemote.conf que tendremos que renombrar a lircd.conf Todo esto en el directorio /etc/lircd/ en el que estamos.
    Reiniciamos el daemon y volvemos a probar con irw. Ahora al pulsar las teclas que hemos registrado deberían aparecer en pantalla con los nombres que les hemos puesto.

    -C- Mapear las pulsaciones registradas en LIRC con acciones de XBMC.
    Para ello salimos de root y vamos al directorio ~/.xbmc/userdata/ de la home de nuestro usuario. Allí necesitaremos tener un archivo Lircmap.xml . Si no está lo copiamos de /usr/share/xbmc/system/
    Antes de nada volvemos a echar un vistazo al archivo: /etc/lirc/lircd.conf Debería ser algo así:

    Código:
    begin remote
                          name  MyRemote
                          bits           32
                          flags SPACE_ENC|CONST_LENGTH
                          eps            30
                          aeps          100
                          header       8984  4466
                          one           578  1650
                          zero          578   548
                          ptrail        579
                          repeat       8986  2228
                          gap          107554
                          toggle_bit_mask 0x0
    
                              begin codes
                                  Play                     0xFE8016E9
                                  Pause                    0xFE80E619
                                  Stop                     0xFE809669
    			    ... (mas codigos)
                              end codes
    end remote
    Nos fijamos en el nombre del mando en “name”, que si no lo hemos cambiado será: MyRemote Y en la sección de los codigos estarán los que hemos mapeado con los nombres que les hayamos puesto.

    A continuación editamos el archivo Lircmap.xml para echar un vistazo. Después de algunos comentarios y morralla vemos algo como lo siguiente:

    Código:
    <lircmap>
          <remote device="mceusb">
                 <play>Play</play>
                  <pause>Pause</pause>
                  <stop>Stop</stop>
    		...
    El nombre del device en este caso es “mceusb”, un mando tipo MCE que supongo que no es el nuestro. Lo que tenemos que hacer es cambiarle el nombre o bien crear una seccion igual con el nombre del nuestro, que es el que aparece en /etc/lirc/lircd.conf y que si no lo hemos cambiado sera “MyRemote”. Lo ajustamos de forma que tengamos una sección que empieze asi:

    Código:
    <lircmap>
           <remote device="MyRemote">
                    <play>Play</play>
                    <pause>Pause</pause>
                    <stop>Stop</stop>
    		...
    Y las siguientes lineas definen las acciones de XBMC contra las pulsaciones definidas en /etc/lirc/lircd.conf (ojo con las mayusculas).
    Las de arriba son evidentes, la que esta en mayusculas en medio es la pulsación definida en /etc/lirc/lircd.conf.

    Por ejemplo, yo tengo definido que la tecla “Display” de mi mando me muestre la info de la película en XBMC.
    Con lo cual en /etc/lirc/lircd.conf tengo una linea en la sección de los códigos:

    Código:
    Display                  0xFE8006F9
    Y en el Lircmap.xml tengo otra:

    Código:
    <info>Display</info>
    En este caso “Display” es el botón mapeado en LIRC y “info” es la acción de XBMC que hemos mapeado.

    Y así con todos los botones que hayamos definido. También podemos cambiar acciones por defecto para ajustarlas a nuestras preferencias. O bien eliminar mapeos de botones para que no interfieran con el aparato. Solo hemos de asegurarnos que los nombres coinciden en ambos archivos, no hay duplicados y todo cuadra.

    Arrancamos el daemon: /etc/init.d/lirc start , reiniciamos XBMC y ya debería obedecer a nuestro mando! Voilà! o como dicen los franceses: bualá.
    Con esto ya estaría, solo quedaría eventualmente afinar la configuración de los botones como realmente nos vaya mejor según probemos.

    El resto de secciones <remote ...> del Lircmap.xml definen otros mandos, nos los podemos cargar todos menos el nuestro, o dejarlos ahi que tampoco molestan.
    La mayoria de acciones disponibles las podemos ver en las otras secciones que nos acabamos de cargar. O buscarlas por ahí.

    De hecho las acciones realmente se definen en otro sitio, en un archivo remote.xml que podemos colocar en la subcarpeta “keymaps”. Esto solo es necesario si queremos definir acciones mas avanzadas que no están definidas por defecto. Por ejemplo podemos definir acciones como:

    Código:
    <mymusic>XBMC.ActivateWindow(MyMusic)</mymusic>
    <power>ActivateWindow(shutdownmenu)</power>
    <clear>XBMC.ActivateWindow(Weather)</clear>
    etc.
    Pero la mayoría de las habituales ya vienen definidas. Los diferentes keymaps para ver que acciones hay o copiarnoslos al directorio ~/.xbmc/userdata/keymaps/ del usuario podemos encontrarlos en: /usr/share/xbmc/system/keymaps/

    Espero que sirva de ayuda, si alguien consigue aclarase con el follón de explicación. De hecho las indicaciones están muy basadas en mi configuración concreta que es la única que he podido probar. En otras máquinas o distribuciones de linux el tema puede variar bastante, pero al menos espero que esto ayude a entender un poco el montaje general.
    jmqnick, julian999, sike8426 y 5 usuarios han agradecido esto.

  2. #2
    honorable Avatar de Gromit
    Registro
    14 may, 14
    Mensajes
    537
    Agradecido
    839 veces

    Predeterminado Re: Configurar cualquier mando con XBMC sin comprar nada

    No se si pensais que vale la poner la explicacion en algun sitio, o alguna correccion o mejora. Tal vez se podria extener con el metodo para windows, yo ya no tengo ninguno en casa para probar
    Tassadar y reydarvi han agradecido esto.

  3. #3
    Iniciado Avatar de reydarvi
    Registro
    05 ene, 13
    Mensajes
    398
    Agradecido
    125 veces

    Predeterminado Re: Configurar cualquier mando con XBMC sin comprar nada

    Muchas gracias crack, menudo curro, de verdad se agradece y a mas de uno le viene bien

  4. #4
    gurú Avatar de Tassadar
    Registro
    19 may, 09
    Mensajes
    9,688
    Agradecido
    8266 veces

    Predeterminado Re: Configurar cualquier mando con XBMC sin comprar nada

    Estupenda información, Gromit

    Gracias por el curro.

    Saludos

  5. #5
    recién llegado
    Registro
    26 may, 14
    Mensajes
    5
    Agradecido
    3 veces

    Predeterminado Re: Configurar cualquier mando con XBMC sin comprar nada

    Hola,

    una pregunta, que receptor de infrarrojos tienes? Sirve cualquiera que encuentre por internet o han de ser de algún tipo en concreto?
    He visto adaptadores usb/irda pero he leído en algún que otro foro en ingles que no sirve porque no es compatible con LIRC y WINLIRC, esto es así?
    Mi mando también es de un Av yamaha.

+ Responder tema

Temas similares

  1. Mando a distancia para XBMC
    Por jotab en el foro HTPC: Configuraciones hardware y software
    Respuestas: 22
    Último mensaje: 02/06/2014, 21:35
  2. Cualquier mando enciende HTPC
    Por gurutzo en el foro HTPC: Configuraciones hardware y software
    Respuestas: 5
    Último mensaje: 19/03/2014, 10:48
  3. Respuestas: 10
    Último mensaje: 28/01/2014, 19:11
  4. Configurar mando harman kardon
    Por luis d en el foro Cableado A/V, conexiones A/V, mandos a distancia
    Respuestas: 0
    Último mensaje: 06/01/2011, 07:38
  5. configurar mando universal vivancos
    Por juanillos en el foro Cableado A/V, conexiones A/V, mandos a distancia
    Respuestas: 0
    Último mensaje: 25/04/2009, 14:58

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •  
Powered by vBulletin® Version 4.2.3
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.
Search Engine Optimization by vBSEO
Image resizer by SevenSkins