Control de raspberry usando gtalk

El objetivo es enviar comandos y recibir información de la raspberry pi usando gtalk.
Para esto usaremos centerim; un programa que permite mediante consola conectarse a varios servicios de IM como gtalk. Para dejar este programa en segundo plano emplearemos screen.

Por defecto RaspBMC tiene las preferencias de apt-get configuradas para que instale los paquete extras. Debido a esto se produce una instalación de 250MB y que para colmo rompe el servicio XBMC. Para evitar esto se edita el fichero /etc/apt/apt.conf y se añaden las líneas:

APT::Install-Recommends "0";
APT::Install-Suggests "0";

Tras esto instalamos:

apt-get install centerim screen

Una vez instalado se ejecuta centerim con el usuario que se usará para arrancarse normalmente. En mi caso, pi.
En la opción jab se rellenan las opciones de la cuenta gmail que usaremos para la Raspberry. Una vez hecho esto se creará una estructura de directorios que se podrá editar:
home/pi/.centerim/
En el fichero config tendremos que tener algo similar a esto:

jab_nick    cuentapararaspberrypi@gmail.com
jab_pass    contraseña
jab_server  talk.google.com:5223
jab_osinfo  1
jab_prio    4
jab_ssl     1

Para arrancar el sistema automaticamente se añade la siguiente línea a /etc/rc.local

su pi -c 'screen -dmS centerim /usr/bin/centerim'

Ahora configuraremos el fichero external que está en el directorio .centerim
El siguiente ejemplo es el mío que realiza varias acciones:

%action         Remote control
event           msg
proto           all
status          all
options         stdin stdout

%exec
#!/bin/sh
# script de mayordomo gtalk-raspberry pi por ratoncio
ENTRADA=`cat`;
# el comando se fuerza a minusculas para evitar problemas con las mayusculas automaticas de los moviles
COMANDO=`echo $ENTRADA|awk '{print $1}'|tr '[:upper:]' '[:lower:]'`;
RESTO=`echo $ENTRADA|awk -F "$COMANDO " '{print $2}'`;
if [ $CONTACT_NICK = aquifiltropormipropiacuentade@gmail.com ]; then
case $COMANDO in
        df) df -h;;
        uptime) uptime;;
        vmstat) vmstat;;
        who) w;;
        mem) free -m;;
        dmesg)
            dmesg |tail -n 20
                    echo "----";
            echo "Fin dmesg";
        ;;
        apunta|nota)
            echo "Apunto esto: $RESTO";
            echo "$RESTO" >> /home/pi/notasRTN;
        ;;
        notas)
            #cat /home/pi/notasRTN;
            echo;
            i=1;while read linea;do echo "$i: $linea";i=`echo $i +1|bc`;done</home/pi/notasRTN;
            echo "----";
            echo "No hay mas notas";
            ;;
        borranota)
            sed "$RESTO"d /home/pi/notasRTN > /tmp/notasRTN.tmp;
            mv /tmp/notasRTN.tmp /home/pi/notasRTN;
            rm /tmp/notasRTN.tmp;
            echo "Borrada nota $RESTO";
        ;;
        diag)
            /opt/vc/bin/vcgencmd measure_temp;
            /opt/vc/bin/vcgencmd measure_volts;
        ;;
        torrent)
            echo "torrent (start|stop|status)";
            /etc/init.d/transmission-daemon $RESTO;
        ;;
	    hora)
            echo "Son las `date +%H:%M:%S`";
        ;;
        biblioteca)
            echo "biblioteca (start|stop)";
            /home/pi/calibre-server $RESTO;
        ;;
        ayuda|help)
            echo "Soy Ratoncio, tu asistente electronico. Los comandos validos son:";
            echo ;
            echo "df";
            echo "uptime";
            echo "vmstat";
            echo "who";
            echo "dmesg";
            echo "agenda";
            echo "apunta";
            echo "notas";
            echo "borranota";
		    echo "servicios";
		    echo "diag";
		    echo "torrent";
		    echo "hora";
		    echo "biblioteca (start|stop)";
            echo "ayuda";
        ;;
        *)
		    echo "Has dicho: $ENTRADA";
		    echo "----";
		    echo "Lo siento, no entiendo tu pregunta. Prueba con 'ayuda'.";
        ;;
    esac
fi;
Anuncios
  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: