Bloqueo y desbloqueo de pantalla por detector de presencia en Ubuntu con bluetooth: aimtooth

16/03/2007 21:44

En la oficina soy la comidilla de todos los días gracias a mi script para bloquear y desbloquear la pantalla, cuando me alejo o me acerco a mi puesto, respectivamente. Me tildan de friki, los muy microsofteros ;) Ha tenido tanto éxito, que he decidido compartirlo con mis lectores.

La idea es la siguiente: el PC busca cada n segundos mi terminal móvil con bluetooth, si lo encuentra mide la distancia desde el PC a mi móvil (en realidad detecta la calidad del enlace, lo que podemos transformar en distancia) , y si mi móvil está dentro de la distancia estipulada, se considera como presencia, y si no, como no presencia. Si la pantalla está activada y detecta no presencia, entonces bloquea la pantalla, y si detecta presencia y la pantalla está bloqueada, la desbloquea.

Pensaba que la batería de mi móvil se resentiría demasiado por tener todo el día activado el bluetooth, pero lo cierto es que apenas aprecio diferencia alguna (Sonyericsson W800i).

aimtooth

El script lo hice en bash, y es bastante rudimentario, aunque ya estoy preparando un script mejor logrado en Python (FUD gratuito: odio Perl, viva Python) usando la PyBluez.

La configuración es bien sencilla, primero buscamos el id y el nombre de nuestro móvil con hcitool:

$ hcitool scan
00:00:00:00:00:00 Tux Movil

Si ves un listado enorme, mira en tu móvil qué nombre tienes puesto para bluetooth.

El id (00:00:00:00:00:00) hay que ponerlo en la variable ID, y el nombre (Tux Movil) en la variable NAME, dentro del script:

ID="00:00:00:00:00:00"
NAME="Tux Movil"

Lo siguiente será establecer las variables ON_CONNECT y ON_DISCONNECT, donde pondremos la sentencia a ejecutar cuando el script detecte presencia (después de haber detectado no presencia), y cuando detecte no presencia, respectivamente:

ON_CONNECT="sudo -u tux gnome-screensaver-command --deactivate"
ON_DISCONNECT="sudo -u tux gnome-screensaver-command --lock"

Eso es para desbloquear y bloquear el salvapantallas de Gnome con el usuario tux. Usamos sudo ya que el script se debe ejecutar como root. Desconozco los comandos para bloquear y desbloquear la pantalla en KDE, pero no será muy distinto.

Por último, sólo nos queda ejecutar el script:

$ sudo ./aimtooth

Y si lo queremos en modo demonio:

$ sudo ./aimtooth >/dev/null &

Podéis hacer también que suene algún tema musical al salir o entrar (en mi oficina suena Carmina Burana cada vez que entro), que os diga "bienvenido señor Martínez" (con festival), o qué se yo... dejad volar la imaginación ;)

aimtooth v0.1a


19/03/2007 | Narciso Cerezo
avatar de Narciso Cerezo
Muy bueno, gracias por el script. Lo voy a probar en mi flamante escritorio Ubuntu.

Después de tres años usando Fedora Core, cambié de portátil y como venía con el inefable Windows me quedé con el por pura pereza, al principio unos días al final casi un año hasta que hace unos días decidí volver a Linux y probar Ubuntu.

Creo que no podría haber tomado mejor decisión, y encima lo complementamos con cositas como esta ;-)

21/03/2007 | Diego
avatar de Diego
Hola,

Una idea fantástica, me encanta tu script. Lo voy a usar ahora mismo. Cuanto tengas el nuevo avisa!!!. Te doy ideas para el nuevo que vas a hacer: se le podría añadir algo similar a esa alarma antirrobo de Apple, si se la da a una opción determinada se bloquea el portátil y suena la alarma cuando se aleja del móvil... Es sólo una idea. Muchas gracias por el script

21/03/2007 | Maverick
avatar de Maverick
Fantástico.

