Retour d’expérience #1

Bonjour,

Aujourd’hui je souhaiterais présenter mon premier retour d’expérience de la version 4 de Gladys. Conscient que cette version n’implémente pas toutes les fonctionnalités, je veux seulement donner un premier ressenti, remarques et notes à moi même.

Je précise à nouveau que les remarques, commentaires ou appréciations sont uniquement subjectifs et qu’elles reflètent mon besoin et l’utilisation que je veux en faire. Je veux cependant être le plus constructif possible, et apporter, par la suite, mon expérience, aide ou connaissance pour faire avancer ce projet qui m’intéresse.

Le décor

Je n’ai pas encore mon propre appartement où je peux casser les murs ou faire des trous partout. Cependant, j’ai commencé accumuler quelques périphériques. Chaque périphérique a un but modeste, mais précis. J’ai des ESP8266 avec des modules BME680 pour capturer température, humidité, pression, pollution de l’air, mais aussi des périphériques audio de la marque Sono; des ampoules Wi-Fi Yeelight Bulb Color (non liée à leur passerelle); des prises connectées TP-Link (avec compteur de puissance). Un Chromecast pour diffuser du contenu sur une télévision et une caméra extérieur.

Je possède en plus de ces quelques périphériques, cinq Raspberry Pi. Un Raspberry Pi 2, deux Pi 3 et un Pi 4 avec un Raspberry Pi Zero W (je n’utilise plus le RPI Z car non connecté au réseau). Le dernier de la famille est quant à lui un NAS Synology (je suis très content de son acquisition).
Vous allez me dire, mais pourquoi a-t-il autant de Raspberry ? Je vous répondrais dans un prochain topic où je détaillerai toute mon installation. Et comment je vais intégrer Gladys dans tout cela.

Mon besoin

Pourquoi ai-je besoin d’une solution de domotique ?

Mon premier objectif est de pouvoir visualiser l’environnent où j’habite. Mon second objectif est de pouvoir interagir sur les actions du quotidien.

Visualiser mon environnent se résume principalement par les valeurs de température, humidité et pression atmosphérique (+ qualité de l’air) de chaque pièce du logement et leur consommation d’énergie. Et pouvoir comparer avec la météo de dehors c’est sympa aussi.

Mon second objectif est principalement lié à l’interaction des lumières (ampoules Yeelight) et diffusion de musique avec mes enceintes Sonos. Et des scénarios comme, je rentre de travail, une musique détente se déclenche.

Gladys

Systèmes et installations

Pour pouvoir tester Gladys, j’ai choisi d’utiliser mon NAS Synology avec l’application Docker. L’installation, l’inscription et la connexion dans Gladys se sont très bien passées.

La première étape a été de configurer le service OpenWeatherMap. Là aussi, l’interface de configuration est agréable et plutôt intuitive.

Avec un serveur MQTT déjà opérationnel, j’ai configuré Gladys pour qu’il utilise le broker. Une première difficulté de configuration et aucun message d’erreur très parlant. J’ai quitté l’interface web et j’ai regardé les logs du container. Au final, j’ai eu qu’a redémarrer le container, reconfigurer le service MQTT et me voilà connecté au serveur MQTT. Cependant, la configuration n’est pas enregistrée. À chaque redémarrage du container, Gladys indique qu’il faut configurer un broker MQTT.

Entre temps, je ressors mes ESP8266/BME680 et mon RaspberryPiZW/BME680 pour équiper deux pièces de mon logement.

Je retourne dans l’interface web de Gladys, je créer les appareils qui vont bien et leurs fonctionnalités, je créer le tableau de bord qui va bien et je configure mes appareils physiques pour envoyer les données sur les bons topic MQTT. Et voilà tout ce passe bien, le tableau de bord est opérationnel.

Le côté simple de configuration est assez agréable. On n’a pas besoin de chercher trop longtemps pour savoir ce qu’il faut faire. Un rapide coup d’œil à la documentation permet de comprendre l’essentiel.

Remarques

Voilà, la partie configuration et installation est finie. Très satisfait, j’ai commencé à réfléchir à ce que je voulais faire en plus avec Gladys (fonctionnalité non disponible encore). Je me suis posé quelques questions, remarques et idées qui m’ont traversé l’esprit.

La liste suivante synthétise les principales idées et remarques que j’aimerais partager avec vous.

Gestion utilisateur

  • Je n’ai pas vu la possibilité de gérer directement les utilisateurs depuis l’interface web. Je voulais ajouter d’autre membre de la famille, dire que j’étais présent dans la maison ou non, mais pas de menu dédié. Je pense que cette fonctionnalité viendra plus tard. Donc, patiente !

Gestion de l’authentification

  • Une authentification à deux facteurs (OTP). J’utilise l’application FreeOTP+ sur mon téléphone et je l’utilise de plus en plus. Je sais que Gladys n’est pas réellement faite et vouée à être utilisé depuis l’extérieur de la maison. Mais je pense que la sécurité est aussi importante dans un réseau local (le domicile).
  • Dans la même lancée, il y a l’authentification SSO/OpenID. Certes, ce n’est pas forcément le genre de développement prioritaire, car plutôt utilisé avec les entreprises avec un nombre important d’utilisateurs.
    Mais personnellement, je commence à avoir de plus en plus de service, et j’aimerais ne pas devoir saisir à chaque fois des identifiants/mot de passe différent d’un service à l’autre.
    Voilà l’idée est mise sur un post-it. Et c’est un sujet qui m’intéresse récemment.

Onglet tableau de bord

  • J’ai remarqué que les actualités du tableau de bord ne s’actualiser pas toutes. J’ai remarqué que sur le widget “appareil de la pièce” configurer avec MQTT les données envoyées ne s’actualisaient pas. Étrange, alors que le widget météo s’actualise régulièrement.
  • De même, j’ai remarqué que l’on ne pouvait pas réorganiser les fonctionnalités d’un appareil. Par exemple je voulais que le widget montre la température, l’humidité et la pression atmosphérique dans cet ordre précis. Mais il fallait que je supprime les différents capteurs pour les mettre dans le bon ordre.
    Pire encore, j’ai toujours un des deux widgets qui force l’ordre des capteurs. Bizarre. Et quand je les mets dans un ordre différent, après sauvegarde du tableau de bord, rebelote. Toujours dans un autre ordre. C’est assez étrange.
    L’idée, ici, surtout c’était de pouvoir déplacer l’ordre des capteurs.

Onglet discussion

  • Je n’ai pas trop utilisé la fonctionnalité de discussion. Je ne pense pas réellement l’utiliser. Mais je trouve que c’est plutôt limité comme fonctionnalité. J’ai écrit “Bonjour” et elle (“Gladys”) n’a pas compris. Donc je pense que c’est moi qui n’a pas bien compris l’objectif de cette fonctionnalité. Et que ce n’est pas une discussion/conversation/échange que l’on peut avoir.
    Je n’ai pas cherché les différents scénarios utilisables du module JS.
    Il existe une liste exhaustive des actions ?

Onglet intégration

  • Les intégrations sont très bien présenter je trouve. Clair. Simple. Menu et configuration intuitive.
  • Ce mode de configuration est parfait ! Seulement, je pense que certains bidouilleurs aimeraient paramétrer plus finement certains services/composants avec des paramètres dits avancés.
    Donc, j’imagine bien un petit onglet pour chaque service (s’il y a une utilité bien sûr) un “mode avancée”.
    J’ai un exemple avec la configuration MQTT où on souhaite par exemple définir une QoS spécifique. Ou par exemple un mode avancée pour CalDAV pour sélectionner un calendrier à synchroniser, activer/désactiver la synchronisation, sélectionner un temps de synchronisation. Voilà quelques exemples, on peut en avoir plein, plein, plein.
  • Avoir la possibilité d’activer ou désactiver un service/module à l’aide d’un bouton. En regardant les logs, j’ai remarqué que Gladys tentait de se connecter à un serveur CalDAV que je n’ai pas configuré. Ou que le service Bluetooth chercher des appareils alors que je n’ai pas de clé Bluetooth.
    Et ça économiserait du temps CPU (même si ça doit être des miettes).

Interface générale

  • De même que l’activation/désactivation d’un service, on pourrait afficher/masquer un onglet. Par exemple, je n’utilise pas le module CalDAV, il faudrait pouvoir masquer l’onglet calendrier. Un menu dans les paramètres utilisateurs.

Service MQTT

  • Le dernier point que j’aimerai aborder c’est les unités de mesure pour les fonctionnalités d’un appareil MQTT. En fait, mon exemple le plus concret est liée à la pression atmosphérique. Il n’y a pas la possibilité d’afficher une unité de mesure spécifique (le hPa). De même, certaines valeurs sont obligatoires comme un minimum/maximum de température ou qui pose question, le pourcentage d’humidité (entre 0% et 100% obligatoirement).
    Je vais répondre un peu à mon interrogation… Effectivement, si on choisit le °F, l’échelle est différente (d’où l’utilité d’un min/max obligatoire). Mais des valeurs par défaut en fonction de l’unité peuvent être utilisées ou préenregistrées.

Conclusions

Après avoir testé cette version 4 de Gladys, je suis très content.

J’ai plein de suggestion ou modification à faire, mais je pense que j’en ai assez dit et que je peux commencer à travailler (m’impliquer dans le projet) avec comme base ces premiers éléments.

Je compte réaliser aussi d’autre topic pour expliquer un peu mon réseau/systèmes/services et comment la domotique (objets et Gladys) s’intègre dans mon réseau informatique.

J’espère avoir était constructif dans mes explications.

Pour moi, la prochaine étape va être de mettre en place l’environnent de développement et de test pour pouvoir participer au code. Je vais me tourner sur des fonctionnalités pour Sonos/Yeelight/MQTT.

Je vous remercie d’avoir lu et vous souhaite une bonne journée ou soirée, en fonction de quand vous lisez ceci.

Lanxor.

7 Likes

Hello, super retour !

J’ai le même soucis que toi et je viens juste de m’en apercevoir en voulant “ranger” mon dashboard :slight_smile:

Il y a une PR Yeelight de bien avancé ! (qui sera peut etre même merge bientot ?) Pour Sonos ça m’intéresse aussi :slight_smile:

Très belle présentation.
Sonos je valide.
Va voir dans les feature Requests, il y a la liste des prochaines améliorations et dont certaines sur tu pourras certainement faire toi-même.

Bienvenue et bon codage.

Salut @Lanxor ! Bienvenue dans la communauté et merci pour ton retour d’expérience complet, ça fait plaisir :slight_smile:

C’est un petit bug d’UI qui va être fixé (le bug est sur GitHub)

Effectivement, pour cette première release de la v4 on a défini un premier scope de fonctionnalités et le multi-utilisateurs n’en faisait pas parti. Néanmoins c’est quelque chose qu’on avait dans la v3 et qui a clairement sa place dans un système domotique, ça sera développé.

C’était très constructif, merci d’avoir pris le temps :slight_smile: Je n’ai pas répondu à chaque point de retour car je suis d’accord avec la plupart d’entre eux. Pour les retours qui sont selon toi des bugs, n’hésite pas à créer des issues GitHub sur le repo Gladys, c’est là qu’on track les bugs ( https://github.com/GladysAssistant/Gladys/issues )

Et pour les idées de fonctionnalités (multi-utilisateurs, TOTP 2FA), on passe en général par la catégorie feature request du forum avant de se lancer dans les développements pour voir si c’est un besoin fort dans la communauté et ainsi prioriser les développements.

Top ! N’hésite pas si tu as des questions. D’ailleurs j’aimerais bien ton retour sur la partie “mise en place d’un environnement de dev”. L’objectif de cette release pour nous était aussi d’attirer des développeurs pour nous aider à avancer sur cette version, et si il y a selon toi des points à améliorer pour que le projet soit “developer-friendly”, je suis preneur !

A très vite

Je suis très content que mon retour d’expérience intéresse. Et je prends note de vos remarques.

Je suis en train de lire le code de Gladys pour me replonger dans le NodeJS. J’avoue que ce n’est pas mon langage favori, mais j’aime beaucoup le projet, donc je vais m’y remettre.

Effectivement, j’ai prévu de faire un retour d’expérience sur la partie développement, avec quelques tutoriels approfondis et pourquoi pas un exemple de développement d’un service (un service simple, style afficher un message sur le tableau de bord, pour voir les différentes facette du développement d’un service, côté front et côté back). Je vous en reparlerais.

Mais avant, je vais mettre en place mon environnent d’intégration continue pour pouvoir coder, déployer et tester mes services et modifications que je serai amener à effectuer.

Je suis cependant un vieux de la vieille et je code dans un terminal. Mais je compte aussi tester avec un IDE comme JetBrains (je ne sais pas s’ils possèdent une plateforme spécifique dédiée à NodeJS, je vais me renseigner et trouver une bonne solution).

Le mieux c’est VSCode, c’est fait pour le JS et c’est très bien intégré avec tous les tools qu’on utilise. C’est gratuit et open-source :slight_smile:

Bon je précise que je suis quand même jeune :sweat_smile: par rapport à ma remarque.

Merci, je testerai VSCode et les possibilités offertes par cette solution.