Sapevate di poter controllare il vostro Raspberry remotamente tramite Telegram?
seguendo questa guida, sarete in grado di comandare il vostro Pi tramite un semplice messaggio, anche fuori casa!
Installazione e configurazione:
per prima cosa installiamo e configuriamo telegram-cli (istruzioni su github)
e la variante openbsd di netcat:
apt-get install netcat-openbsd
aggiungiamo al nostro /etc/crontab:
BASH_ENV=/root/.profile
...
...
@reboot root bash -l -c '/bin/telegram-cli -WRD -S /tmp/tg.sck -s /etc/cron.d/script.lua'
indicando il .profile dell’utente su cui è configurato telegram.
Creiamo script.lua:
function on_msg_receive (msg)
if started == 0 then
return
end
if (msg.from.phone==nostro_numero) then
if msg.out then
return
end
if (msg.text=='sorveglianza on') then
questo blocco di controllo:
- Processa solo i messaggi provenienti dal nostro numero
- Non considera i messaggi inviati dallo script stesso
- Esegue una operazione (a seguire) se riceve il messaggio "sorveglianza on"
di seguito scriviamo il comando shell da lanciare, il suo output verrà letto nella variabile result
local handle = io.popen('curl http://192.168.1.35:8080/1/detection/start -u user:password)
local result = handle:read("*a")
handle:close()
^ comando di esempio tra singoli apici dentro io.popen(' comando ')
e ora, rispondiamo al mittente con l’output del comando
send_msg (msg.from.print_name, result, ok_cb, false)
end
...e così via per tutti gli altri comandi che vogliamo prevedere:
if (msg.text=='sorveglianza off') then
local handle = io.popen('curl http://192.168.1.35:8080/1/detection/pause -u user:password)
local result = handle:read("*a")
handle:close()
send_msg (msg.from.print_name, result, ok_cb, false)
end
end
return
end
Ora che il socket è creato e telegram viene avviato all’avvio del sistema, possiamo mandare messaggi nel seguente modo:
echo "msg Contatto ciao" | nc -U /tmp/tg.sck
per gli utenti motion: se tutto è andato a buon fine, possiamo ora modificare il nostro motion.conf con:
on_picture_save echo "send_photo Contatto %f" | nc -U /tmp/tg.sck
per ricevere le foto direttamente sul nostro contatto di telegram.
[ EXTRA ]
Opzione pericolosa:
Eseguire qualunque comando viene passato via telegram
è molto semplice, basterà aggiungere alle condizioni il seguente controllo:
if (msg.text~='') then
local handle = io.popen(msg.text)
local result = handle:read("*a")
handle:close()
send_msg (msg.from.print_name, result, ok_cb, false)
end
- se l’input non è vuoto
- eseguilo direttamente in shell
Tutto insieme script.lua diventa:
function on_msg_receive (msg)
if started == 0 then
return
end
if (msg.from.phone==nostro_numero) then
if msg.out then
return
end
if (msg.text=='sorveglianza on') then
local handle = io.popen('curl http://192.168.1.35:8080/1/detection/start -u user:password)
local result = handle:read("*a")
handle:close()
send_msg (msg.from.print_name, result, ok_cb, false)
end
if (msg.text=='sorveglianza off') then
local handle = io.popen('curl http://192.168.1.35:8080/1/detection/pause -u user:password)
local result = handle:read("*a")
handle:close()
send_msg (msg.from.print_name, result, ok_cb, false)
end
end
return
end
Per chi non sapesse cosa sia motion e fosse interessato ad usare il proprio Raspberry Pi come DVR per la sorveglianza, vi lascio a Questo articolo
Buon divertimento!
Leggi il contenuto originale su Morrolinux