Uno de mis pasatiempos durante la pandemia que perduró fue la automatización del hogar. Descubrí Home Assistant, una popular plataforma de automatización de código abierto y altamente personalizable, y todas las cosas intrincadas que puedes hacer con ella para optimizar el funcionamiento de tu casa.
Tengo TDAH y encontré en Home Assistant una herramienta valiosa para gestionar la disfunción ejecutiva. Lo uso para recordatorios audibles de calendario, recordatorios de lavandería, temporizadores y para monitorear mi cámara de timbre y la cámara de vigilancia de mi perro. También me brinda una pura alegría nerd. Y recientemente di un paso más entusiasta en mi fijación por la automatización del hogar.
Home Assistant permite crear paneles personalizados para interactuar con tus dispositivos inteligentes. Los miembros de la comunidad pasan horas perfeccionando sus paneles y algunos son realmente impresionantes. De hecho, descubrí un tema de la comunidad que se asemeja al sistema de control del ordenador LCARS de la era de Next Generation de Star Trek, algo que me fascina desde pequeño. Aunque LCARS no sea una interfaz informática práctica, su belleza me atrapó desde que tenía ocho años.
La mayor parte de mi automatización del hogar ocurre sin mi intervención, y utilizo mucho el control por voz (sí, “Computadora” es mi palabra de activación. Los falsos positivos mientras miro Star Trek valen la pena). Sin embargo, hay cosas para las que siempre querré un panel de control. A veces, necesitas manejar las cosas manualmente. Es útil para mostrar el clima o activar escenas de iluminación personalizadas. Desde que comenzara mi afición por Home Assistant, he soñado con usar una interfaz al estilo LCARS. El tema mencionado es muy bueno; lo tengo como el panel de control principal de mi teléfono. Pero no es perfecto.
El tamaño y las proporciones de los separadores son un poco imprecisos, y los botones están divididos en dos partes. Son detalles menores, pero yo soy el tipo de fan que quiere que la precisión llegue hasta el último detalle. Así que decidí crear mi propia versión.
Recientemente, descubrí LVGL (Light and Versatile Graphics Library), que permite crear interfaces gráficas mucho más personalizables y sofisticadas que la configuración predeterminada de Home Assistant. Pensé que debía haber una forma de hacer que LVGL se comunicara con Home Assistant. La pieza final del rompecabezas fue ESPHome. ESPHome es un marco de firmware de código abierto que permite a aficionados como yo usar un lenguaje de marcado relativamente simple para programar microcontroladores con WiFi como el ESP32, el ESP8266 y el RP2040, y se integra estrechamente con Home Assistant. Las posibilidades son enormes. Utilizo componentes de ESPHome como detectores de movimiento, sensores de presencia, un sensor de calidad del aire y controladores para tiras LED. Y ESPHome admite LVGL en hardware específico de pantalla.
Así que compré una pantalla táctil Waveshare de 7” con un microcontrolador ESP32-S3 integrado y me puse a trabajar. Pasé horas buscando en internet capturas de pantalla y recreaciones de aficionados de algunos de los muchos paneles LCARS que aparecen en Star Trek de los años 90. Y llegué a esto:
Es un gráfico que aparece en los cuartos de Tuvok en Star Trek: Voyager. No estoy seguro de su función en la serie, pero tiene botones coloridos y esquinas redondeadas. Y lo más importante, hay dos indicadores en la parte superior que, quién sabe para qué sirven. Pero para mí, esos parecen controles de brillo de iluminación. Así que ya tenía mi diseño.
A continuación, tenía que construirlo. Para crear una interfaz en ESPHome utilizando LVGL, utilizas YAML para especificar las características (tamaño, posición, color, etc.) del elemento gráfico que deseas. LVGL los llama “widgets”. Primero creé mi diseño en Adobe Illustrator como referencia.
Luego comencé la tediosa tarea de recrear ese diseño en el editor de ESPHome en Home Assistant. Afortunadamente, no necesitas saber C (el lenguaje en el que está escrito LVGL) para usarlo en ESPHome. En su lugar, utilizas YAML, que es mucho más accesible para un aficionado entusiasta como yo. Componente por componente, especificaba las dimensiones de cada botón, su ubicación, su color, qué etiqueta tendría y su forma. Es mejor práctica en LVGL utilizar los widgets integrados en lugar de simplemente insertar imágenes. Aunque LVGL tiene esa capacidad, los microcontroladores ESP32 no tienen muchos recursos disponibles, y las imágenes los consumen rápidamente. Las únicas imágenes reales utilizadas en este diseño son los dos indicadores en la parte superior derecha. Todas las demás formas son botones de widget de LVGL.
Tuve que hacer un poco de trampa para las formas irregulares. Algunos botones en la interfaz LCARS solo tienen dos esquinas redondeadas. Los botones de LVGL son una opción o ninguna en lo que respecta a esquinas redondeadas. Afortunadamente, LVGL no tiene problema con apilar formas unas sobre otras. Para los botones que son mitad redondeados, simplemente apilé un círculo sobre el extremo de un botón cuadrado. Son del mismo color, así que parece una forma única. Las esquinas en el medio se hicieron de manera similar.
Finalmente, logré tener una pantalla táctil con apariencia auténtica de LCARS en mi sala de estar. Todo lo que quedaba era conectarla a mis dispositivos. Mientras trabajaba en este proyecto, estaba en mi sala de estar, así que elegí mis lámparas del salón. (Sí, realicé todo este proyecto antes de tener una idea clara de qué exactamente haría con él. Este no es un hobby para quienes piensan de manera extremadamente pragmática).
Configuré un botón para que se pusiera blanco cuando las luces estaban encendidas y volviera a su color original cuando las luces se apagaran. Un botón diferente realmente activa y desactiva las luces. Cuantos más botones hagan más cosas, más auténtico se siente para mí. Y este panel tiene más botones de los que luces tengo en mi casa. Uno de los indicadores refleja y controla el brillo de esas lámparas. Hay botones de estado que me indican si el modo de operación de mi hogar es “normal” o “acogedor”, lo que determina las escenas de iluminación.
La pantalla táctil con el panel reposa sobre un soporte cerca de mi sofá. No es en lo más mínimo práctica. Ya lo sabíamos sobre LCARS. Sin embargo, es hermosa. Y me hace muy feliz como nerd que ahora puedo controlar mi hogar como lo hacían mis héroes de la infancia con sus naves estelares.
Al reflexionar sobre esta experiencia, he aprendido varios puntos interesantes sobre la automatización del hogar:







