Chi c’è a casa? Chi torna a pranzo? Te lo dice Jabber

L’idea mi è venuta in mente in occasione del WhyMCA Hack Reality, nel quale però non siamo riusciti praticamente nemmeno a passare alla fase realizzativa dell’idea facendo un po’ una figura barbina :).

L’idea

  • Da fuori casa interrogando un bot Jabber/XMPP (protocollo aperto di chat su cui è basato anche Gtalk) riesci a sapere chi è a casa. Per il come io pensavo ad un semplice scan dei mac address connessi alla wireless di casa verificando se il mac address dello smartphone del famigliare/coinquilino fosse connesso alla rete o meno. Poi al WhyMCA sono venute fuori altre idee, come per esempio un cestino di mazzi di chiavi con un chip NFC.
  • Arrivi a casa per pranzo, sono già le 13, ma ancora non c’è nessuno a casa. Chi tornerà a mangiare? Chi mangierà fuori? Ecco il nostro affarino (arduino) camuffato da calamita da frigo, che tramite dei led, uno per ogni persona, ci avverte chi tornerà a pranzo e chi no. Di default si potrebbero comportare seguendo una configurazione preimpostata, ma poi ognuno potrà modificarne il comportamento sempre tramite un bot Jabber/XMPP

Al WhyMCA volevamo mettere su la cosa usando un Arduino, purtroppo però non ne avevano provvisti di modulo wireless, in quell’occasione allora abbiamo provato ad usare la OpenPicus che ci ha fatto tribolare molto :).

Arrivato a casa ho realizzato il primo punto (senza cestino NFC) usando il mio server debian, un bot jabber in python e il tool arp-scan.

Questa è la parte relativa al comando del bot jabber:

[code]
@botcmd
def chice(self, mess, args):
“””Chi c’e’ a casa?”””
in_file = open(“/var/log/utentiChice”,”r”)
text = in_file.read()
in_file.close()
out_file = open(“/var/log/utentiChice”,”w”)
out_file.write(text+mess.getFrom().getStripped()+”\n”)
out_file.close()
persone = commands.getoutput(‘sudo /usr/bin/ChiECasa.sh’)
return persone
[/code]

Questo è lo script bash che usa arp-scan

[code]

#!/bin/bash
HOSTS=$(arp-scan 192.168.1.0/24)
persona=”false”
if [[ $HOSTS == *00:00:00:00:00:00* ]]
then
persona=”true”
fi
echo “Persona=”$persona”;
[/code]

L’unico problema è rappresentato da arp-can che richiede permessi di root, il comando lanciato dal bot ha “sudo” davanti e l’utente che eseguirà il bot dovrà poter eseguire lo script bash con sudo senza richiesta di password.

Chissà, magari quando mi prenderò finalmente l’Arduino riuscirò a portare a termine l’idea!

3 risposte a “Chi c’è a casa? Chi torna a pranzo? Te lo dice Jabber”

  1. Ovviamente poi passi il software qui veeero? 😀

  2. della parte arduino? Certo! 😉

  3. sarebbe figo

Lascia un commento