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'

The TanzoLab Project

Il TanzoLab è una iniziativa senza fini di lucro, nata da un'idea di Sergio Tanzilli socio fondatore di Acme Systems srl nel Novembre 2015, per trasferire ad appassionati di elettronica e informatica, professionisti e aziende nel settore, le conoscenze necessarie per poter creare prodotti embedded adatti per la produzione industriale.

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.