Il “bot” di Telegram per l’IoT

0
Share

Negli ultimi anni si è moltiplicata la diffusione di Telegram (app per Mac, Windows, iOS, Android), prima come alternativa “sicura” a Whatsapp, poi come strumento preferito, avente caratteristiche specifiche, per l’utilizzo e la gestione dei cosiddetti BOT.

Il “bot” è sostanzialmente un utente virtuale di Telegram. La cosa carina, se vogliamo, è che li programmiamo noi. Ovvero, ce ne sono già tanti pronti da essere usati direttamente, per esempio per fare estrarre un numero a caso, per dare le previsioni del tempo, per dare notizie di qualcosa, etc. etc. , ed è sufficiente “collegarsi” a quell’utente particolare (che per l’appunto è un bot) per ottenre i suoi servigi. Informazioni più strutturate si possono ottenere qui.

Ma come dicevo, possiamo anche crearne di nostri, che facciano cose che ci interessano direttamente.

Il bot

In questa sede NON creeremo un nuovo bot, ma tenteremo di capire cosa farci e come.

Tanto per iniziare, la sicurezza: la “chat” con il bot è perfettamente analoga ad una qualunque altra chat (di Telegram), quindi può essere privata o pubblica, criptata o meno, ma sempre con la condizione, che in ogni caso, anche se non la criptiamo, c’è una cifratura univoca end-to-end che impedisce a chiunque altro di mettere il naso nelle comunicazioni tra i due partecipanti della chat.

Come si programma: in moltissimi modi, utilizzando per esempio API e librerie specifiche per i linguaggi di programmazione più diffusi, ovvero scripting in ambienti vari, per esempio LUA su bash linux. In quest’ultimo caso non c’è un vero programma ma uno script, anche complesso e strutturato come un vero programma compilato, ma che viene interpretato direttamente ed è quindi, sostanzialmente, più facile da testare e richiede meno infrastruttura e preparazione per essere usato. Soprattutto se si tratta di funzionalità semplici.

Dove risiede: il bot si trova (normalmente) sui server di Telegram. Questo gli permette di essere utilizzato attraverso internet in qualunque punto ci troviamo. Ma la sua programmazione avviene sul client che creiamo noi su un nostro server. Quindi, per dargli la funzionalità che vogliamo, dobbiamo avere un client attivo che si occupi di “impersonare” il bot.

Quindi riassumendo: è disponibile ovunque, è programmabile come vogliamo, è estremamente sicuro.

Cosa fa il bot

In modo molto semplice il bot, ricevendo i dati dal client, quindi da utenti telegram o da altre funzionalità implementate (con limitazioni relative alla sicurezza), li può elaborare, memorizzare, visualizzare, trasmettere al chiamante o a destinatari predefiniti. Quindi, sostanzialmente, qualunque cosa.

Da tenere presente sempre è che il bot, ovvero la sua programmazione, che è poi la sua identità, risiede fisicamente sulla nostra macchina, cioè la macchina su cui abbiamo installato il client per il suo funzionamento.

Ma a questo punte sorge una domanda.

Cos’è il client Telegram?

E torniamo, come in un cerchio, al punto di partenza: il client Telegram. Ovviamente un client Telegram è l’app vera e propria che abbiamo sui computer o sul nostro smartphone. Ma questo è solo uno dei possibili client. Come dicevamo sopra, i client si possono “creare”, facendo dei programmi che contengano i comandi di gestione del client stesso, cioè si colleghino al server, si identifichino con i meccanismi necessari, e siano in grado di ricevere i messaggi ed elaborarli, eventualmente inviando sullo stesso canale la possibile risposta. Quindi ci sono infiniti possibili client, che hanno ognuno le caratteristiche che gli chiede (ovvero implementa) chi l’ha programmato.

IoT e bot

Mi sembra chiaro che la potenzialità dello strumento di controllo (bot) è enorme. Con le caratteristiche che abbiamo evidenziato sopra siamo in grado di inviare comandi e ricevere risposte in tutta sicurezza attraverso canali cifrati verso il nostro bot ed ottenere risposte immediatamente.

Ma queste risposte possono essere diverse da “parole” ricevute: possono essere azioni che vengono effettuate in remoto attraverso componenti IoT installati che ricevono, per l’appunto, comandi da remoto.

Semplificando e chiarendo all’estremo il discorso, potremmo inviare al nostro bot il comando

accendi luce studio

e la luce dello studio si accenderebbe immediatamente.

Ma come si potrebbe attuare un meccanismo di questo tipo? Attraverso il programma del bot, il quale ricevendo questo messaggio, con una qualche metodica sintattica, riconoscerebbe il comando ed eseguirebbe l’azione inviando il giusto comando all’interruttore remoto (magari un Tasmota!).

IoT e Telegram

Torniamo quindi alla relazione tra l’IoT e Telegram: quest’ultimo è un ottimo mezzo per comunicare con i nostri apparati IoT, opportunamente configurati per ricevere comandi attraverso canali dedicati, senza accesso a siti “generici” per l’accesso agli apparati stessi e senza necessità di creare un’app apposita per il desktop o per lo smartphone. Ma non per questo senza la possibilità di configurare una interfaccia che ci semplifichi la vita:

Menu di Telegram per invio comandi al bot
Esempio di interfaccia per Telegram

Come vedete ci sono dei tasti che permettono di effettuare le operazioni necessarie senza doversi ricordare quali comandi dare. Queste sono le cosiddette “tastiere speciali” già previste in Telegram. Le possiamo quindi programmare e definire a nostro piacere.

In conclusione

Abbiamo visto che le condizioni per l’utilizzo di Telegram nel nostro IoT ci sono tutte. A partire dalla sicurezza, passando per la programmabilità, ed arrivando all’interfaccia. Penso quindi di aver stimolato la vostra curiosità. Nel prossimo articolo parleremo di come programmare il bot per la gestione di comandi da messaggi in arrivo.

Spero di avervi interessato abbastanza e, nel caso, vi suggerisco di inviarmi i vostri commenti, richieste, o approfondimenti in modo da poterne parlare nel prossimo articolo.

Ma lo facciamo sempre SoloPerHobby!😉