Dashboard - Evolutions / Bugs / etc

Bonjour,

J’ai commencé l’installation de Gladys v4 il y a seulement 1 semaine. Les 2 derniers jours, suite à intégration du service MQTT (Installation domotique entièrement en Arduino(s) ) et de la grande aide fournie par @AlexTrovato, j’ai créé ma 50aine de pièces liées à mon projet exposé ici : https://community.gladysassistant.com/t/interrogation-sur-les-possibilites-et-exposition-dun-projet-en-cours-avec-mqtt/2215.
J’ai donc pu créer 3 de mes caméras sur le dashboard (fonctionnent très bien, en effet il vaut mieux limité les accès, réglé sur 2 secondes : le Rasp Pi 4 à planté plusieurs fois - je suis sous debian) ainsi que quelques devices par envoi de l’Arduino en mqtt.

@pierre-gilles, je me tourne vers toi car tu avais déjà résolu le problème sur la v3 ^^, j’ai donc tenté d’afficher ceux-ci sur le dashboard, mais malheureusement nous sommes dans le même cas de figure que sur la v3 avant ma demande, seules les 20 premières room sont affichées :

Imprim-écran des pièces du Dashboard

Egalement, elles sont affichées dans l’ordre alphabétique indépendamment des houses. Serait-il donc possible de faire la modification pour avoir le même listing que dans le service MQTT :

Imprim-écran des pièces du service MQTT

Je suppose donc qu’il faudra appeler la requête “http://adresse-ip/api/v1/house?expand=rooms&order_dir=asc” à la place de “http://adresse-ip/api/v1/room

Soit :

GET /api/v1/house?expand=rooms&order_dir=asc HTTP/1.1
Host: "adresse-ip"
Connection: keep-alive
Accept: application/json, text/plain, */*
authorization: Bearer "[AUTH Bearer]"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36
Referer: http://adresse-ip/dashboard
Accept-Encoding: gzip, deflate
Accept-Language: fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7
If-None-Match: W/"[...]"

au lieu de :

GET /api/v1/room HTTP/1.1
Host: "adresse-ip"
Connection: keep-alive
Accept: application/json, text/plain, */*
authorization: Bearer "AUTH Bearer"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36
Referer: http://adresse-ip/dashboard
Accept-Encoding: gzip, deflate
Accept-Language: fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7
If-None-Match: W/"[...]"

Pour le moment le Dashboard ressemble donc à ça :

J’ai vu sur quelques sujets que certains posts auraient peut-être leur place sur ce topic : notamment les posts vers les 539 du sujet Parlons de Gladys V4 - #544 by Boimb.

Alala encore ce fameux bug, est-ce que tu peux me créer une issue sur le repo de Gladys? :slight_smile: Merci !

Bonne idée, tu peux me faire une issue GitHub ? :slight_smile:

ça rend top les caméras sur ton dashboard!

Merci pour tes supers retours en tout cas, c’est pas tous les jours qu’on a des grosses installations et on teste pas toujours avec autant de pièces/périphériques ^^

Issue créée sur Github : Bug view « Edition » of the Dashboard #656

1 « J'aime »

Salut @pierre-gilles,

Je t’avais répondu sur Slack, mais autant le sauvegarder ici également !! Merci encore pour cette PR, cela fonctionne parfaitement ^^

Résolu également !! Ca fonctionne parfaitement ^^

Avec plaisir, ne pas hésiter au besoin, je peux laisser la maint à distance pour que tu puisses faire certains test au besoin ^^

Nouveaux points :

  1. Suite à réinstallation complète au propre après les bug côté BD rencontré après la nouvelle intégration du service MQTT, je me rends compte, que le Dashboard bug à mise à jour des états :
Point de départ - Etat de l'éclairage du Rez de Chaussée Garage éteint

Action - Allumage de l'éclairage du Rez de Chaussée Garage - Visu pendant 2 secondes après l'action

Pas d'Action - Visu après 2 secondes suite à l'action Allumage de l'éclairage du Rez de Chaussée Garage - reste ainsi

