En la entrada anterior instale Centerim en la Rasp y lo configure para que utilizando una cuenta de Hangouts pudiéramos enviar y recibir mensajes.
Llega el momento de mejorar la entrada anterior y que de verdad haga algo que valga la pena.
Voy a preparar el sistema para que Centerim arranque solo cuando se inicie la Rasp y ademas en segundo plano, para que no moleste.
Ademas haremos "lista" a la Rasp y conseguiremos que nos de respuestas a nuestras preguntas.
Nivel friki +10
Lo primero es crear un archivo que nos permite contestar los mensajes que la Rasp reciba.
Para ello creamos un archivo llamado external en la carpeta .centerim de nuestro usuario.
En el debemos incluir lo siguiente:
%action archivo de respuestas event msg proto all status all options stdin stdout %exec msg=`cat` /bin/bash /usr/local/bin/contestador.sh $msg
Este archivo es configurable y tiene bastantes opciones,
- la opción event tiene como parametros "msg", "sms", "url", "online", "offline", "auth", "contacts" y "notification". Corresponde con el tipo de evento que se produce y para el que se indica la acción.
- la opción proto, que se refiere al protocolo de mensajería que se utilice, con "all" se acepta cualquiera.
- la opción status, que se refiere el estado, puede ser "online", "away", "dnd", "na", "occupied", "ffc" o "invisible".
- la opcion "options", los parámetros son:
- "stdin", el mensaje entrante se redirige al script que indicamos luego.
- "stdout", la respuesta del script se envia como respuesta del mensaje.
- "nowait", no espera la respuesta del script.
Ahora vamos a crear un script que contiene las respuestas.
Este es el script que tengo yo.
#!/bin/bash
#!/bin/bash
case $1 in
Hola)
echo "Hola"
;;
Espacio)
echo "El sistema tiene `df -h | grep /dev/sdb1 | awk '{ print $4}'` libres y un `df -h | grep /dev/sdb1 | awk '{print $5}'` ocupado"
;;
Descargas)
echo "`ls /mnt/Datos/Downloads/`"
;;
Temp)
echo "`/opt/vc/bin/vcgencmd measure_temp > /usr/local/bin/temp.txt`"
echo "La temperatura es `sed -e 's/temp=//g' /usr/local/bin/temp.txt`"
;;
Uptime)
echo "El sistema lleva `uptime | awk '{print $3}'` dias y `uptime | awk '{print $5}'` horas activo"
;;
Carga)
echo "La carga media del sistema es"
echo " ultimo minuto...........`uptime | awk '{print $(NF-2)}'`"
echo " ultimos 5 minutos.......`uptime | awk '{print $(NF-1)}'`"
echo " ultimos 15 minutos......`uptime | awk '{print $NF}'`"
;;
*)
echo "No te he entendido, los comandos son:
Hola, Espacio, Descargas, Temp, Uptime, Carga"
;; esac
De esta manera puedo preguntarle a la Raspi por:
- Espacio, hago una búsqueda por la unidad que uso para almacenaje y devuelvo la cantidad libre y el porcentaje ocupado.
- Descargas, en donde listo la carpeta descargas.
- Temp, me devuelve la temperatura de la Raspi.
- Uptime, indica el tiempo que lleva "despierta" la Raspi.
- Carga, me dice la carga media en el ultimo minuto, los últimos 5 minutos y el ultimo cuarto de hora.
También se puede usar este sistema para mandar ordenes a la Raspi, sin esperar que nos devuelva nada. Esto lo tengo que probar.
Solo queda hacer que Centerim se ejecute en segundo plano, para ello utilizo el programa Screen con el siguiente comando:
Solo queda hacer que Centerim se ejecute en segundo plano, para ello utilizo el programa Screen con el siguiente comando:
screen -dmS centerim /usr/bin/centerim
Esto nos lo hara manualmente, pero lo podemos hacer automatico y que se inicie con la Raspi.
Para ello, añadimos al archivo /etc/rc.local lo siguiente:
su pepin -c "screen -dmS centerim /usr/bin/centerim"
Ejecutamos como el usuario pepin el comando screen que lanzara centerim en segundo plano.
Y ya esta, ya podemos hablar con nuestra Raspi y que ella nos conteste.
No hay comentarios:
Publicar un comentario