El proyecto LilyGo-EPD47_HACalendar convierte una pantalla e-paper de 4.7 pulgadas con ESP32 en un dashboard e-paper Home Assistant con estética de batalla Pokémon retro, mostrando calendario, clima en tiempo real y progreso del día con sprites que cambian según las condiciones meteorológicas, todo por menos de 30 dólares y con meses de autonomía.

En 30 segundos

  • El proyecto usa una LilyGo T5 4.7″ con ESP32-S3 (8MB PSRAM, 16MB Flash) y pantalla de 960×540 con 16 niveles de gris, por ~USD 25
  • Se conecta por WiFi a Home Assistant, toma datos de calendario y clima, y los muestra con sprites Pokémon que cambian dinámicamente según el tiempo real
  • Las barras de HP representan cuánto queda del día y del mes — una forma ingeniosa de empaquetar datos útiles en una interfaz nostálgica
  • Consume ~170μA en deep sleep y se despierta cada 30 minutos para actualizar, lo que le da semanas o meses de batería
  • El firmware se flashea con Arduino IDE y la configuración se reduce a editar un archivo con tus credenciales de WiFi y token de Home Assistant

Qué es el proyecto Pokémon E-Paper Calendar para Home Assistant

Lo creó bribot en GitHub y la idea es bastante simple: agarrar una pantalla de tinta electrónica barata, conectarla a tu instancia de Home Assistant, y que te muestre el calendario, la fecha, el clima y la hora con un diseño que replica una escena de batalla Pokémon clásica. Todo en escala de grises, todo en 4.7 pulgadas.

El concepto no es nuevo — dashboards e-paper para domótica hay varios. Lo que hace diferente a este es la capa visual. En vez de mostrar números secos en una pantalla, te presenta un Squirtle tirando agua si está lloviendo, o un Charmander si hace calor. Los sprites cambian en función de los datos reales que saca de tu sensor de clima en Home Assistant.

El dispositivo entra en deep sleep y se despierta cada 30 minutos para consultar datos frescos. Eso le da una autonomía que ninguna tablet con Lovelace puede igualar.

Hardware necesario: LilyGo T5 4.7 y lo que trae adentro

El corazón del proyecto es la LilyGo T5 4.7 pulgadas, una placa que integra un ESP32-S3-WROOM-1-N16R8 con 8MB de PSRAM y 16MB de Flash. La pantalla tiene resolución de 960×540 píxeles, 16 niveles de gris y soporte para touch capacitivo (aunque este proyecto no lo usa).

Números que importan:

  • Consumo en deep sleep: ~170μA — ridículamente bajo
  • Precio: entre USD 25 y USD 30 dependiendo del vendedor
  • Conectividad: WiFi 2.4GHz integrado
  • Batería: acepta LiPo directamente, con conector JST incluido en la placa

La lista de materiales del repositorio es cortita: la placa, un cable USB-C para flashear, y opcionalmente una batería LiPo si no querés dejarla enchufada. Si te da por imprimirle un case en 3D, sumale unos pesos más, pero no es obligatorio.

Cómo funciona la integración con Home Assistant

La arquitectura es directa. El ESP32 se despierta del deep sleep, se conecta al WiFi, hace una consulta HTTP a la API de Home Assistant con un token de larga duración, y trae dos cosas: los eventos del calendario (Google Calendar, CalDAV, o el que tengas configurado) y los datos del sensor de clima (temperatura, humedad, condiciones). Si te interesa, podés leer más sobre proteger tu red con firewalls y microsegmentación.

Toda la configuración vive en un archivo configurations.h donde ponés:

  • SSID y password del WiFi
  • URL de tu instancia de Home Assistant (IP local o dominio)
  • Token de acceso de larga duración (lo generás desde tu perfil en HA)
  • Entidades de calendario y clima que querés mostrar

Acá viene lo bueno: como la pantalla e-paper retiene la imagen sin consumir energía, el ciclo es despertarse, dibujar, y volver a dormir. No hay refresco constante, no hay backlight, no hay consumo continuo. Una tablet Android haciendo lo mismo te dura horas. Esto te dura semanas.

La diferencia con un dashboard Lovelace en una tablet vieja es enorme en consumo, pero también en estética. Eso sí: perdés interactividad. No podés tocar la pantalla para prender luces ni cambiar escenas. Es un display de solo lectura.

La temática Pokémon: sprites, barras de vida y diseño retro

Lo que enganchó a la comunidad cuando XDA cubrió el proyecto fue el diseño. La pantalla replica una escena de batalla Pokémon de la era Game Boy: dos Pokémon enfrentados, barras de HP, y texto inferior con la información útil.

