Markdown source

#Integrare Telegram in OpenHAB

<abstract>
Integrare è il verbo di OpenHab, in questo articolo vedremo come farlo con la chat Telegram 
in modo da poter ricevere gli eventi generati dal nostro impianto ovunque siamo.
</abstract>

<img src="./openhab_telegram" class="img-responsive center-block">


## Cosa è Telegram ?

[Telegram](https://it.wikipedia.org/wiki/Telegram) è la concorrente diretta di Whatsapp ma in più ha, 
da sempre, i BOT che sono delle vere e proprie chat automatiche che ci consentono 
di ricevere informazioni o di fare delle richieste.

A questo punto non resta che installare Telegram sul dispositivo 
mobile ([Android](https://play.google.com/store/apps/details?id=org.telegram.messenger&hl=it) o [iOS](https://itunes.apple.com/it/app/telegram-messenger/id686449807?mt=8)) e registrarsi al servizio.

### Creare un BOT, ricavare il token e la chatId

Seguendo quanto già descritto [in questo articolo](http://www.tanzolab.it/tpc) creare un BOT e ricavarne il TOKEN.

Supponiamo di aver creato il BOT OpenHab

Cercare il BOT nella casella di ricerca:

<pre class="terminal">
@OpenHab
</pre>

e inviare un messsaggio qualsiasi, nel mio caso ho scritto:
<pre class="terminal">
testodiprova
</pre>

A questo punto incollare il seguente link sul browser inserendo il TOKEN ricavato dal passo precedente:

<pre class="terminal">
https://api.telegram.org/botTOKEN/getUpdates
</pre>

Il risultato sarà un output JSON simile a questo:

<pre class="terminal">
{"ok":true,"result":[{"update_id":546577696,
"message":{"message_id":3,"from":{"id":112116999,"first_name":"Massimiliano","username":"massimilianocasini","language_code":"it-IT"},"chat":{"id":112116999,"first_name":"Massimiliano","username":"massimilianocasini","type":"private"},"date":1502702545,"text":"testodiprova"}}]}
</pre>

La chatId sarà il valore di result[0].message.from.id  in questo caso:

<pre class="terminal">
112116999
</pre>

<div class="alert alert-success">
  <strong>Fatto!</strong> Ora abbiamo TOKEN e ChatId.
</div>


### OpenHab, installare l'ACTION Telegram

Per utilizzare la funzionalità Telegram è necessario installare l'addon action Telegram tramite l'interfaccia [PAPER UI](http://docs.openhab.org/addons/uis/paper/readme.html)

<img src="./addontelegram.png" class="img-responsive center-block" width="80%">


### OpenHab, configurazione di Telegram

Editiamo il file:
<pre class="terminal">
/etc/openhab2/services/telegram.cfg
</pre>

e inseriamo le seguenti righe:

<pre class="terminal">
bots=bot1, bot2

bot1.chatId=112116999
bot1.token=162073819:AAFUj0QtqRLhs5Vj9t0ZJaoMZuWkC-pC3SA

bot2.chatId=223117000
bot2.token=162073819:AAFUj0QtqRLhs5Vj9t0ZJaoMZuWkC-CC4SB
</pre>

dove il valore di bots sono alias per identificare tutti i bots configurati eventualmente separati da virgola.

Possiamo inserire quanti BOTS vogliamo basta cambiare l'alias e inserire i corretti chatId e TOKEN

### OpenHab, inviare un messaggio via Telegram

Editiamo un nuovo file nella cartella rules:
<pre class="terminal">
/etc/openhab2/rules/telegram.rules
</pre>

Supponiamo di voler sapere sulla nostra chat lo stato del ventilatore collegato al rele1:

<pre class="terminal">
rule "Stato ventilatore"
when
        Item rele1 changed from OFF to ON

then
        sendTelegram("bot1", "Il ventilatore si è acceso!")

end

when
        Item rele1 changed from ON to OFF

then
        sendTelegram("bot1", "Il ventilatore si è spento!")

end

</pre>


Ulteriori esempi e maggiori info sono reperibili alla pagina dedicata:

[OpenHab Telegram Action](http://docs.openhab.org/addons/actions/telegram/readme.html#configuration)


@include='bio_massimiliano_casini'



Le attività del TanzoLab si svolgono ogni mercoledi sera, salvo casi speciali, dalle ore 18:30 presso i locali della Acme Systems srl e consistono in:

  • Talk monotematici a cura di professionisti in vari settori tecnologici
  • Workshop pratici su elettronica embedded, produzione e informatica
  • Progettazione e realizzazione di nuovi prodotti embedded per l'IT

Le attività vengono coordinate tramite questo sito, in cui vengono pubblicati tutti i lavori svolti o in via di sviluppo, e tramite un gruppo Telegram con cui per interagire direttamente via chat con gli altri membri.