Detección de Movimiento (y III)

Ya hemos configurado Motion, nos envía alertas, pone las evidencias con un time-stamp y a salvo… ¿qué más nos puede hacer falta?.

Muy sencillo: ¿cómo lo activo?, ¿cada vez que salgo de casa me tengo que hacer root y ejecutar /etc/init.d/motion start?… Eso es mucho rollo, necesito algo automático.

Desde el principio, tengo un par de combinaciones secretas de teclas (en gnome, con el gconf_editor… buscad por ahí), una para activarlo y otra para desactivarlo. Evidentemente, la activación tiene un retardo, para que me dé tiempo a salir de casa sin prisa.

Este sistema, era útil, pero, necesitaba que todavía lo fuese más, es decir, activación automática. Sin embargo, ¿y la desactivación?. Prefiero que sea manual. Si alguien, mediante algún tipo de coacción (navaja en el cuello, pistola en la sien…) entra conmigo a casa, tendré evidencias de este suceso.

¿Cómo hago para activarlo automáticamente?… muy fácil, ¿qué es lo que siempre que sales de casa llevas encima?… ¿el móvil quizas?. A día de hoy, hasta los móviles más chapuceros tienen bluetooth… ¡ya lo tengo todo!

La idea es la siguiente: el móvil siempre tiene el bluetooth activado pero oculto, para que no me lo vean por “ahí”, pero, ¿entonces cómo interactúo con él?

Como la MAC bluetooth es conocida por mi (hcitool scan, eso sí, con el móvil visible sólo para esto) al igual que el “nombre” que le tengo puesto, consultando directamente a la MAC (hcitool info MAC) me dará ciertos datos, así que, tengo un sistema simple de detectar si están los móviles.

#!/bin/bash
MACS=( MAC_BT_DEL_MOVIL1 MAC_BT_DEL_MOVIL2 …. )
IDS=( NOMBRE_MOVIL1 NOMBRE_MOVIL2 …. )
INDICE=0
ESTA_EL_MOVIL=0
MOVILES=0
QUIEN_ESTA=
###########################

ELEMENTOS=${#MACS[@]}

while [ “$INDICE” -lt “$ELEMENTOS” ]
do
ESTA_EL_MOVIL=`hcitool info ${MACS[$INDICE]} 2>/dev/null | grep -v “Requesting information …” | grep ${IDS[$INDICE]} | wc -l`
if [ $ESTA_EL_MOVIL -gt 0 ]
then
let “MOVILES = $MOVILES + 1”
# echo “Detectado móvil ${IDS[$INDICE]}”
QUIEN_ESTA[$INDICE]=${IDS[$INDICE]}
else
QUIEN_ESTA[$INDICE]=”nadie”
fi

let “INDICE = $INDICE + 1”
done

if [ $MOVILES -eq 0 ]
then
#Como no hay móviles, encendemos la alarma
logger “Enciendo la camara porque no hay nadie en casa”
# echo $MOVILES
beep -f 880 -l 100 -r 10 -d 100
/etc/init.d/motion start
else
logger “Estan en casa ${QUIEN_ESTA[0]} y ${QUIEN_ESTA[1]}”
fi
exit 0;

Bueno, creo que ya lo tenemos todo… cualquier sugerencia, mejor de los scripts será bienvenida.

P.S: Los scripts son GNU y como se suele decir, no me responsabilizo. Llevo un par de años usándolos (unos más que otros según he ido actualizando) y hasta ahora sin problemas.

P.S.2: Lo sé, picar código no es lo mío y es posible que haya barbaridades en los scripts, pero una vez más, a mi me funcionan.

5 thoughts on “Detección de Movimiento (y III)

  1. Prefiero lo “mío”, pues todo queda en “casa” (vaaale, lo envío a un servidor de correo externo, pero a mi cuenta). Es cierto que puedes hacer privada tu cuenta de twitter (como creo que haces tú), pero ¿puedes subir fotos?.

    Por otro lado, no sé si twitter puede enviarte SMS.

    Finalmente, he visto que tiene una opción on_motion_detect o algo así que podría ser interesante, pero me obligaría a reescribir todo el sistema, además, a priori no sé si se adecuaría a mi necesidad.

    Like

  2. Por cierto,

    Puedes publicar en una cuenta de Twitter privada, que sólo vean aquellos que tú quieras, y suscribirte con otra cuenta a esa. En la primera, posteas los eventos, y la segunda los “carga”. Si “sigues” esa cuenta y activas las notificaciones, te avisa o bien por mensajería instantánea (p. ej. usando Google Talk) cuando estás conectado, o mediante mensajes al móvil (que te envía Twitter gratis). Sólo hay un límite y creo que es de unos 150 mensajes mensuales al móvil (no recuerdo bien), tras los cuales, pues ya no te mandan más al móvil…

    Es una buena opción que no elimina las que ya tienes. Simplemente cambia el envío del e-mail a tu cuenta de la compañía de telefonía por el upload a tu “Twitter” privado. O durante un tiempo deja ambos, y mira cuánto tarda en llegar uno frente al otro (y sobre todo, si usas Inotify, sabrás enseguida qué pasa en tu casa). Lo de twitter tiene la ventaja que puedes enviarte 140 caracteres, p. ej. indicando en qué parte de la vivienda ha sucedido la detección (por tanto, es escalable para cuando tengas más cámaras; si no recuerdo mal, el ZoneMinder permite varias cámaras simultáneas, ¿no?)

    Jonás.

    Like

  3. Vengo con malas noticias.

    Twitter ha interrumpido su servicio de SMS a móviles (eran un máximo de 250 a la semana) salvo en Estados Unidos, India y Canadá. Antes los enviaban desde un número del Reino Unido. Están negociando con operadores móviles de Europa y otros lugares para volverlo a poner, pero con números “locales”, es decir, en vez de enviarte el SMS desde UK, enviártelo desde España. Dicen que les salía muy caro (entre otras cosas, al parecer porque había gente que usaba el servicio para “mensajearse” con amigos… En plan escribo un SMS en mi Twitter, y le llega a mis N amigos que me siguen).

    Así que, de momento, no hay actualizaciones via móvil a España. A ver si negocian algo con Vodafone, que está presente en un montón de países europeos y lo vueleven a poner pronto en marcha…

    En fin, de momento tendrás que seguir con tus mensajitos al móvil sólo con el asunto o remitente…

    Si ya no tienes esa opción, a una mala-mala, se me ocurre un sistema algo rudimentario pero que puede funcionar: Haz que al detectar movimiento se envíe un e-mail a una dirección alojada en tu servidor. Al recibir correos en esta dirección, no se entregan a ningún buzón (o sí, si quieres), sino que se ejecuta un script, que descuelga el módem (si no hay llamada en curso; si no, lo encola) y te llama al móvil, y luego cuelga.

    Si, como yo, nunca recibes llamadas desde tu teléfono fijo, sino que quien vive contigo te llama siempre desde su móvil (suele ser más económico), te puede servir como alerta para que vayas a tu correo a visualizar las imágenes, o para que te conectes “en vivo” al ZoneMinder 🙂

    Ya me contarás qué haces.

    Jonás.

    Like

Leave a comment