Raspberry Pi: Gtalk Shell Bot

0

gtalk

 

Quanto sarebbe utile controllare il nostro Raspberry Pi a distanza utilizzando Google Talk come sistema di controllo? Un utente che la pensa come me è sicuramente Michael del sito MitchTech.net che ha realizzato un semplice e versatile Google Talk Robot!

Il Raspberry Pi richiede qualche software addizionale per poter far funzionare il bot, quindi la prima cosa da fare è scaricare i pacchetti necessari, da shell digitiamo quindi:

sudo apt-get install python-pip git-core python2.7-dev

Quindi occorrerà aggiornare l’index di easy_install:

sudo easy_install -U distribute

Ed installare i moduli GPIO, xmpppy e pydns. Michael nel suo progetto non si limita infatti al semplice controllo via shell del bot, ma ci mette a disposizione un bot per il controllo dei pin GPIO che ci consentono, per esempio, di controllare lo stato di un led. In questo stralcio di guida mi interesserò solamente alla funzione di shell via gtalk, che è la funzione che più mi interessa!

Sempre da shell digitiamo:

sudo pip install RPi.GPIO xmpppy pydns

E cloniamo il repo di Raspi Gtalk robot con il comando:

git clone https://github.com/mitchtech/raspi_gtalk_robot.git

Ora entriamo nella directory appena scaricata con:

cd raspi_gtalk_robot

Configurazione

La configurazione è davvero essenziale, editiamo il file raspiBot.py e modifichiamo i valori

BOT_GTALK_USER, BOT_GTALK_PASS e BOT_ADMIN dalla linea 31 alla 33.

L’autore raccomanda di utilizzare un nuovo indirizzo Google sul quale far girare il bot dato che l’utilizzo del modulo GPIN richiede l’utilizzo dei privilegi di root per essere eseguito e per non generari errori utilizzando lo stesso indirizzo dell’admin.

Una volta lanciato il comando:

sudo python raspiBot.py

Il bot entrerà online (ricordiamoci di aggiungerlo come amico su Gtalk sull’account) e comincerà a rispondere ai nostri comandi se chiamati con il giusto trigger: bash o shell

Ad esempio con “shell uptime” il bot ci risponderà l’output richiesto direttamente in chat. Questo è solo un semplice comando a nostra disposizione, in realtà ci troveremo di fronte ad una shell vera e propria.

Il consiglio per chi volesse approfondire il funzionamento del bot è quello di leggere il post originale (in Inglese) sul Sito Ufficiale.

raspiBot

Immagine: Bot in Funzione, Zoom

Per quanto riguarda il mio utilizzo ho deciso di commentare nel file raspiBot.py il caricamento del modulo GPIO e di tutte le righe corrispondenti ai comandi GPIO , Write, Read, ho eliminato nella risposta del bot la scrittura dell’orario che mi sembrava un po’ confusionale (dal momento che il client gtalk aggiunge già ai messaggi ricevuti il timestamp) e l’impostazione degli Stati del bot, così avviare il programma non richiederà più i permessi di root (tenendo comunque conto che utilizzando

Raspbian wheezy potremo usare sudo senza autenticarci ogni volta).

Per comodità, potremo voler lasciare il processo in background, così chiudendo la shell il bot non si disconnetterà, il comando da usare si chiama nohup e lo utilizziamo così:

nohup python raspiBot.py

 

Qualche scettico potrebbe storgere il naso riguardo l’utilizzo di Gtalk come strumento di amministrazione remoto ma considerando che il consumo di batteria di un client di ssh è maggiore del client gtalk integrato su android, è pur sempre una veloce alternativa per i comandi più semplici ed immediati.

Rispondi

%d blogger hanno fatto clic su Mi Piace per questo: