Présentation et idée d'améliorations front

Bonjour a tous,

je suis a la recherche de mon futur logiciel domotique et j’avoue être intéressé par gladys pour diverse raisons.

Je suis développeur, je recherche donc une solutions open-source afin de pouvoir si besoin y apporté les amélioration dont j’aurais besoin :ok_hand:
J’ai longtemps pensé partir sur du jeedom mais le code jeedom est tellement vieux et fouillis que j’en avait des sueurs du coup voir un projet nodejs m’emballe :slight_smile:
Le coté Français aide aussi, je suis a l’aise avec l’anglais mais c’est plus sympas avec nos langue natale :smiley:

Je suis actuellement en travaux donc j’ai pas vraiment de temps pour quoi que ce soit, si tout ce passe bien je devrait emménager d’ici fin décembre, après quoi je pourrais enfin configurer ma domotique (très basique pour commencer, des micro module qubino et détecteurs de mouvements pour les lumières, c’est tout)

bon la présentation est fini, c’est pas vraiment l’endroit pour mais y’as pas de forum présentation :stuck_out_tongue:

j’ai mis en local gladys pour me rendre compte de l’interface et j’en ai tirer quelques idées d’améliorations.

je vais parler du dashboard, car c’est la partie visible la plupart du temps :

  • Le premier et plus gros points selon moi, c’est la configuration du dashboard, gladys se veux au top niveau interface (c’est un de vos argument vis a vis de vos concurrent, l’interface récente), j’ai mis les données de test pour voir ce que cela proposer, verdict : pas grand chose :confused:
    Je m’attendais a un truc vraiment personnalisable, au final a part sélectionné des éléments prédéfini, dans des cases prédéfini, on peut pas faire grand chose :/.
    J’avoue que j’aurai adoré avoir un système du type de : exemple ou on remplacerais les blocs par les devices/rooms , aujourd’hui avec les flexbox/gridbox c’est assez simple a mettre en place, je ne sait pas ce que vous en penser, je suis pas sur d’être clair donc voici un exemple :


    actuellement ce n’est pas possible d’avoir ce résultat la (ou je n’ai pas trouvé?), on est bloquer dans un design a 3 colonnes.
    c’est sans aucun doute un gros chantier, je pourrai sans doute aidé dans quelques mois après avoir finis mes travaux (j’en aurais encore pas mal a faire une fois emménagé :’( )

  • dans l’optique d’un dashboard clair, je pense que la solution actuelle n’est pas assez poussé du coté des composants, chez moi une lampe est une lampe, qu’elle soit rgb, dimmable ou simple on/off, ce sont toutes des lampes, elle devrait donc avoir une représentation identique sur mon dashboard, en gros qu’un device type lampe soit représenté de la même façon qu’il soit z-wave/zigbee/etc… , et on-off/dimmable/rgb, mais qu’elle ne ressemble pas a un radiateur non plus.
    Selon moi l’interface visible et usable de l’user doit être uniforme et auto descriptive ca implique donc d’avoir des widgets par type de device commun peut importe d’où viens le device.
    voici un exemple pour les lumières par exemple :
    pas sur que ca marche, limite d’un fichier embed pour les nouveaux user :smiley:
    C’est le même widget pour tous les cas, le on/off est gérer en cliquant sur l’icône d’ampoule, la couleur par le hue ring et l’intensité par la barre en bas, chaque options étant désactivable selon les options de la dite lampe.
    Comme vous le voyer sur l’exemple, une icone d’ampoule sur le dashboard parle beaucoup plus au premier coup d’oeil qu’un bouton switch pour déterminer le type d’équipement.
    Avec le system décrit au dessus, on pourrait placer ce widget ou on le souhaite sur la page, dans une room (qui serait en fait un simple conteneur de widget), ou indépendamment.
    Concrètement, le core de gladys coté front devrait implémenté différents widget de base qui correspondent au différents type de device possible, et cela avec des icones descriptive, en ce sens jeedom ou autre sont beaucoup plus clair sur leur dashboard la dessus, on voit tout de suite quand c’est une lampe ou un volet ou autre.
    Bien sur il faut aussi offrir la possibilité aux module de créer leur propres widget lorsque nécessaire (un widget télécommande pour la télé par exemple), encore une fois l’utilisation d’un framework js récent permet normalement d’utiliser des composant dynamique donc aucun problème la dessus (je n’ai pas touché a react depuis presque 4 ans, mais vue ou svelte le permettent donc je pense react aussi ^^)

  • Une petite amélioration coté back cette fois, ca serait cool que le seedeur soit facilement extendable, le core ne devrait créer que les éléments basique (user, maison, room, etc…) et après chaque module devrait pouvoir sans modifier de fichier externe a sont module ajouter des éléments au seeder (on peut imaginé un fichier js par table a seeder situé dans un dossier seed du dit module et qui serait récupéré a chaque lancement de la commande de seed, qui ne retournerai qu’un tableau d’element a importé dans le bulk import), on peut imaginé mettre une options pour filtrer par module au lieu de tout prendre).
    Car je reprend mon exemple, je n’ai pour le moment aucun objet domotique chez moi, après avoir mis le seedeur je ne vois qu’une ampoule, 1 radiateur et une camera comme devices, pas de détecteur de présence, détecteur de fumé, alarme, etc…
    Si chaque module met sont propres seedeur, il ajouterais peut être plus facilement les type de devices qu’ils peuvent géré, et surtout la personne concerné connait les champs de bdd qu’il utilise avec ses devices, cela donnerait plus de visibilité lors du dev. (pour une personne qui ne ferait que dev sur le front par exemple, cela lui permettrait d’avoir des devices qu’il n’as peut être pas chez lui)

Bon ca fait un sacré pavé tout ca :astonished:, si vous avez des questions sur des points spécifique ou autres n’hésité pas.

Comme dis plus haut je suis actuellement en travaux pour encore de longs mois donc je ne pourrais pas aidé car mon temps libre passe dans les travaux, mais une fois installé, je me motiverai pour essayé d’aider au dev en fonction de mes capacités (et besoin :stuck_out_tongue: ) :slight_smile:

Merci du boulot déjà fait, ca semble prometteur, et bon courage pour la suite :smiley:

4 Likes

On parle du RGB ici:

Expose ton idée.

Salut,

bah l’idée serait que le widget lampe (en autres) puisse géré le rbg des lampes compatible,
c’est un nouveau post du coup je met l’image que j’avais fait en exemple :
light exemple

tu pourrais choisi la couleur en déplaçant le point sur l’anneaux des couleurs, changer l’intensité avec le slider en bas et on/off en cliquant sur l’icone d’ampoule, ca permet de géré tous les type de lampes à ma connaissance.

L’implémentation par contre je n’en ai aucune idée, je ne sais pas comment fonctionnent les différentes ampoules contrôlable, j’imagine bien le front envoyé une requête au module qui gère la lampe et celui ci ferait les conversion nécessaire selon ses propres besoin, le front enverrais par exemple un objet du type :

{
  rgb: [255,255,255],
  intensity: 0.7,
  powered: false,
}

le widget en lui même serait initialiser grâce aux props :

dimmabled: true/false,
colors: a voir comment géré les differents nombres de couleur, simple enum? [16,256,16M, false],
currentIntensity: 0-1,
currentColor: rgb?
ou plus simple juste si intensity est defini alors c'est dimable sinon non

pour ce qui est du fonctionnement des différents éléments, il y a plusieurs sources d’inspiration possible :
une petite lib toute simple, sans doute plus simple à analyser
l’exemple du ring picker ici, en remplacement le caré central par une icone cliquable, et en supprimant la partie du dessous

J’espère que c’est ce que tu voulais?

Bonne soirée a vous tous.

Salut @wazalop ! Bienvenue dans la communauté et merci pour ton message :slight_smile: Désolé pour la réponse tardive mais le lancement de Gladys Assistant 4 a été intense ^^

Ah top, on est toujours preneur d’aide sur le développement.

Effectivement, pour l’instant on est parti sur quelque chose de simple. Après si tu as la compétence pour nous aider à faire mieux on dit pas non :smiley:

C’est toute la philosophie de Gladys 4 ! Chaque appareil, qu’il soit z-wave, zigbee ou bluetooth, est géré “nativement” de la même manière quelle que soit sa techno.

Les seeders ne sont utilisées que pour les tests unitaires :slight_smile: On seed/purge la DB entre chaque exécution de test. Il n’y a aucune ambition de rendre ces seeders utile en dehors des tests !

Salut,

Pas de soucis c’est l’intérêt des forums on est pas pressé :grin:

Ah je m’en suis servi pour l’instance locale que j’ai fait en clonant le dépôt pour pouvoir tester en locale et du coup avoir des devices a affiché, ça marche nickel aussi :stuck_out_tongue_closed_eyes: (et ça doit pouvoir aider au dev du front pour ceux qui n’ont pas forcément tous les devices possible)

Comme expliqué dans le premier poste ça risque de prendre du temps mais oui une fois que je serai installé je verrai ce que je peux faire

Ce que je pensais plus précisément, c’est une lampe est une lampe et un radiateur un radiateur, chacun dois avoir sa représentation spécifique sur le front pour que ce soit intuitif, la il me semble que c’est plus par type de fonctionnalités que type d’appareil non?
Si je ne me trompes pas une lampe est identique à un interrupteur ou un radiateur c’est une ligne avec un Switch ?

Je verrai pour faire quelques maquette simple de ce que j’entends car c’est pas très clair a l’écrit :rofl:
En parlant de ça il y a t’il un sujet sur les idées pour le front/dashboard? Ça sera plus simple pour retrouver les idées plus tard (j’ai parcouru tous le forum sans vraiment tombé sur un sujet plus global là dessus ce sont souvent des points précis comme la gestion des lampes rgb, etc…)

Passer tous une bonne journée.

Cette catégorie nous permet de recenser les idées:

https://community.gladysassistant.com/c/feature-requests/43

Un post = une feature.

Ensuite la communauté peut upvote chaque feature et ensuite on peut prioriser les développements en fonction du nombre de demandes par feature.