Mando a Distancia
Hola, tengo un problema, poseo una raspberry pi zero w a la cual le tengo instalado la distribución dietpi con el kodi instalado y el tvheadend. Todo funciona muy bien, el problema esta en que le tengo puesto un mando usb Xenta Wireless Receiver (Keyboard and Mouse) y lo me que gustaría hacer es que al pulsar un botón del mando se me abriera el kodi desde la consola (ya que el dietpi arranca en modo texto pues no le tengo instalado ningún escritorio) por medio de un script o algo así, es decir sin lirc, pues el mando al ser usb ya funciona de lujo en kodi. No se si es posible lo que quiero pues no encuentro nada por ningún lado. Gracias.
Hola como veo que nadie me contesta me contesto yo solo, esto es lo he echo para solucionar mi problema por si a alguien le interesa.
Como configurar una tecla de un mando a distancia para abrir el kodi desde la terminal de Linux
Para realizar esta tarea vamos a crear un script python que este escuchando la tecla la cual queremos pulsar para que el realice la apertura de kodi.
Primero utilizamos el comando lsusb para ver que mandos usb tenemos conectados y sobre todo fijarnos el en Id de dicho dispositivo.
Al hacerlo podemos ver el id de nuestro mando en este caso el mío es el Xenta Wireless Receiver con un ID 1d57:ac01
root@DietPi:/# lsusb
Bus 001 Device 005: ID 1d57:ac01 Xenta Wireless Receiver (Keyboard and Mouse)
Bus 001 Device 004: ID 0fe6:9700 Kontron (Industrial Computer Source / ICS Advent) DM9601 Fast Ethernet Adapter
Bus 001 Device 003: ID 24ae:2000
Bus 001 Device 002: ID 1a40:0101 Terminus Technology Inc. 4-Port HUB
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
root@DietPi:/#
Después hacemos un cd /sys/kernel/debug/hid y ahí ejecutamos un ls -l como podemos ver .
root@DietPi:/sys/kernel/debug/hid# ls -l
total 0
drwxr-xr-x 2 root root 0 ene 1 1970 0003:1D57:AC01.0003
drwxr-xr-x 2 root root 0 ene 1 1970 0003:1D57:AC01.0004
drwxr-xr-x 2 root root 0 ene 1 1970 0003:24AE:2000.0001
drwxr-xr-x 2 root root 0 ene 1 1970 0003:24AE:2000.0002
root@DietPi:/sys/kernel/debug/hid#
Ahí vemos 4 carpetas y si nos fijamos las dos primeras contienen el ID de nuestro mando, yo entre en la primera de ellas no sé porque será por empezar por el principio. Ahí volví a ejecutar el comando ls-l y podemos ver dos archivos.
root@DietPi:/sys/kernel/debug/hid# cd 0003\:1D57\:AC01.0003/
root@DietPi:/sys/kernel/debug/hid/0003:1D57:AC01.0003# ls -l
total 0
-r-------- 1 root root 0 ene 1 1970 events
-r-------- 1 root root 0 ene 1 1970 rdesc
root@DietPi:/sys/kernel/debug/hid/0003:1D57:AC01.0003#
Vale pues si ahora hacemos un cat events el sistema se queda a la escucha para que pulsemos un botón de nuestro mando a distancia. Pulsamos la tecla a la cual le queremos dar la función para que abra nuestro kodi, si utilizamos el mando para más tareas sería bueno que eligiéramos un botón que no esté asignado a ninguna función.
Al pulsar el botón nos sale por pantalla unos códigos en mi caso estos:
report (size 8) (unnumbered) = 0c 00 28 00 00 00 00 00
Keyboard.00e0 = 0
Keyboard.00e1 = 0
Keyboard.00e2 = 1
Keyboard.00e3 = 1
Keyboard.00e4 = 0
Keyboard.00e5 = 0
Keyboard.00e6 = 0
Keyboard.00e7 = 0
Keyboard.0028 = 1
report (size 8) (unnumbered) = 00 00 00 00 00 00 00 00
Keyboard.00e0 = 0
Keyboard.00e1 = 0
Keyboard.00e2 = 0
Keyboard.00e3 = 0
Keyboard.00e4 = 0
Keyboard.00e5 = 0
Keyboard.00e6 = 0
Keyboard.00e7 = 0
Keyboard.0028 = 0
Ahí copie los códigos y me fije cuales son igual a 1 (Keyboard.00e2 = 1 Keyboard.00e3 = 1 Keyboard.0028 = 1) yo no sé porque razón cogí el ultimo código es decir el Keyboard.0028 = 1 y fue el que utilice el en código python.
Para crear el código python puse en pantalla nano kodi.py (yo utilizo nano porque me gusta más pero pueden utilizar el que más les guste) y ahí copie el siguiente código.
#!/usr/bin/python
import sys
import subprocess
x='si'
while x=='si':
tecla = sys.stdin.read(1)
subprocess.call('kodi', shell=True)
print 'Has presionado ', tecla
if tecla=='Keyboard.0028':
x='no'
Bueno pues por ahora eso es todo lo que he realizado y ya funciona al apretar el botón que yo deseo se abre el kodi.
Como configurar una tecla de un mando a distancia para abrir el kodi desde la terminal de Linux
Para realizar esta tarea vamos a crear un script python que este escuchando la tecla la cual queremos pulsar para que el realice la apertura de kodi.
Primero utilizamos el comando lsusb para ver que mandos usb tenemos conectados y sobre todo fijarnos el en Id de dicho dispositivo.
Al hacerlo podemos ver el id de nuestro mando en este caso el mío es el Xenta Wireless Receiver con un ID 1d57:ac01
root@DietPi:/# lsusb
Bus 001 Device 005: ID 1d57:ac01 Xenta Wireless Receiver (Keyboard and Mouse)
Bus 001 Device 004: ID 0fe6:9700 Kontron (Industrial Computer Source / ICS Advent) DM9601 Fast Ethernet Adapter
Bus 001 Device 003: ID 24ae:2000
Bus 001 Device 002: ID 1a40:0101 Terminus Technology Inc. 4-Port HUB
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
root@DietPi:/#
Después hacemos un cd /sys/kernel/debug/hid y ahí ejecutamos un ls -l como podemos ver .
root@DietPi:/sys/kernel/debug/hid# ls -l
total 0
drwxr-xr-x 2 root root 0 ene 1 1970 0003:1D57:AC01.0003
drwxr-xr-x 2 root root 0 ene 1 1970 0003:1D57:AC01.0004
drwxr-xr-x 2 root root 0 ene 1 1970 0003:24AE:2000.0001
drwxr-xr-x 2 root root 0 ene 1 1970 0003:24AE:2000.0002
root@DietPi:/sys/kernel/debug/hid#
Ahí vemos 4 carpetas y si nos fijamos las dos primeras contienen el ID de nuestro mando, yo entre en la primera de ellas no sé porque será por empezar por el principio. Ahí volví a ejecutar el comando ls-l y podemos ver dos archivos.
root@DietPi:/sys/kernel/debug/hid# cd 0003\:1D57\:AC01.0003/
root@DietPi:/sys/kernel/debug/hid/0003:1D57:AC01.0003# ls -l
total 0
-r-------- 1 root root 0 ene 1 1970 events
-r-------- 1 root root 0 ene 1 1970 rdesc
root@DietPi:/sys/kernel/debug/hid/0003:1D57:AC01.0003#
Vale pues si ahora hacemos un cat events el sistema se queda a la escucha para que pulsemos un botón de nuestro mando a distancia. Pulsamos la tecla a la cual le queremos dar la función para que abra nuestro kodi, si utilizamos el mando para más tareas sería bueno que eligiéramos un botón que no esté asignado a ninguna función.
Al pulsar el botón nos sale por pantalla unos códigos en mi caso estos:
report (size 8) (unnumbered) = 0c 00 28 00 00 00 00 00
Keyboard.00e0 = 0
Keyboard.00e1 = 0
Keyboard.00e2 = 1
Keyboard.00e3 = 1
Keyboard.00e4 = 0
Keyboard.00e5 = 0
Keyboard.00e6 = 0
Keyboard.00e7 = 0
Keyboard.0028 = 1
report (size 8) (unnumbered) = 00 00 00 00 00 00 00 00
Keyboard.00e0 = 0
Keyboard.00e1 = 0
Keyboard.00e2 = 0
Keyboard.00e3 = 0
Keyboard.00e4 = 0
Keyboard.00e5 = 0
Keyboard.00e6 = 0
Keyboard.00e7 = 0
Keyboard.0028 = 0
Ahí copie los códigos y me fije cuales son igual a 1 (Keyboard.00e2 = 1 Keyboard.00e3 = 1 Keyboard.0028 = 1) yo no sé porque razón cogí el ultimo código es decir el Keyboard.0028 = 1 y fue el que utilice el en código python.
Para crear el código python puse en pantalla nano kodi.py (yo utilizo nano porque me gusta más pero pueden utilizar el que más les guste) y ahí copie el siguiente código.
#!/usr/bin/python
import sys
import subprocess
x='si'
while x=='si':
tecla = sys.stdin.read(1)
subprocess.call('kodi', shell=True)
print 'Has presionado ', tecla
if tecla=='Keyboard.0028':
x='no'
Bueno pues por ahora eso es todo lo que he realizado y ya funciona al apretar el botón que yo deseo se abre el kodi.