Scripting: detector de presencia bluetooth

2 minute read

Una noche de insomnio no puede ser desaprovechada, así que estaba hurgando en mi ordenador cuando he descubierto un script que hice hace mucho tiempo.

Se trata de un script que al detectar la presencia de un dispositivo bluetooth (ya sea por el nombre o por la MAC) ejecuta un programa. Algunos pensarán, pues vaya chorrada y yo digo, pues sí, pero bueno, cuando a veces te aburres y practicas pequeñas cosas que vas aprendiendo de scripting te salen cosas que pueden tener cierta utilidad.

A continuación dejo una lista de diversas utilidades que se le podría dar:

  • Cuando llegas a casa el ordenador te pone música. Se podría hacer que en función del nombre de tu dispositivo te ponga un tipo de música u otro, ejemplo, llegas el sábado con una chati así que estableces el nombre de tu móvil a “romantico” y el programa se encarga de lanzar tu reproductor de música con las canciones que derretirían a cualquiera, encender las velas no está al alcance de este script ;)

  • Activar el bluetooth del móvil de tu padre/madre/hermano/hermana para que cuando estén llegando a casa te avise mediante una alarma (comando beep), por si estás haciendo algo raro que no quieres que se enteren

  • Arrancar los programas que más utilizas, como por ejemplo tu programa de mensajería instantánea, por si no te gusta dejarlo siempre conectado

  • Autosincronizar el teléfono móvil para que se bajen las nuevas citas, cumpleaños y contactos

  • Muchas cosas más…

Así mismo se podría invertir la lógica para que en vez de detectar tu presencia detectase tu ausencia y en función de ello realizase alguna opción (esto vi que estaba por ahí hecho y bloqueaba tu ordenador). A mi se me ocurrió que si se alejaba tu teléfono (te lo roban) se pusiese a pitar el ordenador alertando del hurto.

Bueno, no me extiendo más, aquí va el script que está suficientemente comentado:

` #!/bin/bash

#Este script se encarga de detectar los dispostivos bluetooth disponibles. #Si encuentra uno que coincide con la variable device lanza el programa que queramos.

#Author: Jaime Bosque (aka KetS) #e-mail: jaboto {arroba} gmail {punto} com #date 6 / 5 / 2005

#licencia GPL

———GPL——-

Este scrip se distribuye bajo licencia GPL, puede distribuirlo y/o

modificarlo bajo los terminos de la GNU General Public License.

para mas informacion en castellano visite:

http://es.tldp.org/Otros/gples/gples.html

———————

modificado (30/04/2008): dominio público, haz con el lo que quieras… ;)

#mandar sugerencias y/o bugs a la direccion de arriba!

#En device introduce el nombre de tu móvil o dispositivo bluetooth device=Original file=scanBT.txt program=”xmms -p -Q ~/musiquita.m3u”

#primero eliminamos el archivo $file si existiese rm $file

while true do #Scanneo de dispositivos BT echo “Buscando dispositivos BlueTooth” hcitool sca > $file

#Buscamos dentro del archivo que queremos $file, con una entrada nos bastara
# ademas con el parametro -o evitamos que salga la parte de la linea
# que no coincide con nuestra variable que buscamos.

var1=`grep --max-count=1 -o $device $file`

if [ $var1 = $device ]
then
	break
else
    	echo "no encontrada"
fi		

#Dormimos 10 segundos
sleep 10 done

   	echo "Encontrado $device"
echo "Ahora lanzara el programa $program"
$program  `

Algunas anotaciones:

  • Cambiar el nombre del dispositivo

  • Recomiendo ejecutarlo redirigiendo la salida a null (ej: ./bluetooth > /dev/null) para que no muestre las salidas