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

hace 3 años y 6 meses - 6541 visitas

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


autor

Javier Pérez de la Axarquía

Padre, marido, amante, humanista, programador, escritor, emprendedor... y algunas cosas más que aún no sé que soy.

etiquetas
artículos relacionados
comentarios
avatar de Narciso Cerezo
#1
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 ;-)
avatar de Diego
#2
Diego - hace 3 años y 6 meses ir arriba escribe un comentario
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
avatar de Maverick
#3
Maverick - hace 3 años y 6 meses ir arriba escribe un comentario
Fantástico.
avatar de Alberto García
#4
Jejeje, muy bueno el script.



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



GRACIAS!
avatar de Aleksander Stukov
#5
Aleksander Stukov - hace 3 años y 6 meses ir arriba escribe un comentario
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!.
avatar de LeoW
#6
LeoW - hace 3 años y 6 meses ir arriba escribe un comentario
hmmm, interesante, se podria hacer un detector de novia usando el movil ;)
avatar de Suriv
#7
Suriv - hace 3 años y 6 meses ir arriba escribe un comentario
Genial idea para Linux.
avatar de Luis Carlos Malo
#8
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
avatar de kanamor
#9
kanamor - hace 3 años y 6 meses ir arriba escribe un comentario
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.!!
avatar de dexae
#10
dexae - hace 3 años y 6 meses ir arriba escribe un comentario
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
avatar de trinux
#11
trinux - hace 3 años y 6 meses ir arriba escribe un comentario
Curioso, lo intentaré probar. Saludos.
avatar de supreme
#12
supreme - hace 3 años y 6 meses ir arriba escribe un comentario
Tu pc tiene bluetooth incorporado? el mio no, pero no sé si funcione con un adaptador bluetooth usb... saludos.
avatar de Sandevil
#13
Sandevil - hace 3 años y 6 meses ir arriba escribe un comentario
Simplemente genial.
avatar de David
#14
David - hace 3 años y 6 meses ir arriba escribe un comentario
Muy buen trabajo, voy a probarlo. Gracias
avatar de Cesarius
#15
Cesarius - hace 3 años y 6 meses ir arriba escribe un comentario
Excelente! ahora mismo lo pruebo... y si lo escribes Python, muchísmo mejor!!!



Saludos
avatar de hope
#16
hope - hace 3 años y 6 meses ir arriba escribe un comentario
¿Alguien sabe los comandos correspondientes a KDE? No lo encuentro en google...
avatar de ShADoW_LnX
#17
ShADoW_LnX - hace 3 años y 6 meses ir arriba escribe un comentario
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???
avatar de Gil
#18
Gil - hace 3 años y 6 meses ir arriba escribe un comentario
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.
avatar de javier.perez
#19
javier.perez - hace 3 años y 6 meses ir arriba escribe un comentario
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 ;)
avatar de Gil
#20
Gil - hace 3 años y 6 meses ir arriba escribe un comentario
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.
avatar de Grunch
#21
Grunch - hace 3 años y 6 meses ir arriba escribe un comentario
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
avatar de Ubuntero
#22
Ubuntero - hace 3 años y 6 meses ir arriba escribe un comentario
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.
avatar de ShADoW_LnX
#23
ShADoW_LnX - hace 3 años y 5 meses ir arriba escribe un comentario
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
avatar de Tiriel
#24
Tiriel - hace 3 años y 5 meses ir arriba escribe un comentario
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.
avatar de Denis
#25
Denis - hace 3 años y 5 meses ir arriba escribe un comentario
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.
avatar de G@ucho
#26
G@ucho - hace 3 años y 5 meses ir arriba escribe un comentario
tambien se puede hacer con el bluemon.

