Añadir funciones a la interfaz de usuario

Acabo de descubrir Gladys a través de un post en Reddit, nunca había oído hablar de este proyecto antes.

Llevo años con Home Assistant, tanto como usuario como desarrollador. Abandoné el proyecto por diversas razones, pero sobre todo porque la dirección que está tomando el desarrollo de Home Assistant no me gusta nada.

Me gusta la interfaz de Gladys, es sobria y moderna. Es muy bonita. Pero a primera vista (reconozco que no he investigado mucho), me parece que los gráficos/visualizaciones de datos históricos son bastante limitados. Esta función forma parte de mi uso principal de un sistema de domótica.

Por lo tanto, antes de invertir más tiempo y empezar a profundizar en la documentación de desarrollo y el código fuente, quería saber cuáles son las posibilidades de extensión/añadir elementos de interfaz personalizados en Gladys. ¿Hay una API estable entre la parte del servidor/back-end y el front-end del lado del cliente que me permita añadir fácilmente elementos?

Para referencia, había desarrollado un sistema de exploración de datos históricos en Home Assistant. La idea sería migrarlo a otra plataforma a largo plazo.

¡Gracias!

¡Hola @alexarch y bienvenido a Gladys! :blush:

¡Estamos de acuerdo!

Tenemos varios temas en el foro donde hemos discutido posibles mejoras. :slightly_smiling_face:

Por ejemplo, para mejorar el widget “Gráficos”:

Lo que propones es bastante similar a otro proyecto que tenemos en mente:

Añadir un botón en este widget gráfico que permita mostrar una pantalla dedicada, ofreciendo opciones avanzadas de análisis: filtrado por fechas específicas, exportación CSV, etc.

Gladys es un producto “todo en uno”, unificado. No hay un sistema de extensiones, y es intencional: el objetivo es ofrecer una experiencia coherente y optimizada para todos los usuarios. :slightly_smiling_face:

La filosofía de Gladys es diferente a la de Home Assistant. La ambición es tener un producto listo para usar una vez instalado, utilizable por toda la familia, y no solo por un público “desarrollador”.

Si quieres contribuir a la mejora de Gladys, lo mejor es proponer una PR. Soy muy reactivo a los comentarios y estoy disponible para ayudarte a configurar tu entorno de desarrollo si es necesario.

:open_book: Un artículo para ayudarte a empezar:

:television: También he hecho mucho live coding en YouTube, puede darte inspiración:

En cualquier caso, no dudes en preguntar si tienes alguna pregunta, y bienvenido a la comunidad :slight_smile:

Hola, gracias por la respuesta rápida y amable :blush:

De acuerdo. Entonces, no estoy muy seguro de si Gladys es realmente el tipo de proyecto que estoy buscando. Me gusta la interfaz de usuario y la ‹ simplicidad › es muy atractiva frente a Home Assistant, que se ha convertido en un monstruo inmanejable y sobreingenierizado, cuyo simple mantenimiento es casi un trabajo a tiempo completo, ya que las API/configuraciones/etc. cambian todo el tiempo. Pero la falta total de personalización es un problema real. Aunque entiendo la elección.

Hice un rápido recorrido por el GitHub y veo que, efectivamente (forzosamente), hay una API backend/frontend REST (y un pequeño boceto de WebSocket). Esta API está bien documentada y bastante completa, por lo que ¿podría usarse para crear elementos de interfaz de usuario personalizados en el lado del cliente? Sin reemplazar toda la interfaz, sino integrando nuevos elementos en la interfaz existente.

Ahora, he entendido bien que no es realmente el objetivo buscado de Gladys.

¡Depende de lo que busques! :smiley:

Efectivamente, Gladys no tiene la vocación de ser otro Home Assistant. La idea es proponer un software para el gran público, bien diseñado y fácil de usar.

¿Podrías precisar lo que imaginas?

No estoy seguro de entender lo que quieres decir con « elementos de interfaz de usuario personalizados del lado del cliente ».

Además, en lugar de hacer una modificación únicamente para tu uso personal, no dudes en proponer tus mejoras para que puedan beneficiar a todos los usuarios.
¡Me encantaría acompañarte si quieres ayudarnos con el desarrollo! :blush: