Possibilité de catégoriser / grouper les scènes

Feature description

Hello :slight_smile:
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 ?

Merci :slight_smile:

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

Etc…

Oui pour moi je pensais déjà à des catégories créées par les utilisateurs comme on le fait pour les Dashbord.

Le but je pense serait de pouvoir avoir une séparation possible entre les scènes de son choix.

Par exemple dans mon cas je pourrais séparer les scènes de mon aquarium, de l’éclairage du salon et des scènes du système d’alarme.

Pourquoi pas, je vois bien un système de tags filtrable par exemple ! A réfléchir :slight_smile:

@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)

1 « J'aime »

Ça c’est une super idée :+1: 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.

Yes un tag pourra permettre d’afficher une même scène dans plusieurs “affichages” ce qui est effectivement mieux que ce que j’avais en tête :slight_smile:

Petit up car ce point va finir par m’intéresser :smiley:
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 :smiley:

Etc… ^^

1 « J'aime »

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 ^^

4 « J'aime »

Petit up pour y penser pour le développement.

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) ?

2 « J'aime »

Bonjour,
J’ai fait un petit test en mettant en place un système de tags dans les scènes.





J’ai modifier la recherche pour filtrer sur les tags et les titres.

Est ce que cela correspond à votre besoin ?

1 « J'aime »

Je trouve ça super, pour moi ça répond à la demande.

Petite question esthétique je trouve qu’il faudrait aligner les tags différemment, pas centrés / ou pas à cet endroit des box.

Super développement, fonctionnellement c’est chouette par contre il y a un petit travail de design à faire je pense :smiley:

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)

Un truc un peu comme ça dans l’idée:

Je pense que c’est important de voir les tags existant pour pouvoir rattacher une scène à un tag déjà existant.

Filtrage

Il faut penser à un système de filtrage par tags, un peu comme ça:

Au niveau des card, il y a un peu de réorganisation à faire je pense pour rendre ça plus visuel :slight_smile:

Un exemple trouvé sur Dribble:

(Je veux pas du tout faire ça hein, c’est juste pour montrer un exemple :stuck_out_tongue: )

2 « J'aime »

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.

C’est mieux oui :slight_smile:

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 :slight_smile:

Je vois 2 options:

  1. Soit comme tu décris, une table « t_tag », et « t_tag_scene »
  2. 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 :slight_smile:

@pierre-gilles :
Je fais une petite proposition en utilisant la lib « react-select » que l’on utilise deja dans gladys.


Mais bon je suis pas encore fan du résultat. Qu’est ce que tu en pense ?

Ta solution est pas mal, mais elle fait « bizarre » dans le reste de l’interface d’édition.

Je mets mon grain de sel, perso j’aime bien comme ça :slight_smile: c’est pas envahissant, c’est pratique d’utilisation, ça fait le taff je trouve

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 :wink:

Par exemple, Github ils ont séparés leur page « issue » en 2 parties:

Avec l’édition à droite (tags, etc…)

Si on va chez Zapier (qui fait la même chose que nous: des scènes), ils font le même comportement que Github, une barre à droite:

Si tu cliques sur « Settings », ça donne ça:

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 :slight_smile:

T’en penses quoi ?

Chaque chose en son temps, restons focus ici.

1 « J'aime »

Super prometteur !

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.

1 « J'aime »