Linux y Bluetooth: Alertas vía SMS
Como servidor para acceder a la red local de casa tengo un Netbook Samsung N230, el cual tiene como sistema de alertas, entre otros, un SAI de la marca APC monitorizado vía Apcupsd, así puedo controlar entre otras cosas si se la va luz en casa.
Haciendo uso de un viejo móvil que tenga Bluetooth y algún operador low-cost (en mi caso uso Pepephone) podemos tener un sistema de alertas por SMS estupendo a un coste realmente bajo.
Para poder enlazar el teléfono al ordenador lógicamente necesitamos que ambos tengan Bluetooth, sino siempre puedes comprar un adaptador USB BT por menos de 5 dolares.
Una vez que cumplimos los requisitos (teléfono y ordenador con BT) podemos enlazar ambos vía interfaz gráfico de forma muy sencilla, pero es mejor entender como se hacen las cosas a nivel de comandos ya que no siempre tenemos interfaz gráfico o podemos necesitar ver la salida de los programas que lanzamos en busca de errores....y además es mucho más molón, ¿o no?
¡Al ataque!
Paso 1
Buscamos si existe algún dispositivo BT visible por el ordenador
root@ariel5:~# hcitool scan Scanning ... 00:1E:45:30:11:11 K530
En este caso como vemos el BT ha encontrado al teléfono.
Paso 2
Nos aseguramos que podemos comunicarnos con el dispositivo
root@ariel5:/etc/bluetooth# l2ping 00:1E:45:30:11:11 Ping: 00:1E:45:30:0A:76 from 00:1B:B1:14:11:11 (data size 44) ... 44 bytes from 00:1E:45:30:0A:76 id 0 time 66.68ms
Paso 3
Enlazamos el ordenador con el teléfono
root@ariel5:~# bluez-simple-agent hci0 00:1E:45:30:11:11 RequestPinCode (/org/bluez/535/hci0/dev_00_1E_45_30_11_11) Enter PIN Code:1234 (aquí ponemos el pin que pondremos luego en el teléfono) Release New device (/org/bluez/535/hci0/dev_00_1E_45_30_11_11)
Paso 4
Establecemos la conexión para poder enviar SMS
rfcomm bind 0 00:1E:45:30:11:11 1
y nos aseguramos que se ha establecido con el siguiente comando:
root@ariel5:~# rfcomm show 00:1E:45:30:11:11 rfcomm0: 00:1E:45:30:0A:76 channel 1 closed
Paso 5
Probamos a enviar un sms con la aplicación gsmsendsms que está incluida en el paquete gsm-utils
gsmsendsms -d /dev/rfcomm0 644444444 "¡Hola!"
Si todo ha ido bien recibiremos un mensaje de texto en el móvil que hemos puesto, ya estamos casi listos.
Paso 6 y final
Todo este trabajo desaparece cuando hagamos un reinicio, por lo que vamos a hacer un último ajuste y así todo este trabajo es persistente entre reinicios.
Editamos el fichero /etc/bluetooth/rfcomm.conf y lo dejamos de una forma similar a:
https://gist.github.com/4455872
¡Ya estamos listos! Ahora podemos hacer uso gsmsendsms para añadirlo a los script de alerta que tengamos programados para mandar SMS cuando se produzca tal o cual evento, por ejemplo os pego el que tengo para avisarme vía sms (bueno y por mail y twitter, jejeje) que se ha ido la luz:
https://gist.github.com/4455911
Espero que os resulte útil.
----
English version: Linux and Bluetooth. SMS Alerts