21/03/2007 | Alberto García
avatar de Alberto García
Jejeje, muy bueno el script.



Ahora a probarlo a ver que tal funciona, pero la idea es buena ;)



GRACIAS!

21/03/2007 | Aleksander Stukov
avatar de Aleksander Stukov
Aco*onante!, funciona de perlas, de perlas de perlas de perlas. He tenido que modificar la señal porque el bluetooth que tengo tiene bastante fuerza (100m) y para que bajara de 205 (creo que estaba así) tenía que cambiarme de país, pero juas, he quedao como el mas Humphrey del vecindario. ¡Eres un artista!.

21/03/2007 | LeoW
avatar de LeoW
hmmm, interesante, se podria hacer un detector de novia usando el movil ;)

22/03/2007 | Suriv
avatar de Suriv
Genial idea para Linux.

22/03/2007 | Luis Carlos Malo
avatar de Luis Carlos Malo
Hola, la idea esta genial, pero a mi no me funciona; me devuelve esto: lcmg@ortigosano:~$ HCI read_link_quality request failed: Input/output error

HCI read_link_quality request failed: Input/output error

HCI read_link_quality request failed: Input/output error

HCI read_link_quality request failed: Input/output error

HCI read_link_quality request failed: Connection timed out





gracias

salu2

22/03/2007 | kanamor
avatar de kanamor
Es perfecto, muchas gracias por tu aporte, me ha encantado. Una pregunta, es posible que el script guarde un log o algo? lo digo para cuando lo lancemos como demonio poder comprobar el log.



Felicidades por el script.!!

22/03/2007 | dexae
avatar de dexae
Será mi móvil o no se pero a mi no me ha funcionado :\ El que si que me ha funcionado es uno hecho en pythonwww.open-gnss.org/cgi-bin/hg

22/03/2007 | trinux
avatar de trinux
Curioso, lo intentaré probar. Saludos.

22/03/2007 | supreme
avatar de supreme
Tu pc tiene bluetooth incorporado? el mio no, pero no sé si funcione con un adaptador bluetooth usb... saludos.

22/03/2007 | Sandevil
avatar de Sandevil
Simplemente genial.

22/03/2007 | David
avatar de David
Muy buen trabajo, voy a probarlo. Gracias

22/03/2007 | Cesarius
avatar de Cesarius
Excelente! ahora mismo lo pruebo... y si lo escribes Python, muchísmo mejor!!!



Saludos

22/03/2007 | hope
avatar de hope
¿Alguien sabe los comandos correspondientes a KDE? No lo encuentro en google...

22/03/2007 | ShADoW_LnX
avatar de ShADoW_LnX
Excelente, lo probe y me funciono con el Sony Ericcson T610 con en Ubuntu Edgy Eft, y con un adaptador bluetooth usb, se pueden hacer cosas muy buenas, gracias Javier, alguien sabe algunas cosas interesantes para bluetooth similar a esta aplicación???

22/03/2007 | Gil
avatar de Gil
Pues yo tengo este problema y no me funciona:



AIMTOOTH: conectado al dispositivo

AIMTOOTH (16:05:37): CONNECT=1 / Q=255 / QLAST=255 / QM=255 / QCOUNTER=0

AIMTOOTH (16:05:40): CONNECT=1 / Q=255 / QLAST=255 / QM=255 / QCOUNTER=0

AIMTOOTH (16:05:43): CONNECT=1 / Q=255 / QLAST=255 / QM=255 / QCOUNTER=0

Not connected.

AIMTOOTH: problemas de conexion

AIMTOOTH (16:05:47): CONNECT=1 / Q=0 / QLAST=0 / QM=0 / QCOUNTER=4

AIMTOOTH: se detectó ausencia!

sudo: no passwd entry for tux!



Gracias por tu script.

Saludos.

22/03/2007 | javier.perez
avatar de javier.perez
Gil: Debes poner tu nombre de usuario (el que uses para acceder a Gnome) en la variable ON_CONNECT y ON_DISCONNECT, sustituyendo a "tux".

ON_CONNECT="sudo -u TUNOMBREDEUSUARIO gnome-screensaver-command --deactivate"

ON_DISCONNECT="sudo -u TUNOMBREDEUSUARIO gnome-screensaver-command --lock"



Gracias a todos por los elogios ;)

22/03/2007 | Gil
avatar de Gil
Ya está corregido, pero si bien ahora no hace mención a ninguna contraseña, el error es el mismo, me lo reconoce en un primer momento pero despues de 3 barridos donde aparece como conectado, al cuarto:



AIMTOOTH: conectado al dispositivo

AIMTOOTH (17:37:51): CONNECT=1 / Q=255 / QLAST=255 / QM=255 / QCOUNTER=0

AIMTOOTH (17:37:54): CONNECT=1 / Q=255 / QLAST=255 / QM=255 / QCOUNTER=0

AIMTOOTH (17:37:57): CONNECT=1 / Q=255 / QLAST=255 / QM=255 / QCOUNTER=0

Not connected.

AIMTOOTH: problemas de conexion

AIMTOOTH (17:38:02): CONNECT=1 / Q=0 / QLAST=0 / QM=0 / QCOUNTER=4

AIMTOOTH: se detectó ausencia!



Y ahora si que bloquea la pantalla, pero el movil está al lado.



Gracias.

22/03/2007 | Grunch
avatar de Grunch
me funciona de manera extraña, dice en la consola not connected, y ahorita me bloqueo la pantalla con el telefono al lado, me fui y regresé y no se desbloqueó, de todas maneras es muy buena idea, hay un programa que se llama bluemon que consegui y hace algo parecido a este



saludos

22/03/2007 | Ubuntero
avatar de Ubuntero
Hola, buenas, soy un newbbiee en el mundillo linux pero ya estoy conociendo mas este gremio. Encontre este post y probe a modificarlo, todo sin problemas, salvo que parece ser que mi dispositivo usb bluetooth no detecta a mi nokia 6630(obviamente con el bluetooth activado). Tengo contraseña en mi sesion de GNOME(Ahora pruebo con GNOME porque tengo los comandos, pero uso KDE), y pienso que pudiera ser que no tuviera el script bien configurado. GRACIAS Y ENHORABUENA.

23/03/2007 | ShADoW_LnX
avatar de ShADoW_LnX
Una consulta como puedo hacer que se bloquee la pantalla y al mismo tiempo que el festival diga algo como Bloqueando sistema Activando sistema? se que el comando seria

ON_CONNECT="festival --language spanish --tts /home/victor/Desktop/activando"



Pero lo que no se es como hacer para que al mismo tiempo bloquee la pantalla y viceversa

23/03/2007 | Tiriel
avatar de Tiriel
Jejejeje, esto tiene una pinta estupenda, ahora mismo me pongo a enredar para usarlo en MacOS X, ya os contaré si lo consigo...



Un saludo.

25/03/2007 | Denis
avatar de Denis
Felicidades, estas son las cosas que hacen grande un Blog y en consecuencia Internet, compartir de la manera que tu lo haces, prometo probarlo.



Un saludo.

26/03/2007 | G@ucho
avatar de G@ucho
tambien se puede hacer con el bluemon.

packages.debian.org/unstable/net/bluemon />




saludos

avatar de avaloncio
ShADoW_LnX que te parece hacer esto:

ON_CONNECT="./tu_script"



Y en tu_script hacerte un script sencillito que ponga:



sudo -u tux gnome-screensaver-command --deactivate

festival --language spanish --tts /home/victor/Desktop/activando



Nose, yo lo haría asi, y si no, poniendo los dos comandos en la variable ON_CONNECT separados por ; y fiesta :D

28/03/2007 | fran
avatar de fran
Me pasa exactamente lo mismo que a Gil, y no se que mas tengo que tocar. Saludos de un malagueño

28/03/2007 | noctuido
avatar de noctuido
No me atraen los móviles y soy muy profano con ellos, pero podría interesarle a algún amigo. Gracias por compartirlo.

30/03/2007 | Luis Palacios
avatar de Luis Palacios
Genial, lo pruebo en mi linux en breve. Por cierto, para los que también seáis adictos al Mac, acabo de comprobar dicha funcionalidad en un soft que se llama BluePhone y también funciona (ojo que es de pago, pero muy asequible).



Gracias por el script y la idea !

02/04/2007 | eiKa
avatar de eiKa
Me pasa lo mismo q a Gil a los 3 barridos no lo detecta y salta el bloqueo. en cuanto a enviar y recibir me va de lujo.

P.D.: Es un Nokia N70

02/04/2007 | serpini
avatar de serpini
Hola, tengo Ubuntu y un Nokia N73, al aprecer hay gente que también le pasa, y es que el programa funciona, pero al poco tiempo detecta que no está cuando sí que está, esto es porque al parecer, la conexion creada con el hcitool se cierra y claro, no detecta el dispositivo, así que habría que comprobar si la conexion se ha cerrado, a volver a abrirla y no solo una vez. A ver si tengo tiempo y lo reprogramo para que tenga en cuenta esto.

08/04/2007 | eiKa
avatar de eiKa
Lo acabo de probar con un siemens S55 y me funciona perfecto, en el N70 al tercer barrido sigue perdiendo conexion debe ser cosa del movil...

avatar de Clbustos
Muy buen script!

Lo único es que debería verificar cada dos o tres ping, desconectándose en caso de error, para no apagar la pantalla si sólo fue un error de conexión momentáneo, lo que ocurre si el dispositivo bluetooth es barato, como el mío :P

13/04/2007 | pedro
avatar de pedro
a mi me pasa lo mismo que a gil, falta algo como para que no pierda la conexion con el movil, porque si del movil intento mandarle una foto a la pc se desactiva el protector de pantalla, pero luego de eso pierde la conexion y se vuelve a bloquear la pantalla.

13/04/2007 | javier.perez
avatar de javier.perez
Tengo en cuenta todos vuestros comentarios. Estoy trabajando en una aplicación en PyGTK, que solventará en la medida de los posible todos los problemas que comentáis.

Gracias por vuestros comentarios :)

14/04/2007 | Pablo
avatar de Pablo
Hola, Javier.

Si quieres, te envío el código de la mía basada en tu idea original o directamente trabajamos en una conjuntamente mezclando ambas.



Pablo

22/05/2007 | César R.
avatar de César R.
Pues lo que promete tu script suena excelente, sólo que por el momento no me interesa probarlo (hasta que compre mi portátil) y si me interesa esperar a que liberen el nuevo script ya con las nuevas funciones.

Si con su permiso, prometo darle publicidad a toda la comunidad ubuntu (claro que sin payasadas, el crédito es totalmente tuyo y bien merecido).



Ojalá al poner este mensaje el sistema me notifique de nuevas respuestas a esta entrada. Gracias por compartir.

27/05/2007 | Jaime
17/07/2007 | rubenlbe
avatar de rubenlbe
Buenas!

He probado el script en Ubuntu 7.04 con un adaptador bluetooth usb de 12eur, y lanzo el script pero al poco tiempo como al resto... me salta el salvapantallas a pesar de estar el teléfono al lado del receptor.

Sera cuestion del movil? (Nokia 5200)

Sera cuestion del bluetooth? (made in taiwan comprado en PCBox, semitransparente y con la luz roja toooodo el rato parpadeando una vez conectado al usb)



Si alguien tiene idea... que ayude a los que no nos tira.

Y cuando tengas la siguiente version, bienvenida sea!

21/07/2007 | daniel
avatar de daniel
hey, Yo tengo el mismo problema que gil. alguien tiene alguna idea qué puede producirlo?



