15. Envió de datos a la nube
El Powermeter Smart posee la capacidad de enviar datos a un servidor remoto. El protocolo
utilizado para tal finalidad es MQTT v3.1.1. Se trata de un protocolo utilizado en aplicaciones de
telemetría que se caracteriza por ser liviano y simple, lo cual lo hace especialmente atractivo
para aplicaciones de IoT (Internet of Things).
Se trata de un protocolo de publicación/suscripción que resuelve el problema fundamental que
existe a la hora de comunicar equipos que operan desde redes privadas: como llegar a ellos
con mensajes en tiempo real sin ser filtrados por NAT o exponer la seguridad de la red. Para
ello se requiere cierta infraestructura de red para funcionar, la cual consiste en un broker: es un
servidor encargado de implementar la recepción y entrega de mensajes entre los clientes
MQTT. Cada cliente MQTT puede suscribirse a uno o más topics. El broker se encargará de
entregarle el mensaje publicado en dichos topics a todos y cada uno de los clientes que se
hayan suscripto. De igual manera, los clientes pueden publicar información en los topics que
deseen (o se les haya permitido).
El secreto de fondo son las conexiones TCP persistentes. El protocolo funciona sobre TCP en
el puerto estándar 1883. Cada cliente MQTT se encarga de abrir una conexión TCP contra el
broker, y es responsable de mantenerla abierta durante todo el tiempo de operación. Dado que
en sus primeras versiones el único mecanismo de seguridad disponible era una autenticación
mediante usuario y contraseña que viajaban en los mensajes sin encriptación, rápidamente se
implementó una variante que opera sobre capa de encriptación TLS. En esta última variante el
puerto habitualmente utilizado es el TCP 8883.
15.1. Conexión MQTT
El Powermeter Smart tiene la capacidad de conectarse a cualquier broker MQTT. No obstante,
es importante aclarar que el equipo opera con el webservice de Powermeter y los servicios
correspondientes en la nube utilizando este mecanismo de conectividad. Por lo tanto, si se
modifican las configuraciones por defecto para utilizar el equipo con un broker MQTT diferente,
no podrá hacer uso de los servicios web de Powermeter.
El usuario puede configurar la dirección y puerto del broker al cual desea conectar su equipo,
así como también los mecanismos y parámetros de seguridad (usuario y contraseña MQTT, y
opciones de encriptación de información).
El equipo tiene un proceso que monitorea constantemente el estado de la conexión al broker.
Si la misma se ve interrumpida, el equipo intenta reconectarse inmediatamente. Luego de cada
intento de conexión fallido, el equipo espera 30 segundos antes de volver a intentar. Cabe
51