Action - Allumage de l'éclairage de l'étage Garage - Visu idem que les 2 étapes précédentes

Du coup je n’ai plus accès à la commande d’extinction globale du Garage. Si j’appui sur celle-ci, le sélecteur passe à 1 puis se remet à 0.
La seule façon de le faire apparaître à 1 est de faire un refresh de la page.
Du coup idem à l’extinction pour les 3 commandes. Si j’éteins au global, la commande passe bien à 0 mais les 2 autres reste à 1 jusqu’à faire un refresh de la page. Si j’éteins l’un ou l’autre des éclairages, tout reste à 1 jusqu’au refresh manu.

  1. J’avais lu dans autre sujet, et nous en avions discuté en conv-call de la refonte de la visu des boxes présente sur le dashboard pour passer les noms des devices et des features pour une meilleur organisation. Où en est-on à ce sujet et peut-on aider sur ce point? Comment ?

Merci par avance pour le retour !!

J’ai créé une issue pour investiguer, là comme ça je ne vois pas.

On a juste parlé de changer les noms par défauts, après ça restera autant personnalisable qu’actuellement !

Rien n’est fait à ma connaissance.

Après investigation, je n’arrive pas à reproduire le bug! Il va falloir que tu enquête ce qui se passe réellement chez toi. Un périphérique qui renvoie des infos?

Bon bah je n’arrive plus à reproduire la chose non plus depuis ta màj … ^^ Tant mieux !! Désolé pour le dérangement du coup !!

Détail des feature du device Porte de Garage avec 2 switchs

Représentation des features de la Porte de Garage sur le DashBoard

image

D’ailleurs cela pose le problème de l’extinction globale de l’éclairage !! Alors, je suppose que comme on en avait discuté, il faut créer des types de feature pour les portes de garage, ou encore pour les barrières (avec une possibilité de stop pour laisser ouvert). Mais cela veut-il dire que sur le dashboard, il y aura une fenêtre par pièce par type de feature ?
Serait-il possible d’envisager du coup la possibilité d’une barre de recherche en haut de fenêtre pour accéder à la pièce que l’on souhaite rapidement ? Car il est déjà compliqué de retrouver une pièce sur une navigation windows avec 3 colonnes. en ayant 20 appareils + 4 caméras. Mais sur le Dashboard du téléphone via Gladys plus, c’est encore plus compliqué. Pour ma part je dois défilé énormément de haut en bas pour retrouver ce dont j’ai besoin ^^
Bien sûr ce n’est pas une priorité, mais penses-tu que cela est à prendre en compte ?

J’ai créé l’issue =>

Tu confirme ce que je décris dans la carte?

Je ne comprends pas ta question ^^

Je comprends, ça doit pas être facile pour toi qui a pas mal de box :smiley:

