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

    by  • marzo 1, 2012 • Altro informatica, Hardware, Nerd, Real, Smanettamenti, Software • 3 Comments

    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:
    1. @botcmd
    2. def chice(self, mess, args):
    3. """Chi c'e' a casa?"""
    4. in_file = open("/var/log/utentiChice","r")
    5. text = in_file.read()
    6. in_file.close()
    7. out_file = open("/var/log/utentiChice","w")
    8. out_file.write(text+mess.getFrom().getStripped()+"\n")
    9. out_file.close()
    10. persone = commands.getoutput('sudo /usr/bin/ChiECasa.sh')
    11. return persone

    Questo è lo script bash che usa arp-scan

    CODE:
    1. #!/bin/bash
    2. HOSTS=$(arp-scan 192.168.1.0/24)
    3. persona="false"
    4. if [[ $HOSTS == *00:00:00:00:00:00* ]]
    5. then
    6. persona="true"
    7. fi
    8. echo "Persona="$persona";

    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 Responses to Chi c’è a casa? Chi torna a pranzo? Te lo dice Jabber

    1. marzo 2, 2012 at 3:17 pm

      Ovviamente poi passi il software qui veeero? :D

      Google Chrome 17.0.963.56 Google Chrome 17.0.963.56 GNU/Linux GNU/Linux
      Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11
    2. marzo 2, 2012 at 3:46 pm

      della parte arduino? Certo! ;)

      Google Chrome 17.0.963.56 Google Chrome 17.0.963.56 GNU/Linux x64 GNU/Linux x64
      Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11
    3. paolo
      aprile 19, 2012 at 10:34 pm

      sarebbe figo

      Google Chrome 18.0.1025.151 Google Chrome 18.0.1025.151 Google Chrome OS Google Chrome OS
      Mozilla/5.0 (X11; CrOS i686 1660.112.0) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.151 Safari/535.19

    Lascia un Commento

    L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *


    cinque + = 9