avatar de avaloncio
#27
avaloncio - hace 3 años y 5 meses ir arriba escribe un comentario
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
avatar de fran
#28
fran - hace 3 años y 5 meses ir arriba escribe un comentario
Me pasa exactamente lo mismo que a Gil, y no se que mas tengo que tocar. Saludos de un malagueño
avatar de noctuido
#29
noctuido - hace 3 años y 5 meses ir arriba escribe un comentario
No me atraen los móviles y soy muy profano con ellos, pero podría interesarle a algún amigo. Gracias por compartirlo.
avatar de Luis Palacios
#30
Luis Palacios - hace 3 años y 5 meses ir arriba escribe un comentario
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 !
avatar de eiKa
#31
eiKa - hace 3 años y 5 meses ir arriba escribe un comentario
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
avatar de mrebola
#32
mrebola - hace 3 años y 5 meses ir arriba escribe un comentario
yo tengo este problema para no deformar el blog pongo aqui mi explicacion de lo que pasa en mi caso :(

avatar de serpini
#33
serpini - hace 3 años y 5 meses ir arriba escribe un comentario
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.
avatar de eiKa
#34
eiKa - hace 3 años y 5 meses ir arriba escribe un comentario
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
#35
Clbustos - hace 3 años y 5 meses ir arriba escribe un comentario
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
avatar de pedro
#36
pedro - hace 3 años y 5 meses ir arriba escribe un comentario
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.
avatar de javier.perez
#37
javier.perez - hace 3 años y 5 meses ir arriba escribe un comentario
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 :)
avatar de Pablo
#38
Pablo - hace 3 años y 5 meses ir arriba escribe un comentario
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
avatar de César R.
#39
César R. - hace 3 años y 3 meses ir arriba escribe un comentario
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.
avatar de Jaime
#40
Jaime - hace 3 años y 3 meses ir arriba escribe un comentario
¡Hola!

Buscando cosillas del bluetooth he llegado hasta aquí, no pretendo robar protagonismo ni mucho menos, simplemente que yo hice un script parecido hace 2 añitos o así.

avatar de rubenlbe
#41
rubenlbe - hace 3 años y 2 meses ir arriba escribe un comentario
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!
avatar de daniel
#42
daniel - hace 3 años y 1 mes ir arriba escribe un comentario
hey, Yo tengo el mismo problema que gil. alguien tiene alguna idea qué puede producirlo?



gracias, un saludo, dz
avatar de Allan
#44
Allan - hace 3 años y 29 días ir arriba escribe un comentario
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/
avatar de Borja
#45
Borja - hace 2 años y 7 meses ir arriba escribe un comentario
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
avatar de SANDRO
#46
SANDRO - hace 2 años y 6 meses ir arriba escribe un comentario
Me pare se muy bueno su Blog, y muchachos sigan adelante, realmente hacen cosas buenas.
avatar de javier
#47
javier - hace 1 año y 7 meses ir arriba escribe un comentario
que tal perarese exelente tu script, pero al intentar descargarlo no se puede me gustaria me envies una copia y probarlo de antemano gacias
avatar de Jinme
#48
Jinme - hace 1 año y 7 meses ir arriba escribe un comentario
Fue imposible descargar el script? no esta disponible?
avatar de Julian
#51
Julian - hace 1 año y 6 meses ir arriba escribe un comentario
Hola se me hace imposible descargar el scrip,me podrian pasar el link o algun lugar de donde bajarlo? gracias.
avatar de Romero
#52
Romero - hace 1 año y 5 meses ir arriba escribe un comentario
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
avatar de daniel
#53
daniel - hace 1 año y 5 meses ir arriba escribe un comentario
hola, en linux esto se gestiona con udev.

busca en google "udev usb"

un saludo
daniel
avatar de sophiemallorca
#54
sophiemallorca - hace 1 año y 3 meses ir arriba escribe un comentario
dónde puedo encontrar el script? el link no funciona
avatar de kico
#55
kico - hace 1 año y 3 meses ir arriba escribe un comentario
Porfavor vuelve a subir el script!!!

muchas gracias por el aporte!!!
escribe un comentario

Se permite código HTML: <a> <img> <b> <strong> <em> <i> <strike> <p>

#57
- hace 1 segundo
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 bloqueo:
  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.