**El contexto
Nota: Esto fue lo último que hice, después los dejaré en paz, lo siento por el flood de estos últimos días. Pero quería cerrar esta migración domótica porque después no tendré mucho tiempo para ocuparme de ello.
Al migrar de Home Assistant a Gladys, uno de mis mayores desafíos fue la gestión de las ambientes luminosas. Tengo 22 luces en 4 protocolos diferentes (Philips Hue, Z-Wave, MQTT, Tuya) y quería ambientes que se adapten al momento del día y al clima.
Las escenas de Gladys permiten controlar las luces, pero tan pronto como quieres gestionar variantes (colores más cálidos cuando está gris, ambiente diferente día/noche), se vuelve rápidamente complejo con muchas escenas que mantener.
Por lo tanto, creé un Gestor de Escenas: un contenedor Docker ligero (~25 Mo RAM) con una interfaz web que:
-
Captura el estado de tus luces con un clic — todos los protocolos, a través de la API de Gladys
-
Almacena presets con variantes adaptativas (día/noche, clima)
-
Aplica la variante correcta automáticamente cuando una escena de Gladys la llame
¿Cómo funciona?
Escena Gladys (trigger hora, presencia, botón, etc.)
└→ Acción "HTTP Request": POST http://localhost:8890/scenes/soiree-chambre/apply
└→ Gestor de Escenas
├─ Verificación: ¿día o noche? (cálculo local)
├─ Verificación: ¿despejado o nublado? (OpenWeatherMap, caché 10 min)
└─ Aplica la variante correcta a través de la API de Gladys
El punto clave: el Gestor de Escenas no conoce ningún protocolo. Pasa por la API de Gladys (POST /api/v1/device_feature/{selector}/value). Si Gladys gestiona tu luz, el Gestor de Escenas también lo hace.
Separación de responsabilidades: Gladys decide cuándo, el Gestor de Escenas decide cómo.
Protocolos probados
| Protocolo | Estado |
|---|---|
| Philips Hue | OK (encendido/apagado, brillo, color, temperatura) |
| Z-Wave (Fibaro Dimmer) | OK (dimmer 0-99) |
| MQTT personalizado | OK (encendido/apagado, brillo, color) |
| Tuya | OK (encendido/apagado) |
Rendimiento
| Operación | Tiempo |
|---|---|
| Capturar 20 dispositivos | ~80 ms |
| Aplicar 6 Hue en paralelo | ~70 ms |
Negligible — es el mismo camino de código que las escenas nativas de Gladys.
Instalación y documentación
Todo está en GitHub con el README completo, las instrucciones de instalación, la referencia de la API y las capturas de pantalla.
GitHub — gladys-scenes-manager
En resumen:
-
Clonar el repositorio
-
docker build -t scenes-manager . -
docker runcon tupresets.json(configuración de clave API de Gladys + coordenadas GPS) -
Abrir
http://TU_IP:8890 -
Capturar tus ambientes, llamarlos desde las escenas de Gladys a través de « HTTP Request »
Stack
-
Node.js 22 Alpine, 2 dependencias (mqtt.js, suncalc)
-
Frontend vanilla (HTML/CSS/JS), tema oscuro inspirado en Gladys
-
Sin framework, sin base de datos — un archivo JSON



