El mejor complemento para una solución de IoT utilizando una Raspberry Pi
This post is also available in : Inglés
Monitoriza tus dispositivos IoT con una Raspberry Pi y Pandora FMS
Pandora FMS es una herramienta de monitoreo proactivo, avanzada, flexible y fácil de configurar en función del negocio. Se integra a todas las necesidades tanto en servidores, equipos de red, terminales y lo que sea necesario monitorizar.
En este artículo nos enfocaremos en la monitorización de openHAB (Solución de Casa Inteligente), utilizando el agente de software instalado en nuestra Raspberry Pi (este artículo aplica tanto a la versión Community como a la versión Enterprise de Pandora FMS).
Si quieres más información sobre la monitorización de openHAB recuerda que tienes a tu disposición nuestra guía rápida.
Mi Casa Inteligente
Antes de seguir con el artículo me gustaría compartir que todo lo que voy a monitorear forma parte de mi casa; inicialmente comencé con las luces exteriores, pero poco a poco fui sumando cosas hasta llegar a integrar cámaras, alarma y automatización.
Para comenzar vamos a ver qué es una Raspberry Pi. Básicamente, una Raspberry Pi es una minicomputadora de placa reducida (SBC) de bajo coste -menos de 50 dólares, para tener una idea-, donde en vez de utilizar un disco duro se utiliza una tarjeta de memoria SD.
Raspberry PI 3b+
Raspberry PI 3b, Raspberry PI Zero W
En una Raspberry Pi Zero W se puede instalar el agente de Pandora FMS sin ningún problema, para monitorear cualquier dispositivo conectado a la misma red WiFi.
Más información sobre Raspberry Pi en la página oficial. https://www.raspberrypi.org/
Ahora sí, entrando un poco más en detalle, actualmente para mi casa utilizo los siguientes componentes.
Raspberrys
Nombre Raspberry Pi Software
openHAB RPI 3b+, 16 GB openHAB, Unifi Controller, Agente Pandora FMS
sits-mon RPI 3B, 16 GB MotionEYE, Agente Pandora FMS Componentes
Adicionales
Nombre | Descripción |
Unifi AP | Dispositivo que soporta red WIFI |
Firewall | Brinda Internet y administra IPs de los dispositivos |
DVR | Antiguo DVR con cámaras analógicas |
Cámaras IPs | Cámaras IP Nativas |
No es la parte fundamental del artículo, pero seguro que se preguntarán qué tipo de hardware utilizo para poder tener una solución de casa inteligente. Aquí pueden ver algunas fotos para que puedan conocer de qué trata todo esto:
Relay Sonoff Basic R1, al cual se le sumó un sensor de temperatura y humedad DHT22. Si conocen el dispositivo, en forma nativa se conecta con eWelink, pero en mi caso le modifico el firmware para que tenga compatibilidad con MQTT (veremos en detalle de qué se trata un poco más adelante).
Kit de Alarma Broadlink: los sensores como el de magnético que
se ve a la izquierda envían señales por RF y obtengo los datos mediante un complemento en Python en Linux.
Sensor de Ambiente Broadlink: permite conocer temperatura, humedad, luz, ruido, etc. Obtengo los datos con Python en Linux.
Ahora sí, conociendo un poco qué estoy usando vamos a detallar mejor el software utilizado para poder tener mi casa inteligente funcionando y los componentes de software libre que lo componen.
openHAB es un bus de automatización para el hogar, una solución de software desarrollada en Java que conecta componentes para la automatización y que soporta una amplia gama de proveedores en una sola plataforma, independientemente del fabricante y el protocolo.
El proyecto fue iniciado por Kai Kreuzer en 2010 y hoy tiene muchos co-desarrolladores. A finales de 2013 se decidió utilizar como base el proyecto Eclipse SmartHome; hoy ambos proyectos se desarrollan en paralelo.
Más información:
https://www.itsanchez.com.ar/index.php/44-openhab/352-openhab que-es
Eclipse Mosquitto es un broker MQTT, un protocolo muy utilizado para las soluciones industriales de IOT (Internet de las Cosas); en el corazón de la integración con los componentes que forman parte de mi casa inteligente, antes de sumar algo nuevo lo primero que busco es que tenga soporte de MQTT.
Más información: https://mosquitto.org
MotionEYE, es un frontend para integrar cualquier tipo de cámara; lo utilizo para unificar tecnologías (Cámaras IPs, DVR) y poder verlas sin problemas en openHAB.
Más Información: https://github.com/ccrisan/motioneye/
Algunas vistas de mi casa inteligente.
Aplicación Nativa en iOS
Pantallas de la interfaz con soporte para pantallas táctiles
Ahora sí, luego de esta introducción vamos a entrar de lleno en el monitoreo con Pandora FMS.
En mi caso, Pandora FMS está corriendo en una máquina virtual en la Nube donde se ejecuta el servidor de Pandora FMS y está la consola WEB para poder trabajar con la solución. En el siguiente esquema vemos el funcionamiento:
Configuración del Firewall en la Nube para poder monitorear la solución de IoT
Puerto TIPO Uso
443 TCP Consola WEB Pandora FMS
41121 TCP Recepción de agentes (Tentacle)
En las dos Raspberry Pi estoy utilizando el sistema operativo oficial Raspberry OS (antiguamente Raspbian), basado en Debian 10. Para instalar los agentes de Pandora FMS simplemente hay que ejecutar el comando:
apt -y install pandorafms-agent desde la consola vía SSH. Antes de seguir voy a compartir algunas pantallas con el resultado obtenido y luego explicaré algunos ajustes puntuales para Raspberry Pi.
Capturas de Pantalla de Pandora FMS
Agentes Raspberry Pi
En mi caso, Pandora FMS está corriendo en una máquina virtual en la Nube.
Consola Gráfica openHAB
Ahora sí, viendo un poco el resultado vamos a ver en más detalle por qué es importante monitorear y cuales son las fortalezas de Pandora FMS para poder conocer la salud de una solución de casa inteligente. Algo muy importante a tener presente es la temperatura en las Raspberry Pi; en este punto agregamos la siguiente configuración en el archivo /etc/pandorafms/pandora_agent.conf
## Temperatura Raspberry PI
module_begin
module_name RPI_Temperatura
module_type generic_data
module_exec vcgencmd measure_temp | sed 's/temp=//' | sed 's/C//' | sed 's/.$//g'
module_max 100
module_min 0
module_description Temperatura Procesador RaspberryPI module_min_warning 70
module_max_warning 90
module_min_critical 91
module_max_critical 100
module_end
La línea module_exec vcgencmd measure_temp | sed ‘s/temp=//’ | sed ‘s/C//’ | sed ‘s/.$//g’ ejecuta el comando vcgencmd measure_temp | sed ‘s/temp=//’ | sed ‘s/C//’ | sed ‘s/.$//g’
El mismo devuelve la temperatura actual de nuestra Raspberry Pi, como se puede ver en la siguiente imagen:
Vemos que sumar un valor importante es algo realmente muy sencillo en Pandora FMS y nos permite ver la foto (estado actual) y la película (estado histórico) de la temperatura de nuestra Raspberry Pi.
Temperatura Raspberry Pi con cooler (ventilador)
Temperatura Raspberry Pi sin cooler (ventilador)
Con estos dos gráficos ya se puede ver que es muy recomendable utilizar un cooler (ventilador) para que la temperatura de uso
de la mini computadora se mantenga más bajo. Cualquier valor que se guarde en Pandora FMS permite hacer este tipo de análisis, como por ejemplo la velocidad de internet de nuestro enlace, dispositivos de red, etc. En una solución de IoT saber que los dispositivos funcionan y poder generar alertas ante una falla es muy importante y fácil de hacer utilizando Pandora FMS.
Integración de valores de openHAB en Pandora FMS
Algo muy importante y útil en tiempos de transformación digital es la integración entre distintas soluciones de software. En este caso voy a tomar temperatura y humedad de los sensores que reportan vía MQTT a openHAB y convertirlos en monitores de Pandora FMS utilizando la lógica de Plugin de agente.
Para esto creamos el plugin en el directorio
/etc/pandorafms/plugins/get_oh_item.sh con el siguiente contenido
#!/bin/bash
if [ $# -eq 0 ]
then
echo "Se debe poner el item y la descripcion "
echo "get_oh_item.sh [ItemPandora] [ItemOH] \"Descripcion Del Modulo\""
exit 1
fi
itemp=$1
itemo=$2
desc=$3
i1=$(curl http://localhost:8080/rest/items/$itemo/state ) echo ''
echo "
echo "
echo "
echo "$desc"
echo ''
Es un script en bash que, según 3 parámetros, toma un valor y genera en formato xml los monitores para que sean reportados en en forma simple en Pandora FMS
¿Cómo funciona? Es muy fácil, ejecutamos el ejemplo:
/etc/pandorafms/plugins/get_oh_item.sh ITS-openHAB-Humedad Garage GarageHum «Humedad Garage»
Y obtenemos el siguiente resultado:
Para que los datos estén en nuestra consola de Pandora FMS editamos el archivo /etc/pandorafms/pandora_agent.con y agregamos la siguiente línea:
module_plugin /etc/pandorafms/plugins/get_oh_item.sh ITS openHAB-Humedad-Garage GarageHum «Humedad Garage»
Salvamos el archivo y reiniciamos el agente con el comando systemctl restart pandorafms-agent
Validamos los monitores creados con nuestro Plugin de Agente. Teniendo los valores podemos generar consolas visuales nativas como la siguiente:
Con un poco más de esfuerzo, integrando Pandora FMS con Grafana podemos hacer dashboards como los siguientes:
Para finalizar, recuerden que Pandora FMS es un sistema de monitorización flexible, capaz de monitorizar dispositivos, infraestructuras, aplicaciones, servicios y procesos de negocio.
¿Quiere conocer mejor qué es lo que Pandora FMS puede ofrecerle? Descúbralo entrando aquí.
Si tiene que monitorizar más de 100 dispositivos también puede disfrutar de una DEMO GRATUITA de 30 días de Pandora FMS Enterprise. Consígala aquí.
Por último, recuerde que si cuenta con un número reducido de dispositivos para monitorizar puede utilizar la versión OpenSource de Pandora FMS. Encuentre más información aquí.
Socio Fundador y CEO de SITS SOLUCIONES.
Emprendedor inquieto, Tecnólogo de formación e innovador por vocación, cuenta con más de 25 años de experiencia en el universo IT. Transitando la transformación digital y creando soluciones innovadoras, actualmente enfocado en Monitoreo Pro-Activo, Cloud y Alta disponibilidad. Realiza contribuciones a las comunidades de Pandora FMS para Argentina, Chile y Uruguay.
Founder partner and CEO of SITS SOLUCIONES.
Restless entrepreneur, training technologist and innovator by vocation, has more than 25 years of experience in the IT universe. Moving the digital transformation and creating innovative solutions, currently focused on Pro-Active Monitoring, Cloud and High Availability. He makes contributions to Pandora FMS communities for Argentina, Chile and Uruguay.
Systemd logs: how to monitor them with Pandora FMS
[…] this excellent article, there are examples on how to use BASH and develop modules for Pandora FMS software agents to be […]