Servidor domótico: 3 - Añadir un bot de Telegram en OpenHAB2

Añadir un bot de Telegram a OpenHab2

Actualización ENERO 2021: Publicada la versión 3 de openHAB

Según la wikipedia, un bot es un programa informático que efectúa automáticamente tareas. En nuestro caso, el bot que vamos a crear a continuación en Telegram, será el responsable de informarnos puntualmente, mediante mensajes, de los eventos que vayan sucediendo en OpenHAB.


Empezando la creación del Bot desde Telegram

El primer paso, es ser usuario de esta plataforma de mensajería. Si no lo eres todavía, instalaremos la aplicación en nuestro smartphone desde Google Play, y en nuestro ordenador mediante:

sudo pacman -S telegram-desktop

Una vez finalizada la instalación, abriremos BotFather que nos guiará en la creación de nuestro bot.

@botfather

Comenzaremos enviándole el mensaje /start y recibiremos como respuesta todos los comandos que estén disponibles:

Iniciamos el chat con el comando /start

El siguiente comando que utilizaremos será /newbot:

Creamos el nuevo bot con el comando /newbot

BotFather nos pedirá un nombre y un usuario para nuestro Bot. El usuario debe terminar obligatoriamente en bot y no debe estar en uso. Una vez elegido y enviado, BotFather nos confirmará la creación y nos facilitará un código token que utilizaremos más adelante:

Respuesta de @botfather con el token del nuevo bot

También vamos a personalizar el Bot con una foto de perfil, y lo haremos mediante /setuserpic:

Enviamos la foto de perfil a @botfather

Además de la clave token anterior, necesitaremos nuestro chat_id, Para obtener esta información utilizaremos IDBot, un Bot que nos retornará nuestro ID:

@myidbot

La operación es muy sencilla. Únicamente debemos empezar el chat con /start y a continuación /getid. Con estos dos comandos conoceremos nuestro ID:

Conocer nuestro id mediante @myidbot

Configuración en OpenHab 3

Una vez más, desde Things, pinchamos en el icono + que se encuentra en la parte inferior derecha de la página.

Pinchamos en el enlace Install More Bindings y buscamos Telegram Binding:

Buscar Telegram Binding en openHAB 3

Lo seleccionamos pinchando encima de él, y lo isntalamos mediante el botón Install:

Instalar Telegram Binding en openHAB 3

Esperamos a que termine la instalación:

Instalación en curso de Telegram Binding en openHAB 3

Una vez instalado, es suficiente introducir el token recibido y nuestro id en los campos correspondientes:

Conocer nuestro id mediante @myidbot

Finalizamos la creación con el botón Create Thing que se encuentra al final de la página.

Podémos probar que todo funciona bien creando una simple regla en openHAB:

sudo nano /etc/openhab3/rules/test-telegram.rules
rule "Prueba de mensajería Telegram"
when
    Time cron"0 37 10 1/1 * ? *"
then
   val telegramAction = getActions("telegram","telegram:telegramBot:ccfb42d5eaa")
   telegramAction.sendTelegram("¡Hola Mundo!")
end

Para esta prueba no hace falta esperar a que se ejecute la tarea cron. En openHAB 3 podemos ejecutar la regla cuando queramos.

Desde el menú, elegimos Rules:

Menú de reglas en openHAB 3

Y seleccionamos la regla que acabamos de crear, que será ahora mismo la única que tengamos:

Reglas en openHAB 3

En la pestaña Design, ejecutamos con el típico icono de play:

Ejecutar reglas en inmediato en openHAB 3

Casí de manera instantánea recibiremos en nuestro Telegram el mensaje desde openHAB:

Mensaje recibido en nuestro smartphone desde openHAB 3

No olvidemos eliminar la regla cuando hayamos confirmado que funciona correctamente el Bot.

sudo rm /etc/openhab2/rules/test-telegram.rules

Configuración en OpenHab 2

También en openHAB, instalaremos action-telegram desde Add-ons:

Telegram action en Openhab2

Con la clave token y el chat_id, es hora de crear el fichero telegram.cfg en la Raspberry:

sudo nano /etc/openhab2/services/telegram.cfg
# Read http://www.instructables.com/id/Telegram-Bots-for-beginners/
# to see how to set up bots and find your chat ids
#
# bots=bot1,bot2
# bot1.chatId=22334455
# bot1.token=xxxxxx
# bot2.chatId=654321
# bot2.token=yyyyyyyyyyy

bots=openhabrpi
openhabrpi.chatId=9999999
openhabrpi.token=123456789:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx`

Y con ésto habremos terminado. Para comprobar que todo funcione correctamente, crearemos una regla muy simple para que openHAB envíe un mensaje a nuestro chat.

Creamos el fichero de la regla:

sudo nano /etc/openhab2/rules/test-telegram.rules

Como ejemplo, utilizaremos una tarea cron para que, a una hora determinada nos envíe el mensaje. Si no estamos habituados a las expresiones de cron, podemos ayudarnos en la página web cronmaker.com.

En el ejemplo, voy a poner que me envíe el mensaje a las 10:37, y el texto del mensaje será, como no, ¡Hola Mundo!:

La acción sendTelegram se compone del Bot que hemos reseñado en /etc/openhab2/services/telegram.cfg y del mensaje propiamente dicho:

sudo nano /etc/openhab2/rules/test-telegram.rules
rule "Prueba de mensajería Telegram"
when
    Time cron"0 37 10 1/1 * ? *"
then
    sendTelegram("openhabrpi", "¡Hola Mundo!")
end

Si todo esta correcto, recibiremos un mensaje puntualmente en nuestro smartphone cada día a las 10:37:

Mensaje recibido en nuestro smartphone desde openHAB 2

No olvidemos eliminar la regla cuando hayamos confirmado que funciona correctamente el Bot.

sudo rm /etc/openhab2/rules/test-telegram.rules

Soy Jaume Ferré, aficionado a los nuevas tecnologias, aunque ya no lo son tanto.
¡Gracias por leerme!

Valora este artículo1 2 3 4 5 (0 votos)

(0 votos)

Categorias del blog

twitter

Últimos tweets