Comandare Raspberry Pi usando Telegram

Ho tirato fuori dalla polvere una vecchia Raspberry Pi e, grazie a motionEye, l’ho trasformata in un sistema di videosorveglianza artigianale più che adatto alle mie esigenze.
Usando il rilevatore di movimento combinato con Pushover, ho un sistema che mi avvisa nel caso qualcuno entrasse in casa mentre non ci sono. Fortunatamente fino ad adesso ho collezionato solo molti scatti dei viaggi del mio gatto fino alla sua ciotola e documentato i suoi invidiabili pisolini pomeridiani.

Disattivare però motionEye quando mi trovo in casa per evitare che scatti l’allarme ogni volta che passo dal soggiorno è abbastanza scomodo: devo loggarmi al Raspberry Pi via ssh e digitare ogni volta il comando di stop.
Stavo cercando se ci fosse il modo di creare un bottone fisico, quando mi sono imbattuto in un articolo che spiega come sia possibile impartire comandi a distanza usando il sistema di messaggistica Telegram.

La configurazione è abbastanza agevole, ma la parte di compilazione, su una board di prima generazione ha richiesto ben di più della classica pausa caffè.
(Se la compilazione non andasse a buon fine con un errore simile:

telegram-cli: tgl/mtproto-utils.c:101: BN2ull: Assertion 0' failed. SIGNAL received

date un’occhiata a questa soluzione, basta commentare una riga e ricompilare).

Una volta effettuati tutti i test del caso, ho voluto trovare il modo di automatizzare anche l’avvio di Telegram.
Le istruzioni di configurazione del demone mi hanno demoralizzato quasi subito, cosìho optato per una soluzione meno elegante ed efficiente, ma decisamente più alla mia portata.

L’opzione -d permette di lanciare il client come demone, non resta quindi che farlo partire in automatico all’avvio e il gioco è fatto.

$ bin/telegram-cli -k tg-server.pub -d -v -s action.lua

Quindi usiamo cron per lanciare il comando all’avvio:

$ crontab -e
# lancia telegram demonizzato all'avvio
@reboot /home/pi/tg/bin/telegram-cli -k tg-server.pub -d -v -s action.lua

Editando poi il file action.lua è poi abbastanza facile creare tutti i comandi che si vogliono.

if (msg.text=='start-motion') then
   os.execute('systemctl start motioneye')
   send_msg (msg.from.print_name, 'motionEye avviato!', ok_cb, false)
end

Aggiornamento del 27 dicembre 2022:
– corretto il link all’articolo originale purtroppo andato offline con un altro che lo riporta fedelmente
– corretti i caratteri accentati che non si vedevano correttamente

Back to 1.0

Ho chiuso il mio account Facebook, vediamo se è tragica.

Progressivamente ho cominciato ad evitare di scorrere la mia timeline giusto per passare il tempo, sostituendo questo piccolo gesto scaccia noia con la lettura del mio aggregatore RSS (che fa tanto vecchio web) o semplicemente tenendo il telefono in tasca.

Per adesso sto bene e non ho perso neanche un amico. Seguirà aggiornamento.
Facebook nel frattempo mi dice che non è che cancella subito l’account, me lo congela per un po’ e se voglio tornare lui mi accoglie a braccia aperte.

Migrare i bookmark da Pocket a Shaarli

Nei miei continui disperati tentativi di affrancarmi il più possibile da servizi esterni con dubbio rispetto della privacy, mi sono imbattuto in Shaarli.
Dalle prime prove su strada sembra un ottimo strumento per salvare ed eventualmente condividere i propri segnalibri, un po’ come faceva il compianto Delicio.us.

Da tempo a questo scopo uso Pocket, relativamente tranquillizzato dal fatto che sia stato acquisito da Mozilla.

Volendo però provare un’installazione di Shaarli sul mio hosting, ho voluto provare a importare tutta la mia lista di Pocket.

La procedura di esportazione dei segnalibri in Pocket richiede un solo clic e genera un semplice file HTML, ma Shaarli si rifiuta di importarlo lamentandosi di un formato non corretto.
Cercando in rete ho trovato un template di una esportazione in formato Netscape.

Ho provato a modificare il file generato da Pocket come segue:

modificato il DOCTYPE (riga 1) come segue:

<!DOCTYPE NETSCAPE-Bookmark-file-1>

I segnalibri sono inclusi in una lista, ho modificato i tag così (qualsiasi editor di testo con la funzione trova & sostituisci sarà più che sufficiente):

<ul> ----> <dl>
</ul> ---> </dl>
<li> ----> <dl>
</li> ---> </li>
<tags> --> <TAGS> (in maiuscolo)

Una volta salvato il file verrà importato senza problemi da Shaarli con le tags correttamente impostate.