Como parte del programa de estudios del grado de ingeniería informática se ha realizado el trabajo de fin de grado correspondiente sobre un sistema de gestión de excedentes fotovoltaicos. Este post se trata de un pequeño resumen de este trabajo. Puede leer la memoria completa en este enlace.
Resumen
Cuando un usuario de una pequeña instalación fotovoltaica quiere aprovechar los excedentes que produce porque no le interesa inyectar en ese momento energía a la red puede hacer uso de esa energía encendiendo manualmente algunos dispositivos de su hogar, otros optan ir un paso más allá gracias a la domótica, comprando dispositivos que pueden regularse automáticamente como puede ser una estación de recarga de vehículo eléctrico o un enchufe inteligente. El problema que se encuentra este usuario es que los dispositivos que ha adquirido no se comunican entre ellos y en lugar de organizarse para aprovechar la energía compiten por ella.
Este trabajo propone dar solución tanto a los usuarios que quieran empezar a gestionar sus excedentes tanto como a los que ya lo han intentado mediante la domótica pero no lo han conseguido debido a los problemas de coordinación entre dispositivos.
Para ello se desarrolla un core que conoce y controla estos dispositivos mientras que distintos módulos o integraciones podrán ser añadidos para ampliar la capacidad de comunicación con dispositivos de distintos fabricantes y con distintos protocolos de comunicación. La conexión con la sistema Home Assistant es también parte fundamental del proyecto.
Repositorios
- Open Surplus Manager: el sistema principal que se encarga de gestionar los datos de consumo y de ofrecer una API REST para su consulta. Repositorio: https://github.com/JoseRMorales/OpenSurplusManager
- OSM-HA: la integración de Home Assistant que se comunica con el sistema y permite tener los datos de Open Surplus Manager en nuestro Home Assistant. Repositorio: https://github.com/JoseRMorales/OSM-HA
- pyOSManager: el cliente de Python que se comunica con la API REST de Open Surplus Manager. Importante ya que es requerido por OSM-HA aunque también puede ser usado de manera independiente. Repositorio: https: //github.com/JoseRMorales/pyOSManager
- OS-HA-Addon: el add-on de Home Assistant que instala Open Surplus Manager en el sistema de Home Assistant OS, sin necesidad de conocimientos de Docker o de la instalación manual de Open Surplus Manager. Repositorio: https://github.com/JoseRMorales/OSM-HA-Addon
Esquema general
Diagrama de clases
Lenguaje y librerias
El desarrollo de este sistema será en Python, un lenguaje de alto nivel que permite desarrollar distintos tipos de aplicaciones de forma rápida y sencilla. Python es un lenguaje muy popular en el desarrollo en general pero lo es sobre todo en el mundo IoT y en domótica donde software importante como Home Assistant está desarrollado en este lenguaje. También dispone de una gran cantidad de librerías que permiten la comunicación con una gran cantidad de dispositivos distintos, muy importante para el desarrollo de integraciones de Open Surplus Manager.
Para el desarrollo será necesario el uso de herramientas que permitan la programación asíncrona, ya que el sistema deberá ser capaz de gestionar múltiples tareas simultáneamente siendo algunas de ellas bloqueantes. Algunas de las librerías o frameworks (conjunto de código o conceptos que sirve de base para el desarrollo) a utilizar son: asyncio para la programación asíncrona, aiohttp, tanto para la creación de una API REST como para usarlo como cliente, y aiomqtt para la obtención de datos MQTT. La elección de MQTT para el desarrollo de una de las integraciones nativas se debe a que es un protocolo muy popular e idóneo para la comunicación entre dispositivos IoT.
Además de Python para la programación del sistema se hará de uso de YAML para la configuración, Docker para la creación de contenedores donde pueda ejecutarse el sistema y Docker Compose para su definición y ejecución cuando se usa fuera de Home Assistant OS.