gracias, un saludo, dz

20/08/2007 | Allan
avatar de Allan
Se ha creado un paquete para hacer todo esto en ambiente gráfico. El tutorial aqui:



www.cesarius.net/blueproximity-bloquea-y-desbloquea-la-pantalla-con-detector-de-presencia-en-ubuntu/

12/02/2008 | Borja
avatar de Borja
Buenas, tras experimentar con el script de deteccion de bluetooth y entre los compañeros de la facultad, hemos elaborado un script más simple y sencillo para detectar la presencia de un determinado mobil dentro del rango de la piconet (red bluetooth), puesto que el original no fue posible hacerlo funcionar. Nos gustaría saber vuestra opinión al respecto, saludos!!



#!/bin/bash

export INTERFACE="00:00:00:00:00:00"



while true; do

hcitool cc ${INTERFACE}



sleep 1



Signal="`hcitool lq ${INTERFACE}`"



echo $Signal



if [ "${Signal##*: }" -lt 220 ]; then

echo "Baja señal"

sudo -u username gnome-screensaver-command --lock

else

if [ "${Signal##*: }" -gt 220 ]; then

echo "Conectado"

sudo -u username gnome-screensaver-command --deactivate

else

echo "Desconectado"

sudo -u username gnome-screensaver-command --lock

fi

fi



hcitool dc ${INTERFACE}



done

26/02/2008 | SANDRO
avatar de SANDRO
Me pare se muy bueno su Blog, y muchachos sigan adelante, realmente hacen cosas buenas.

21/01/2009 | javier
avatar de javier
que tal perarese exelente tu script, pero al intentar descargarlo no se puede me gustaria me envies una copia y probarlo de antemano gacias

27/01/2009 | Jinme
avatar de Jinme
Fue imposible descargar el script? no esta disponible?

03/03/2009 | Julian
avatar de Julian
Hola se me hace imposible descargar el scrip,me podrian pasar el link o algun lugar de donde bajarlo? gracias.

13/03/2009 | Romero
avatar de Romero
Hola, alguien puede decirme si existe un detector de presencia para conectar a un puerto USB de mi ordenador, de modo que cuando detecte presencia se active la pantalla.
El ordenador está siempre encendido y tiene que ser USB.
Gracias

13/03/2009 | daniel
avatar de daniel
hola, en linux esto se gestiona con udev.

busca en google "udev usb"

un saludo
daniel

22/05/2009 | sophiemallorca
avatar de sophiemallorca
dónde puedo encontrar el script? el link no funciona

26/05/2009 | kico
avatar de kico
Porfavor vuelve a subir el script!!!

muchas gracias por el aporte!!!

avatar de Bloqueo y desbloqueo de pantalla por detector de presencia en Ubuntu con bluetooth: aimtooth | Javier Pérez :: Blog « Sa Roqueta
[...] Bloqueo y desbloqueo de pantalla por detector de presencia en Ubuntu con bluetooth: aimtooth | Javier Pérez :: Blog Salta a Comentaris Bloqueo y desbloqueo de pantalla por detector de presencia en Ubuntu con bluetooth: aimtooth | Javie... [...]

Normas de uso
El autor del comentario se hace responsable del contenido de éste. En caso de que el autor del comentario infringiera alguna ley, se ofrecerán todos los datos necesarios a las autoridades pertinentes para que tomen las medidas oportunas.
Se debe escribir correctamente en el mismo idioma del artículo que se comenta. En caso contrario podría ser eliminado.
El comentario debe ceñirse a la temática del artículo.

En la siguiente lista de palabras, haz clic en por:
  1. bloqueo
  2. y
  3. desbloqueo
  4. de
  5. pantalla
  6. por
  7. detector
  8. presencia
  9. en
  10. ubuntu
  11. con
  12. bluetooth
  13. aimtooth
Esta pregunta es para evitar comentarios spam. Perdón por las molestias.