
Introducción
Para el Re-Diseño Solución para Gestión Energética (Smart -Energy) desarrollado en Docker, Python e InfluxDB para la empresa Effergy, dedicada a la gestión energética.
Nos solicita la revisión de su solución IoT utilizada para la toma de las lecturas o telemetrías de los edificios que los tienen contratados como consultora en gestión energética.
Tabla de Contenidos
Este trabajo tiene por objetivo tener el estado de salud global de la solución actual y por otro lado, analizar alternativas de corto y mediano plazo que permitan cumplir con la operación comprometida.
Red de Datos
Para el Re-Diseño Solución IoT para Gestión Energética. En el caso de la red de datos, entre los puntos que se analizaron esta facilidad de instalación y configuración, costo de hardware requerido, nivel de servicio.
La propuesta entregada fue la siguiente:

Solución IoT
En el Re-Diseño Solución IoT para Gestión Energética, se analizaron los elementos entregados y se buscó una solución basada en procesamiento “EDGE” (muy cercano a los sensores).
Con esta máxima en mente, el diseño entregado se basó en vencer algunos patrones encontrados y ofrecer alternativas pensando en que las telemetrías solo aumentan y estos datos son solo requeridos por periodos de tiempo acotados.
Integraciones Síncronas:
Evitar que los componentes de software usen este tipo de comunicaciones y cambiar este patrón por comunicaciones asíncronas.
Diseño on-line:
El diseño encontrado, fue desarrollado asumiendo que siempre hay conectividad con internet y si no la hay.
Se produce una falla “exception” que es gestionada, pero obliga al sistema a agendar las actividades de envío “post” al servidor web externo con nulo control “ACK”.
Por contrario aquí la recomendación es usar un diseño off-line y que las integraciones sean servicios periódicos.
Gestión de Datos:
Se encontró una gestión de datos, basada en que los sensores/medidores, son capaces de conservar la data por alguna cantidad de tiempo, que dependerá de la cantidad de registros generados.
Esto significa que la aplicación no tiene ninguna estrategia de persistencia de datos. El riesgo en este escenario es que un sensor de dañe y se pierdan los datos entre la última vez que se obtuvieron, hasta el momento de la falla.
En este punto, se recomendó el uso de una base de datos del tipo TSDB (Time Serial Data Base) que permite nativamente persistir las telemetrías y con muy poco esfuerzo generar los reportes de consumo en forma agregada.
Saturación root-filesystem:
En los sistemas Raspberry/Python no contemplan el manejo de logs.
Esto sucede, ya que usando estructuras de datos que tienden a “llenar” el almacenamiento interno del sistema sin control y frente a una saturación del “root-filesystem”.
El sistema simplemente no arrancará y obligará a intervención manual para borrar manualmente los archivos de log.
Propuesta de Solución

Hardware de sensores y solución
En relación a los sensores, se analizó las alternativas de tener medidores (contadores de energía) que pudieran generar nativamente los datos requeridos.
No se encontró algún proveedor que permitiera estas características sin quedar “amarrado” (vendor lock-in) a ese proveedor y pagando más por estos módulos como adicionales.
Se siguió la estrategia de usar sensores externos para obtener las mediciones de energía.
En el hardware requerido para el servidor IoT, se mantuvo el micro computador Raspberry PI 3 B+ agregando tolerancia a fallas desplegando los servicios en forma redundantes.
Los aspectos que se debieron analizar fueron los siguientes:
La seguridad física y problemas de temperatura:
Los que se solucionarán usando un gabinete especialmente diseñado, que sólo permita acceder a los conectores requeridos, que impida acceder fácilmente a la memoria uSD que aloja el sistema operativo, que además tenga ventilación y uso de disipación forzada por medio de un cooler controlado por temperatura.
La seguridad lógica:
Se solucionará encriptando ya sea todo o parte del sistema operativo, impidiendo la fácil manipulación y usando como llave un secreto que dependa del hardware tal como criptomemoria ECC, dirección MAC, etc.
Los problemas de alimentación y posibles micro cortes o apagados sin control:
Se solucionarán usando una miniUPS diseñada para Raspberry Pi, que impedirá el apagado del sistema operativo sin control, y la instalación de un panel eléctrico dedicado.
Algunos diseños de referencia:

Integración a centros de cómputo
En este punto se analizó y se definió un diseño que sólo enviará los datos agregados para reportaría a un servidor web y evitando los cuellos de botella en el envío de miles de registros de telemetría vía el método “post”.

Conclusiones
En el trabajo de Re-Diseño Solución IoT para Gestión Energética, los siguientes puntos fueron los que nos entregaron un camino a seguir:
Tendencias de IoT Industrial
Dada la tendencia de la industria a incorporar IoT para mejorar o hacer más eficientes sus operaciones. Se puede analizar que hay un creciente interés de empresas de software que tradicionalmente hacían software administrativo, en entrar en la industria de IoT. Lo anterior, plantea oportunidades y desafíos en la elección de la solución tecnológica.
Medidores Inteligentes
No encontramos en el mercado un medidor de energía con las prestaciones necesarias para el proyecto como: robustez, comunicación IoT. Todos permiten comunicación inalámbrica por módulos opcionales.
Red para IoT
El uso de una tecnología de red mesh, diseñada para estándares IoT, permitirá optimizar los recursos de red y lograr la máxima potencia.
Procesamiento distribuido de la datos IoT
Los cálculos locales a nivel “edge“ (donde es generara la telemetría), en la arquitectura propuesta permitirá destrabar los posibles “bottle neck”.
Software Agile y Gestión de Cargas de Trabajo
El uso de arquitectura de “Microservicios” y tecnología de contenedores (Docker), permite hacer muy eficientes los pasos a producción evitando los problemas generados por las dependencias de librerías y permite lograr aumentar la capacidad de carga sin tener que intervenir la solución.