Hello
Quand on commence à avoir une installation assez fournie avec Gladys on commence aussi à avoir beaucoup de scènes !
Je pense que se serait plus lisible est simple d’utilisation si on pouvait mètre nos scènes dans des catégorie (visible sous forme d’un bandeau par exemple) que l’on peut masquer et afficher.
Ou à la manière des Dashbord avec une liste déroulante ?
Ce qui est compliqué je pense c’est de savoir si on veut des catégories prédéfinies… ou bien la possibilité de créer soi-même des catégories. Car comme chaque utilisateur va avoir envie de faire une scène qui lui est propre, il va en aller de même avec les catégories.
Je trouve aussi qu’il faut trouver comment organiser les scènes pour mieux les gérer.
J’avais de mon côté songé à la possibilité de les afficher sous forme de liste dont on pourrait changer l’ordre en drag&drop.
Cela permettrait d’en afficher plus sur une seule page, avec une meilleure lisibilité.
D’autant qu’en les nommant de manière adéquate on peut s’y retrouver assez facilement :
[LUMIERES] Eteindre toutes les lumières en cas d'absence
[LUMIERES] Diminuer la luminosité le soir
[ALERTE] Courrier boite aux lettres
[ALERTE] Température < 15°
[INFO] La gamelle du chien est vide
Pourquoi pas, je vois bien un système de tags filtrable par exemple ! A réfléchir
@Checconio Vu que tu dis que ton installation devient assez fourni, serais-tu intéressé pour que je t’interview pour ma série Youtube “Gladys Assistant chez vous” ? ( Gladys Assistant chez vous ! - YouTube )
(On peut en parler en privée si ça te dit, pour pas polluer le sujet ici)
Ça c’est une super idée d’autant que pour l’utilisateur c’est généralement tout bête à utiliser, et c’est très flexible : une scène peut avoir plusieurs tags.
Petit up car ce point va finir par m’intéresser
Jai une scene parents qui trigger sur un capteur de mouvement.
Cette scene ne fait que declancher des scenes en // qui elle meme en declenche dautre ^^
Donc je me retrouve avec beaucoup de scene et cest vite perturbant
Je suis en train d’apprendre la même techo que Gladys pour un projet perso.
Quand je maitriserais bien, je vais peut-être me pencher sur le dev de la feature pour tester ^^
Egalement, la demande de fonctionnalité était déjà existante depuis Octobre 2021 :
@Pasdesushi, @PhilippeMA, @Psoy (je vois que tu as voté pour les 2), @syper et @Kalvin peut-être pourriez-vous regrouper vos votes sur celle-ci et on ferme l’autre (la discussion restera accessible) ?
Super développement, fonctionnellement c’est chouette par contre il y a un petit travail de design à faire je pense
Edition
Au niveau de l’édition, c’est bizarre d’avoir des tags dans une looong textarea qui fait 100% de la width de l’écran
Peut-être que les tags peuvent être affiché en « normal » sur fond gris, et il y a un petit bouton « + » pour ajouter des tags (et une croix sur chaque tag pour le supprimer)
Tu as raison, j’ai juste utilisé une lib « react-tag-input-component »
Ok je ne vois rien de semblable en lib sur internet. Je vais surement créer mon propre composant. Est ce que j’essaie de le faire le plus générique possible pour que l’on puisse l’utiliser à d’autre endroit ?
Oui, maintenant que tu le dis c’est evident.
Je pense que j’e vais devoir faire des modifications dans les models pour cela car pour le moment j’était parti sur un tableau de string dans les devices. Mais pour avoir accès a tout les tags de toutes les scènes je pense que je vais devoirs faire une table « tags » et une table « device_tag ». Et donc rajouter de nouvelles routes en CRUD pour faire la gestion des tags, qu’est ce que tu en pense ?
Là encore une fois, je pense que l’ajout d’une table « tags » est importante car cela évitera de parcourir toutes les scènes pour avoir tout les tags.
Est ce qu’il ne faudrait pas abandonner l’affichage en table des scenes pour juste un liste ? Car on rajoute de plus en plus de chose dans l’affichage des scenes et on a de moins en moins de place.
J’imagine que tu parles de « scènes » et non de device
Effectivement je préfère une approche relationnel, on est plutôt relationnel sur le projet
Je vois 2 options:
Soit comme tu décris, une table « t_tag », et « t_tag_scene »
Soit sinon une unique table « t_tag_scene », faisant la relation entre une scène et un tag (en texte)
t_tag_scene:
- scene_id uuid
- name text
Pour savoir tous les tags disponible, il suffit de faire:
SELECT DISTINCT name FROM t_tag_scene
L’option avec la table de relation est bien si jamais on voulait vraiment rajouter des options supplémentaires aux tags, mais dans notre cas ici c’est peut-être overkill
Je pencherais plus pour la 2. perso, t’en penses quoi ?
Je ne pense pas, il faut juste repenser l’affichage à l’intérieur de la carte
La table relationnelle est sûrement une bonne idée, en lisant cela je me suis dit que ça pourrait être une bonne idée de pouvoir taffer les device !!
Je pense notamment aux device mqtt qui sont utilisés en virtuel également. Pouvoir mettre en relation grâce aux tags les virtuels avec des device physiques par exemple, regrouper les virtuels etc !!
Pas fan non plus, fonctionnel mais ça fait un peu « gros bloc » en milieu de l’écran, ça s’intègre pas trop dans le design existant
Si tu as pas trop d’idée, moi ce que je fais en général c’est que je vais voir comment font d’autres produits: ouvre quelques produits que tu utilises et qui ont ce genre de système de tags, et regardent comment ils font. ça sert à rien de re-inventer la roue quand des designers de grosses boites ont déjà bossé des heures sur le sujet
Par exemple, Github ils ont séparés leur page « issue » en 2 parties:
Je dis pas que c’est la solution, mais à mon avis ça s’explore! ça permettrait de mettre ton component « react-select » dans une barre latérale qui serait « délimitée » et qui prend pas 100% de la width.
J’ai pas mal de projets en tête pour les scènes: voir l’historique d’exécution des scènes, avec ce qu’il s’est passé dans chaque exécution, et ça pourrait avoir sa place dans cette barre latérale
Ce matin je me faisais la réflexion que l’on pourrait ajouter des filtres dans la vue des scènes.
Par exemple : actives / désactivées / par type de déclencheurs (choix des équipements) / etc.