Pero no es decorativo nada más. Cada elemento visual tiene una función:

  • Sprites de Pokémon: cambian según las condiciones climáticas reales. Lluvia, sol, nieve, nublado — cada estado tiene su Pokémon asignado
  • Fondo: varía según el día de la semana, así de un vistazo sabés qué día es
  • Barras de HP: una muestra cuánto queda del día actual (se va vaciando), la otra cuánto queda del mes
  • Zona de texto inferior: próximos eventos del calendario, temperatura actual, humedad

Es una forma elegante de meter mucha información en poco espacio. Y en escala de grises la estética retro funciona perfecto — parece una Game Boy real colgada en la pared.

Paso a paso: instalación y configuración del firmware

No necesitás ser desarrollador, pero sí tener un mínimo de cintura con Arduino IDE. El proceso resumido: Si te interesa, podés leer más sobre plugins gratuitos para extender WordPress.

1. Preparar el entorno

Instalá Arduino IDE (1.8.x o 2.x) y agregá el soporte para placas ESP32 desde el Board Manager. Necesitás la URL del repositorio de Espressif en las preferencias de Arduino. Seleccioná «ESP32S3 Dev Module» como placa.

2. Clonar y configurar

Cloná el repositorio de GitHub, abrí el proyecto en Arduino IDE, y editá configurations.h. Ahí van tus credenciales de WiFi, la URL de Home Assistant, el token de larga duración, y los nombres de las entidades que querés mostrar (por ejemplo, weather.home y calendar.personal).

3. Flashear

Conectá la LilyGo por USB-C, seleccioná el puerto correcto, y dale Upload. La primera vez puede tardar un par de minutos. Si te tira error de conexión, probá manteniendo el botón BOOT mientras conectás el cable.

Troubleshooting rápido: si la pantalla se queda en blanco, lo primero es revisar que el token de HA no esté expirado y que las entidades existan con ese nombre exacto. Un typo en el nombre de la entidad y no muestra nada sin dar error visible.

Alternativa para los que no quieren tocar Arduino: ESPHome soporta varias pantallas e-paper y se configura con YAML desde Home Assistant. No vas a tener el tema Pokémon, pero podés armar tu propio layout sin compilar código.

Alternativas: otros dashboards e-paper para Home Assistant

El proyecto Pokémon es el más vistoso, pero no es el único. La comunidad de Home Assistant viene empujando fuerte con pantallas de tinta electrónica. En el foro oficial hay varios hilos activos con proyectos distintos.

ProyectoPantallaResoluciónPrecio aprox.BateríaSetup
LilyGo Pokémon CalendarLilyGo T5 4.7″960×540USD 25-30Semanas/mesesArduino IDE
Waveshare + ESPHomeWaveshare 7.5″800×480USD 35-50MesesESPHome (YAML)
Inkplate 10 + HomePlateInkplate 10″1200×825USD 100+SemanasArduino/ESPHome
XIAO ePaper Panel7.5″ b/n800×480USD 40-55~3 mesesESPHome
TRMNL Display7.5″ b/n800×480USD 99MesesCloud (plug & play)
dashboard e-paper home assistant diagrama explicativo

El TRMNL es el más fácil de configurar porque viene armado y se conecta a su plataforma cloud, pero perdés control local y pagás bastante más. Las Waveshare con ESPHome son la opción más popular en la comunidad porque el setup es puro YAML, sin compilar nada.

Si querés color, existen las e-paper de Waveshare con rojo/amarillo y las reTerminal de Seeed con e-paper a color, pero el refresco es más lento y el precio se va a las nubes. Si te interesa, podés leer más sobre parches de seguridad críticos en servidores cloud.

Personalización: cómo crear tu propio tema

No estás atado al tema Pokémon. El código del proyecto usa sprites en formato de array C que la librería LilyGo-EPD47 renderiza directamente. Para cambiar los sprites tenés que convertir tus imágenes al formato correcto.

El proceso es: redimensionar la imagen al tamaño exacto en píxeles que necesitás, convertirla a escala de grises, y usar una herramienta de conversión (hay scripts en Python en el repositorio de la librería) que genera el array de bytes. Flaticon tiene íconos gratuitos que funcionan bien para esto.

Más allá de los sprites, podés agregar entidades adicionales de Home Assistant. Sensores de temperatura por habitación, estado de luces, alarmas, consumo eléctrico — cualquier entidad que exponga un estado se puede mostrar. El límite es el espacio en pantalla y tu paciencia para acomodar el layout.

La comunidad en el foro de Home Assistant comparte diseños alternativos. Hay versiones minimalistas, versiones con mapas del clima, y hasta uno que muestra el menú del almuerzo escolar de los hijos.

Dónde comprar y cuánto sale armar el proyecto completo

La LilyGo T5 4.7″ se consigue en tres lugares principales:

  • AliExpress: USD 22-28, envío a Argentina entre 2 y 4 semanas
  • Amazon: USD 28-35, envío más rápido pero más caro
  • Tienda oficial lilygo.cc: USD 25, envío directo desde China

En MercadoLibre Argentina aparecen de vez en cuando, pero con el markup local esperá pagar el doble o más. Si podés esperar el envío de AliExpress, es la opción más económica.

Costo total del proyecto:

  • Placa LilyGo T5 4.7″: ~USD 25
  • Batería LiPo 3.7V (opcional): ~USD 3-5
  • Cable USB-C (seguro ya tenés uno): USD 0
  • Case impreso 3D (opcional): ~USD 5-10 en un servicio local
  • Total: USD 25-40

Comparalo con una tablet Android barata dedicada a Home Assistant: la tablet más berreta sale USD 60-80, consume energía constante, necesita estar enchufada, y la pantalla se degrada con el burn-in si la dejás prendida 24/7. La e-paper no tiene ninguno de esos problemas. Si lo que necesitás es un display de información que se actualice cada media hora, no hay punto de comparación.

Si estás armando tu setup de domótica y necesitás un hosting confiable para correr Home Assistant en un VPS en vez de localmente, vale la pena evaluar esa opción para tener acceso remoto sin complicarte con DNS dinámico.

Errores comunes

Usar un token de HA de corta duración

Home Assistant genera tokens de acceso que expiran. Si usás uno temporal, el display va a funcionar un par de días y después se queda congelado sin aviso. Generá siempre un token de larga duración desde tu perfil de usuario en HA (Configuración > Usuarios > Tu perfil > Tokens de acceso de larga duración). Si te interesa, podés leer más sobre ataques a pipelines CI/CD en GitHub Actions.

Flashear con la versión incorrecta de la placa en Arduino IDE

La LilyGo T5 4.7″ V2.3 usa ESP32-S3, no ESP32 estándar. Si seleccionás «ESP32 Dev Module» en vez de «ESP32S3 Dev Module», el firmware compila pero no arranca. Fijate bien qué versión de la placa tenés antes de flashear — el número de versión está impreso en la PCB.

Esperar refresco instantáneo

El deep sleep de 30 minutos está puesto a propósito para ahorrar batería. Si cambiás el intervalo a 1 minuto porque «querés datos frescos», la batería te dura días en vez de semanas. Las pantallas e-paper no están diseñadas para refresco frecuente — el ghosting empeora y la vida útil baja. Dejá los 30 minutos salvo que tengas una razón concreta para cambiarlo.

Preguntas Frecuentes

Cuánto dura la batería de una pantalla e-paper con Home Assistant?

Con una LiPo de 2000mAh y ciclos de deep sleep de 30 minutos, la autonomía ronda las 4-8 semanas dependiendo de la intensidad de la señal WiFi. El consumo en deep sleep es de ~170μA, pero cada ciclo de wake-up y conexión WiFi consume significativamente más durante unos segundos.

Se puede usar este proyecto sin Home Assistant?

No directamente — el firmware está diseñado para consultar la API de Home Assistant. Pero existen forks y proyectos alternativos que toman datos de otras fuentes (APIs de clima públicas, Google Calendar directo, MQTT). Requerirían modificar el código o usar otro firmware.

Qué pasa si mi WiFi se cae mientras la pantalla intenta actualizar?

El firmware tiene un timeout de conexión. Si no puede conectarse al WiFi o a Home Assistant, la pantalla mantiene la última imagen mostrada y vuelve a intentar en el próximo ciclo de 30 minutos. No se borra ni se cuelga — simplemente muestra datos desactualizados hasta que la conexión vuelva.

Cómo cambio los Pokémon que aparecen en la pantalla?

Los sprites están definidos como arrays de bytes en el código fuente. Tenés que convertir la imagen nueva a escala de grises, redimensionarla al tamaño correcto en píxeles, y usar el script de conversión incluido en la librería LilyGo-EPD47 para generar el array. Después reemplazás el array en el código y volvés a flashear.

Conclusión

El proyecto Pokémon E-Paper Calendar demuestra que un dashboard e-paper Home Assistant no tiene por qué ser aburrido ni caro. Por menos de 30 dólares tenés una pantalla que muestra información útil con una estética que da gusto mirar, consume prácticamente nada de energía, y se integra con tu sistema de domótica existente sin depender de servicios cloud.

Lo más rescatable es la filosofía: hardware barato, firmware abierto, datos locales. Si ya tenés Home Assistant corriendo, armar esto es cuestión de una tarde. Y si el tema Pokémon no te va, la misma placa sirve para cualquier diseño que se te ocurra.

El punto de entrada está en el repositorio de GitHub. Cloná, configurá, flasheá, colgalo en la pared.

Fuentes

Categorizado en: