Hace una semana os contaba en la Primera Parte de este Articulo, como diseñar y poner en producción a través de una Raspberry Pi y unos sensores de temperatura y humedad DHT11, para que a través de una página web desplegada en la propia RPi, poder controlar la temperatura de nuestro datacenter de una forma muy económica y eficaz.
El problema que tiene la primera versión de este sistema (la que os contaba en la primera parte de este articulo) es que si nos encontrábamos fuera de la red local en la que estaba publicado el servidor web, no podíamos conocer el estado del CPD, cierto es que se podría desplegar una VPN para acceder remotamente a esta red y así poder monitorizar la temperatura desde cualquier parte del mundo, pero esto me parecía un poco desproporcionado, y más si la RPi la tenemos desplegada en una VLAN aislada del resto de la red. La opción que me pareció más adecuada fue la de montar un bot de Telegram, para que a través de una serie de comandos predefinidos poder consultar en cualquier momento el estado de nuestro CPD, consulta que podremos realizar desde nuestro propio teléfono móvil, y lo más importante, desde cualquier parte del mundo. Pero claro, no vamos a estar cada dos por tres preguntándole a nuestro BOT por el estado del CPD, lo suyo es que exista un sistema autónomo que compruebe cada cierto tiempo el estado de la temperatura y que si detecta algún tipo de incidencia, nos avise a través de Telegram automáticamente. De este modo, nos podemos despreocupar completamente de el estado de la temperatura. En esta segunda parte del artículo, describiré como añadir la funcionalidad de un Bot de Telegram, a nuestra RPi de gestión de temperatura.
Fig. 1 Logotipo de Telegram.
En primer lugar, para poder desplegar nuestro BOT de Telegram en la RPi, tan solo tendremos que instalar el API de Telegram: https://github.com/eternnoir/pyTelegramBotAPI.git. Una vez instalada, ya podremos controlar desde otro script, en Python la actividad del bot. En mi caso, he decidido dividir la tarea en dos hilos: el primer hilo sería el BOT propiamente dicho, su función sería estar escuchando continuamente los mensajes que recibe, y si alguno coincide con los comandos que se le han indicado, que actúe en consecuencia respondiendo con la información solicitada. El segundo hilo, se encarga de comprobar cada cierto tiempo el log de la temperatura del CPD, si detecta una temperatura más alta de lo normal, automáticamente enviará un mensaje a través del grupo de Telegram que se le ha indicado, para notificar la incidencia al departamento de TI y que estos actúen en consecuencia.
Fig. 2 Extracto del código Python que ejecuta el primer hilo del bot.
Fig. 3 Extracto del código Python que ejecuta el segundo hilo para las alertas.
Para que no tengáis que escribir el código Python que gestiona los dos hilos, os lo dejo por Aquí y así os lo podéis Descargar tranquilamente. Como ya dije en la primera parte del artículo, no soy desarrollador, así que si encontráis en el código partes que sean mejorables, bienvenidas serán esas modificaciones, eso sí, no me digáis que defina las variables al inicio, que de eso ya se encargan mis compañeros 😉 Aunque el código que os paso es totalmente funcional, tendréis que definir una serie de variables para poder hacerlo funcionar. Estas son:
Fig. 4 Extracto del código Python dónde se definen las variables: Token, CIDID y temperatura.