{"id":2804,"date":"2012-03-01T23:25:21","date_gmt":"2012-03-01T22:25:21","guid":{"rendered":"http:\/\/www.lorenzobraghetto.com\/?p=2804"},"modified":"2012-03-01T23:25:21","modified_gmt":"2012-03-01T22:25:21","slug":"chi-ce-a-casa-chi-torna-a-pranzo-te-lo-dice-jabber","status":"publish","type":"post","link":"https:\/\/www.lorenzobraghetto.com\/index.php\/2012\/03\/01\/chi-ce-a-casa-chi-torna-a-pranzo-te-lo-dice-jabber\/","title":{"rendered":"Chi c&#8217;\u00e8 a casa? Chi torna a pranzo? Te lo dice Jabber"},"content":{"rendered":"<p>L&#8217;idea mi \u00e8 venuta in mente in occasione del <a href=\"http:\/\/www.whymca.org\/evento\/whymca-hack-reality-bologna-18-02-2012\">WhyMCA Hack Reality<\/a>, nel quale per\u00f2 non siamo riusciti praticamente nemmeno a passare alla fase realizzativa dell&#8217;idea facendo un po&#8217; una figura barbina :).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-2811\" style=\"border-style: initial; border-color: initial;\" title=\"led-collection\" src=\"http:\/\/www.lorenzobraghetto.com\/wp-content\/uploads\/2012\/03\/led-collection-300x225.jpg\" alt=\"\" width=\"300\" height=\"225\" srcset=\"https:\/\/www.lorenzobraghetto.com\/wp-content\/uploads\/2012\/03\/led-collection-300x225.jpg 300w, https:\/\/www.lorenzobraghetto.com\/wp-content\/uploads\/2012\/03\/led-collection.jpg 640w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<div>\n<h2>L&#8217;idea<\/h2>\n<ul>\n<li>Da fuori casa interrogando un bot Jabber\/XMPP (protocollo aperto di chat su cui \u00e8 basato anche Gtalk) riesci a sapere chi \u00e8 a casa. Per il <em>come <\/em>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.<\/li>\n<li>Arrivi a casa per pranzo, sono gi\u00e0 le 13, ma ancora non c&#8217;\u00e8 nessuno a casa. Chi torner\u00e0 a mangiare? Chi mangier\u00e0 fuori? Ecco il nostro affarino (arduino) camuffato da calamita da frigo, che tramite dei led, uno per ogni persona, ci avverte chi torner\u00e0 a pranzo e chi no. Di default si potrebbero comportare seguendo una configurazione preimpostata, ma poi ognuno potr\u00e0 modificarne il comportamento sempre tramite un bot Jabber\/XMPP<\/li>\n<\/ul>\n<p>Al WhyMCA volevamo mettere su la cosa usando un Arduino, purtroppo per\u00f2 non ne avevano provvisti di modulo wireless, in quell&#8217;occasione allora abbiamo provato ad usare la <a href=\"http:\/\/www.openpicus.com\/\">OpenPicus<\/a> che ci ha fatto tribolare molto :).<\/p>\n<p>Arrivato a casa ho realizzato il primo punto (senza cestino NFC) usando il mio server debian, un <a href=\"http:\/\/thp.io\/2007\/python-jabberbot\/\">bot jabber<\/a> in python e il tool <a href=\"http:\/\/www.nta-monitor.com\/tools\/arp-scan\/\">arp-scan<\/a>.<\/p>\n<p>Questa \u00e8 la parte relativa al comando del bot jabber:<\/p>\n<p>[code]<br \/>\n@botcmd<br \/>\ndef chice(self, mess, args):<br \/>\n&#8220;&#8221;&#8221;Chi c&#8217;e&#8217; a casa?&#8221;&#8221;&#8221;<br \/>\nin_file = open(&#8220;\/var\/log\/utentiChice&#8221;,&#8221;r&#8221;)<br \/>\ntext = in_file.read()<br \/>\nin_file.close()<br \/>\nout_file = open(&#8220;\/var\/log\/utentiChice&#8221;,&#8221;w&#8221;)<br \/>\nout_file.write(text+mess.getFrom().getStripped()+&#8221;\\n&#8221;)<br \/>\nout_file.close()<br \/>\npersone = commands.getoutput(&#8216;sudo \/usr\/bin\/ChiECasa.sh&#8217;)<br \/>\nreturn persone<br \/>\n[\/code]<\/p>\n<p>Questo \u00e8 lo script bash che usa arp-scan<\/p>\n<p>[code]<\/p>\n<p>#!\/bin\/bash<br \/>\nHOSTS=$(arp-scan 192.168.1.0\/24)<br \/>\npersona=&#8221;false&#8221;<br \/>\nif [[ $HOSTS == *00:00:00:00:00:00* ]]<br \/>\nthen<br \/>\npersona=&#8221;true&#8221;<br \/>\nfi<br \/>\necho &#8220;Persona=&#8221;$persona&#8221;;<br \/>\n[\/code]<\/p>\n<p>L&#8217;unico problema \u00e8 rappresentato da arp-can che richiede permessi di root, il comando lanciato dal bot ha &#8220;sudo&#8221; davanti e l&#8217;utente che eseguir\u00e0 il bot dovr\u00e0 poter eseguire lo script bash con sudo senza richiesta di password.<\/p>\n<p>Chiss\u00e0, magari quando mi prender\u00f2 finalmente l&#8217;Arduino riuscir\u00f2 a portare a termine l&#8217;idea!<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>L&#8217;idea mi \u00e8 venuta in mente in occasione del WhyMCA Hack Reality, nel quale per\u00f2 non siamo riusciti praticamente nemmeno a passare alla fase realizzativa dell&#8217;idea facendo un po&#8217; una figura barbina :). L&#8217;idea Da fuori casa interrogando un bot Jabber\/XMPP (protocollo aperto di chat su cui \u00e8 basato anche Gtalk) riesci a sapere chi [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":2811,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16,11,394,12,42,8],"tags":[749,79,745],"class_list":["post-2804","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-informatica","category-hardware","category-nerd-real","category-real","category-smanettamenti","category-software","tag-arduino","tag-jabber","tag-xmpp"],"_links":{"self":[{"href":"https:\/\/www.lorenzobraghetto.com\/index.php\/wp-json\/wp\/v2\/posts\/2804","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lorenzobraghetto.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lorenzobraghetto.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lorenzobraghetto.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lorenzobraghetto.com\/index.php\/wp-json\/wp\/v2\/comments?post=2804"}],"version-history":[{"count":11,"href":"https:\/\/www.lorenzobraghetto.com\/index.php\/wp-json\/wp\/v2\/posts\/2804\/revisions"}],"predecessor-version":[{"id":2816,"href":"https:\/\/www.lorenzobraghetto.com\/index.php\/wp-json\/wp\/v2\/posts\/2804\/revisions\/2816"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lorenzobraghetto.com\/index.php\/wp-json\/wp\/v2\/media\/2811"}],"wp:attachment":[{"href":"https:\/\/www.lorenzobraghetto.com\/index.php\/wp-json\/wp\/v2\/media?parent=2804"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lorenzobraghetto.com\/index.php\/wp-json\/wp\/v2\/categories?post=2804"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lorenzobraghetto.com\/index.php\/wp-json\/wp\/v2\/tags?post=2804"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}