Je pense que ce qui va t’aider, c’est les dashboard multiples ( Multiple dashboards and public dashboards · Issue #723 · GladysAssistant/Gladys · GitHub ) , mais c’est clairement pas pour maintenant. Le search pourquoi pas, après ça non plus je ne pense pas que ça arrivera tout de suite, c’est un développement et j’ai pas mal de todo sur le feu :slight_smile:

Salut @pierre-gilles
Alors en fait c’est plus complexe qu’il n’y parait je pense. De par mon rex, mon usage hebdomadaire est le suivant :

Pour la barrière :

  • Commandes :
    1. Impulsion Ouverture 2 battants puis Fermeture Automatique (depuis la barrière),
    2. Impulsion Ouverture 1 battant si piétons puis Fermeture Automatique,
    3. Ouverture bloquée 2 battants,
    4. Ouverture bloquée 1 battant,
    5. Fermeture,
    6. Fermeture bloquée (j’utilise ce mode en cas d’absence prolongée),
    7. Déblocage / Déverrouillage.
  • Etats :
    1. 1 battant ouvert / Semi-Ouverte,
    2. 2 battants ouvert / Ouverte,
    3. Fermée,
    4. Bloquée.

Et pour la porte de garage :

  • Commandes :
    1.1. Impulsion Ouverture,
    1.2. Impulsion Fermeture,
    1.3. Impulsion Stop.
    Ou
    2.1. Impulsion Ouverture puis remettre à zéro cette commande pour la stopper,
    2.2. Impulsion Fermeture puis remettre à zéro cette commande pour la stopper.
  • Etats :
    1. Ouverte,
    2. Fermée,
    3. Intermédiaire.

Serait-il possible ou penses-tu que l’idée n’est pas bonne, de mettre une icône d’état en en-tête, et de mettre les commandes en dessous sous forme de bouton poussoir ?

^^ Laisse tomber, désolé, je n’avais pas fait l’essai, je pensais que lorsque tu allumais interrupteur global d’une pièce , ça allumait les type de feature switch également, notamment les "Ouverture / Fermeture porte de garage. Mais suite à essai, je vois que non. Désolé !!

Sur ce point, est-il prévu quelque chose ? Car comme tu peux le voir, sur les switchs, on ne reporte que le nom du device, et non celui de la feature !!

Merci pour tes réponses dans tout les cas, et en effet :

C’est bien cela qui m’apportera plus de lisibilité. Après c’était aussi l’objectif d’un dashboard graphique pour ma part !!

Oui je le sais bien. Et c’est déjà une très bonne chose que ce soit noté ^^

Bon courage !!

Oula c’est une usine à gaz ton truc :smiley: J’ai pas compris grand chose. On va essayer de simplifier ça, parce que là c’est clairement pas user-friendly.

Est-ce que tu peux me décrire tes cas d’usage, sans parler de comment tu le fais actuellement?

Je veux qu’on parte du besoin, pas de la technique. Je trouverais une solution simple et user-friendly, parce que là j’ai l’impression que le constructeur qui a fait ta barrière n’était pas vraiment un UX designer ^^

Tu peux me dire :

  • « Le matin, je sors faire des courses en voiture, j’ouvre la barrière (2 portes) puis elle se referme seule. »
  • « Le soir, je sors à pied, j’ouvre la barrière (1porte) »

On fera en sorte que tes cas d’usages soient rempli par Gladys, mais on trouvera probablement une autre modélisation que celui qui a conçu tes commandes actuelles.

Je comprend ton problème, mais cette solution ne va pas convenir à tout le monde. J’ai créé une issue GitHub =>

Je t’explique le problème: ton problème vient du fait que tu as des device a rallonge avec beaucoup de features, notamment des binary en doublon.

La plupart des intégrations n’ont pas ce problème et donc les gens n’ont même pas la possibilité de modifier les features name (cas du Philips Hue par exemple)

Il va falloir trouver une solution hybride, mais qui ne soit pas « mystique » pour autant. A réfléchir à tête reposée :slight_smile:

Rien de compliqué, et c’est moi qui l’ai custom par rapport à mon besoin - Toutes les barrières fonctionnent pareil :slight_smile: A la base tu as :

  • Commande ouverture 1 battant (ou partielle pour les barrières sur rail),
  • Commande ouverture 2 battants (ou complète pour les barrières sur rail),
  • Fermeture,
  • Temporisation « possible » de fermeture après x secondes.

Ensuite sur la carte électronique tu as des contacts disponibles pour les mêmes fonction avec en plus :

  • Stop.

J’ai donc raccordé tout ces contacts à un Arduino pour le besoin suivant :

  • Je dois recevoir un colis dans la matinée ou l’après-midi, je fais une ouverture bloquée, l’Arduino envoi la commande d’ouverture puis après x secondes (temps d’ouverture de la barrière) j’actionne le relais « Stop » pour la bloquée en position. Une fois le livreur passé ou après un laps de temps, je désactive l’ouverture bloquée ou je fais une commande fermeture pour couper le stop et la lancer en fermeture,
  • Idem lorsque je reçois du monde, ça évite de devoir rouvrir à chaque arrivée ^^
  • Lorsque ma conjointe travail, un scénario « Début Orthophonie » ou « Début Equithérapie » lié aux modes « Travail Orthophonie » ou « Travail Equithérapie » lance l’allumage des éclairages des pièces utilisées au besoin de la luminosité ainsi que l’Ouverture bloquée de la barrière pour l’arrivée de la patientèle. Lorsqu’elle quitte ces 2 modes ou passe en mode « Retour maison », la barrière est débloquée et fermée.
  • Idem pour notre locataire avec le mode « Travail Psychomotricité » qui en plus permet de relever la séparation des charges pour les pièces communes.
  • Pour la fermeture bloquée, comme je le disais, c’est une sécurité « en plus » en cas d’absence prolongée.
  • Pour le reste j’utilise les fonctions normales Ouverture / Ouverture 1 battant / Fermeture selon le cas :
    • J’ai un tag NFC sur le tableau de bordv+ Tasker. Quand je sors ou je rentre, je pose mon tel sur le tableau de bord et la commande passe,
    • Je reçois un invité surprise, je prend le 1er truc que j’ai sous la main, soit la télécommande, soit le tel et j’ouvre.
  • La barrière est restée ouverte suite bug ou autre, j’utilise soit la télécommande, soit le tel et je ferme.
    Je ne gère pas la barrière de façon automatique

C’est à peu près tout. Du coup comme tu peux le voir rien de complexe finalement, j’ai juste détaillé les possibilités d’usage qui se comptent à ce nombre. Après clairement, j’utilise tout ces points en permanence.

Sur ce point je ne comprend pas. Justement si on prend l’exemple des philips hue, sur le dashboard pour le moment n’est repris que l’allumage de la lampe. Mais on est bien d’accord que par la suite on aura également la possibilité de gérer la couleur, la luminosité et la température. Est-ce que ce sera directement dans la même box que l’éclairage ? Si c’est le cas on reprendra bien son nom de feature et non de device.
Autre exemple : actuellement j’ai un device pour sauvegarder la « Tension moyenne et Intensité totale de la maison » avec 1 feature « Tension maison moyenne » et 1 autre « Intensité totale maison ». Egalement 1 device pour chaque phase (Triphasé) des données de puissance/énergie avec chacun 3 features : « Puissance Phase 2 maison », « Energie Phase 2 maison », « Energie totale Phase 2 maison »

En image


Et sur le Dashboard on récupère bien les noms des features et non du device.

En image

image

Il en va de même pour une prise ou pour 1 device qui contiendrait plusieurs actions et donc plusieurs feature. Par exemple une prise avec relevé de la consommation. Quoiqu’il arrive, si un device est configuré avec 1 seul switch, ça ne changerai rien au fait qu’on récupère son nom de device, ou que le nom de feature sois le même que son nom de device. Après j’ai peut-être une vision tronquée de par le fait que je n’utilise que principalement l’Arduino pour ma domotique. Mais j’essaye de m’équiper de tout les types d’appareils actuellement pour avoir une vision plus globale.

En effet ^^ Peut-être que le plus simple pour que tout le monde s’y retrouve et pour avoir le plus d’ouverture serait d’ajouter un bouton sur la carte du device pour choisir si on souhaite utiliser le nom du device ou de la feature pour les cas dérangeant ?

J’ai rajouté un lien vers ton message à la carte GitHub:

Après on est d’accord, pour l’instant tu arrives à faire sans problème dans le service MQTT ce fonctionnement sans avoir de type « garage door » natif?

Ce que je voulais dire, c’est que le Philips Hue n’a qu’une feature de chaque type par device. Une lampe n’a qu’un seul « binaire », qu’un seul « couleur », qu’un seul « intensité ».

C’est pas dit !

Par exemple, voilà comme l’application Philips Hue fonctionne:

J’ai la liste des ampoules, puis quand je clique je vois apparaitre un color picker que je peux modifier.

  • Est-ce que l’application Philips Hue est claire et simple à utiliser ? Oui.
  • Est-ce que le développeur de l’application Philips Hue a décidé de nommer chaque fonctionnalité de chaque Hue? Non.

ll faut penser expérience utilisateur.

Nommer chaque fonctionnalité n’a pas de sens partout, le plus simple le mieux. Il y a une vrai réflexion de haut niveau qu’on va réaliser à chaque implémentation, réflexion qu’on doit faire sans penser une seule seconde à la technique: comment ça fonctionne sous le capot, l’utilisateur s’en fout :slight_smile:

Le type « binary » est géré différemment des autres types de features, du fait de l’intégration Philips Hue.

En fait, en l’état, le type binary n’a pas été pensé pour être utilisé plusieurs fois dans un device, après ce n’est pas figé.

A voir, je pense qu’un cas spécial pour les devices MQTT n’est pas « dérangeant ». Je pense que faire du cas par cas par intégration c’est le meilleur moyen d’avoir une intégration fine.

J’ai créé une carte :

Bonjour @pierre-gilles et merci de ton retour,

En effet, j’ai fais ça se matin, mais j’ai repris le code et le create pour créer un device par commande (switch) du coup côté Integration/MQTT/Device/Feature, ce n’est pas pratique et lisible (mais finalement avec la barre de recherche on s’y retrouve), mais côté Dashboard c’est nettement mieux.

Integration/MQTT/Device

Dashboard

image

En effet, je suis totalement d’accord avec toi. Au final ce n’est pas le même usage du tout, et effectivement, en tout cas pour le moment, nous n’aurons ce « souci » qui n’en est pas un que du côté MQTT, ou en tout cas dans les devices « fait maison » ou qui ont un fonctionnement particulier.

Tout à fait :slight_smile: !! Et en effet je parlais bien exclusivement pour l’intégration MQTT.

Top !! Merci !!

@Terdious Tu avais quelques soucis sur Gladys Plus, j’ai enquêté et j’ai trouvé le souci: il y avait un souci de cache sur un fichier clé de Gladys Plus (le serviceWorker, sw.js ), et ainsi certains fichiers se mettaient mal à jour. ( Le fichier en question https://plus.gladysassistant.com/sw.js )

Gladys Plus est une progressive web app qui fonctionne entièrement en local en offline, et qui est ainsi très rapide à démarrer. Pour se mettre à jour, le fichier sw.js n’a volontairement pas d’ID unique et ne doit pas être cachée par le navigateur.

Hors, par défaut, sur Netlify, ce fichier a une directive de cache de 10 jours.

J’ai corrigé ça, ce fichier n’est plus mis en cache et normalement le système de mise à jour du front devrait fonctionner à nouveau.

Pour tester, est-ce que tu pourrais vider le cache de ton navigateur sur la page “plus.gladysassistant.com”, puis recharger la page? Normalement ça devrait éliminer certains bugs “mystique” que tu avais qui n’était juste du qu’à ce problème :slight_smile:

1 « J'aime »

Salut @pierre-gilles,

Je te remercie beaucoup pour cette investigation. J’espère que ce n’était pas du temps perdu seulement pour moi et que ça servira au global.

Je viens de relancer le navigateur proprement, ça fonctionne bien. Je reviendrai ici te prévenir si jamais je vois des choses réapparaître, mais tu as visiblement bien cerné le problème donc pas de raison ^^

1 « J'aime »

Ca m’a pris du temps, mais tu n’étais pas le seul à mon avis donc t’inquiète pas ça servira à tout le monde :smiley:

1 « J'aime »

Bonjour à tous
Je ne sais ps si je suis au bon endroit, mais Gladys 4 se déconnecte seul de temps en temps
Ill me dit ensuite que mon dasboard n’est pas configuré :


Le pb c’est que le seul moyen que j’ai trouvé est de reprendre l’installation…
Il doit y avoir plus simple non ?
Merci de vos conseils

C’est plutot cette capture d’écran qui s’affiche :

Merci

Mmm il peut s’agir de problème de stabilité de ton réseau, ou de ton Pi.

Quand tu dis:

Qu’entend tu par là ?

Quand tu accède à Gladys en local (via l’adresse IP de ton Pi), est-ce que tout marche ?

C’est peut-être une question bête, mais tu avais configuré des box sur ton dashboard ?