Tecnología

El mejor complemento para una solución de IoT utilizando una Raspberry Pi

octubre 21, 2020

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 iot
Raspberry PI 3b+

raspberry pi iot
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 APDispositivo que soporta red WIFI
Firewall Brinda Internet y administra IPs de los dispositivos
DVR Antiguo DVR con cámaras analógicas
Cámaras IPsCá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:

raspberry pi iot

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).

raspberry pi iot

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.

raspberry pi iot

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

https://www.openhab.org

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.
raspberry pi iot
raspberry pi iot

Aplicación Nativa en iOS
raspberry pi iot
raspberry pi iot
raspberry pi iot
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:

raspberry pi iot
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
raspberry pi iot
Agentes Raspberry Pi

En mi caso, Pandora FMS está corriendo en una máquina virtual en la Nube.

raspberry pi iot
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:

raspberry pi iot

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.

raspberry pi iot
Temperatura Raspberry Pi con cooler (ventilador)

raspberry pi iot
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:

raspberry pi iot

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

raspberry pi iot

Validamos los monitores creados con nuestro Plugin de Agente. Teniendo los valores podemos generar consolas visuales nativas como la siguiente:

raspberry pi iot

Con un poco más de esfuerzo, integrando Pandora FMS con Grafana podemos hacer dashboards como los siguientes:

raspberry pi iot

raspberry pi iot

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í.


Leave a comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.