Affichage des courbes de capteurs sur le dashboard

Clairement, je pense que l’idéal ce serait d’avoir une vue un peu à la home assistant :

Screenshot 2021-10-13 at 14.17.51

Là au moins c’est fait pour ça :slight_smile:

Ce développement n’est pas pensé pour des capteurs binaires, tout le fonctionnement interne est basé sur de l’échantillonnage, ce qui fait sens pour des valeurs de température, mais n’a aucun sens pour des binaires: comme tu disais, ça sert à rien d’avoir une valeur de 0.75 pour un capteur d’ouverture de porte.

Je pense que pour les capteurs binaires il faut qu’on se mette autour d’une feuille, faire l’étude du besoin, trouver une solution, et ensuite développement. C’est un beau chantier, et je pense pas qu’on arrivera à faire un truc satisfaisant avec ce qui a été fait là (qui est un tout autre chantier)

2 « J'aime »

Du coup suite à ce qu’on s’est dit @lmilcent, j’ai désactivé à nouveau les graphiques pour les appareils suivants:

  • Binaires
  • Push
  • Camera
  • Couleur

Pour les binaires/Push, on fera un développement spécifique bien fait, je sais que c’est frustrant de pas avoir la fonctionnalité tout de suite, mais bon c’est plus dans la philosophie de la v4 de faire bien les choses plutôt que d’essayer de mettre du scotch à droite à gauche :slight_smile:

@lmilcent Tu nous créé une demande de fonctionnalité ?

2 « J'aime »

D’ailleurs je suis toujours preneur de tes logs navigateurs pour ça :stuck_out_tongue: (J’ai pas le bug chez moi)

Petit feedback avec comparaison HA

  • Je trouve que ça manque de contraste ( plus épais / pas de pointillés ? )

  • Lorsque que l’on affiche plusieurs features une légende est un + non négligeable car l’infobulle n’aide pas
    image

  • Avec plusieurs courbes + variation, comment est calculée cette variation ? car au ‘mouse over’ sur une des courbe la variation ne change pas.
    image


Je continue de faire joujou mais ça commence à avoir de la gueule :slight_smile:

3 « J'aime »

Ah oui merci pour le rappel !

Je viens de tester :

  • Il faut ajouter un nouveau graphique (editer un ancien fonctionne toujours)
  • Ne pas afficher les axes
  • Dernière heure par défaut

Et ça fonctionne pas, sans logs particuliers côté navigateur. En retirant le graphique, j’ai les même logs d’erreur, donc c’est surement pas ça.

Done!

1 « J'aime »

Suite essais :

  • Il manque la modification du terme “Barre” => “Histogramme” (si toujours d’actualité)
    image
  • La ligne rouge est en pointillée ce qui empêche de la sélectionner lorsqu’on se situe entre 2 pointillé (voir le curseur ci-dessous - qui est malheureusement gris clair sur l’imprim écran)
    image
  • Prévisualisation dans l’édition seulement en cas de modification de la box (toujours si possible) - 20s pour afficher la vue Edition … c’est long :joy:
  • Je valide la remarque de @lmilcent, mais en détail :
    • ça le fait même dans la prévisualisation :
En prévisualisation sans axe

  • si on affiche l’axe la courbe apparait,
  • si on retire l’axe, la courbe reste bien affichée :
En prévisualisation sans axe après avoir d'abord affiché les axes

  • idem pour l’affichage sur le dashboard. Etapes pour reproduire :
  1. Edition / Box Graphique / Sélection de l’appareil,

  2. Sauvegarder
    Vue dashboard : image

  3. Edition / Box Graphique / Sélection de l’appareil,

  4. Axe Oui,

  5. Axe Non,

  6. Sauvegarder : La on retrouve bien la courbe:
    image

Merci pour ton retour @VonOx ! Je suis d’accord avec tous les points, je vais regarder pour améliorer ça :+1:

Dans le cas du multi-courbes, je ne savais pas trop quoi faire, ce que j’ai fais c’est:

  • calcul de la variation entre la premiere et la dernière valeur de chaque courbe (sur l’interval sélectionné)
  • Puis je fais la moyenne de toutes les variations

Après, je suis d’accord c’est pas forcément utile dans tous les cas.

Tu verrais quoi comme calcul toi ?

Ok, et par curiosité tu peux regarder le retour de l’API dans l’onglet « network », puis tu regarde la data qui est retourné par ce call API:

Et tu nous envoie la réponse ici ?

Il doit y avoir un truc dans ta donnée qui fait qu’on passe dans un edge case, j’aimerais comprendre lequel :slight_smile:

Merci ! :slight_smile:

@Terdious Merci pour tes retours et d’insister sur les petits points que j’avais oublié, je vais corriger ça !!

ah, je vais essayer de faire pareil voir si je reproduis

1 « J'aime »

Ok j’arrive à reproduire t’embête pas @lmilcent

1 « J'aime »

Variation multi-capteurs

Autre retour : J’affiche l’humidité + température de chaque pièce ici. La variation ne correspond à rien, ni la température (autour de 20°C) ni l’humidité (autour de 60%).

Quelques solutions pour moi :

  1. Afficher deux indicateurs de variation, mais ça alourdit l’affichage
  2. Spécifier quelle est la valeur principale qui sera utilisée (ou prendre le 1e, ici l’humidité)
  3. Ne rien afficher (mais ça serait dommage)


Variation sur 7j (ou plus)

Lorsque la variation est affichée sur plus de 24h, c’est une valeur calculée qui est affichée. Sur le moment j’ai trouvé ça bizarre que mon ordi + 2 écrans ne consomment que 0.03W.

Ce n’est pas un bug pour le coup, mais j’aurais aimé pouvoir afficher la consommation actuelle en grand, et la variation en rouge sur la période.
Par exemple : 80W actuel, -100% sur la période de 7 jours.

image

EDIT : En fait je suis tellement obnubilé par les graphiques que j’en oublie le reste des possibilités :sweat_smile: :

Pour la partie “Tâches”, finalement c’est toujours buggué sur le “NaN”. J’ai l’impression que c’est pendant une tâche que le bug arrive.
Lorsque ça sera terminé, les valeurs affichées seront surement les bonnes (pari).

Euh en même temps ça n’a pas de sens ça non? A la base je pensais carrément bloquer la sélection de différents appareils qui n’ont pas le même type

Tu peux désactiver l’affichage de la variation si ça ne fait pas sens:

Mm effectivement

J’explique ce qu’il se passe:

En fait, quand tu sélectionne une courbe autre que dernière heure, je me base sur les données aggrégées qui ne sont pas « live »

Et du coup, il manque toujours le dernier bout de données qui n’a pas été aggrégée.

Si tu sélectionne les 7 derniers jours, en vérité c’est les 8 derniers jours jusqu’à hier (les données live du jour actuel ne sont pas affichées)

Sauf que je suis d’accord, c’est pas fou, donc je m’étais dis à la base « Ok mais c’est simple, je vais coller la donnée live à la donnée aggrégée », l’idée était de faire un mix aggrégation / live pour avoir tout.

Sauf que ça marche pas du tout, en fait ça donne un rendu bizarre, vu que les données live sont pas encore aggrégée, ça fait que tu te retrouve avec une courbe qui est aggrégée et « assez générale » sur 80% de la courbe, et le dernier 20% c’est de la donnée hyper précise, et ça fait dégeu

Mais je suis d’accord avec toi, dans l’idée il faudrait avoir tout jusqu’à maintenant.

Je vais y réfléchir, mais c’est un gros bout…

Ok je vais regarder.

1 « J'aime »

C’est corrigé, la ligne est de même taille pour tous les graphs, plus de pointillés.

J’ai rajouté la légende quand on affiche plusieurs features!

Par contre c’est uniquement sur la vue avec les axes, la vue sans axe je sais pas pourquoi mais Apexchart déconne complètement quand on afficher la légende (la légende se retrouve mélangé au graph), j’ai testé des techniques sans succès

Corrigé.

Corrigé.

Corrigé.

Bug corrigé :slight_smile:

2 « J'aime »

Pour ma part ça ne me gênera pas. La vue sans axe je ne l’utiliserai que pour des cas bien particulier et de toute façon si on veut avoir la valeur il faudra mettre le curseur (ou le doigt) sur la courbe, on aura donc la légende. C’est parfait pour moi de ce côté.

Super idée le bouton, j’adore :heart_eyes:

Je n’ai pas encore réussi à observer la chose ^^ je tombe toujours après coup ^^

En effet pour moi dans ce cas sur mélange de catégorie ça n’a pas de sens et l’utilisateur devrait lui même laisser la variation désactivée. Comme on le disait ça doit rester une vue simplifiée. Par contre je pense qu’il est très important de pouvoir laisser le choix de mixer des catégories différentes. Dans l’exemple de @lmilcent il est très intéressant de pouvoir afficher dans la même courbe la température et l’humidité d’une pièce mais la variation ne fais pas sens dans cette box et complexifierai d’autant l’édition de la vue. Toutefois dns une vue dédiée plus tard là … :wink:

1 « J'aime »

Bon sinon @Terdious, j’ai bossé une bonne partie de la matinée sur l’optimisation de la performance de la route de GET des valeurs aggrégées, pour que l’affichage soit plus rapide chez toi !

Je suis parti de ce que tu m’as donné (les stats que tu m’as extraites), j’ai mis ça en forme dans un tableur et ordonné par temps d’exécution:

Comme on peut voir, ce qui est lent c’est les requêtes sur la DB.

En investiguant, déjà je me suis rendu compte qu’au début de la route je faisais une requête getDeviceFeatureBySelector qui pourrait juste être remplacée par un appel au cache en RAM.

J’ai retiré la requête, hop, déjà ça divise par deux le nombre de requête !

Ensuite, je me suis rendu compte que l’appel à la vue “Dernière 24h” ne passait pas par les données aggrégées, mais par les données live :thinking:

En fait, il manquait ce cas dans les requêtes, et à défaut de faire un calcul à partir de la data aggrégée, on passait par les données live ( ce qui est beaucoup plus lent)

En passant par les données aggrégées, j’arrive à faire en sorte que au maximum, la requête renvoie 288 states, ce qui est super petit (je sais pas toutes les combien des données sont insérées? En 24h, tu as combien de state écrits?)

Je finalise tout ça, et je te tiens au courant quand une nouvelle image est prête pour tester !

1 « J'aime »

Hop, nouveau build disponible sur le tag:

gladysassistant/gladys:chart

Comme d’habitude, avec toutes les corrections ci-dessus :slight_smile:

@Terdious preneur de ton retour sur la performance !

Après un pull ce matin :+1:

Le truc qui me chiffonne c’est lié au “débat” Device name ou feature name.
On peut constater que si je veux une légende correcte ( qui m’aide quoi ! ) je dois renommer les features

Mon premier graph affiche les température des chambres

  • Bleu => mon fils
  • Rouge => ma fille
  • Jaune => ma chambre

Pour moi ça n’a pas de sens de renommer la feature par les prénom par exemple.

Donc est ce que la légende ne devrait pas utiliser le nom du device ?

C’est magnifique! :heart_eyes:

ça me rend fou ce débat :joy:

En fait le problème c’est que chaque cas est unique, dans ton cas ça fait sens, mais dans le cas de @Terdious ça fait pas du tout sens. Du coup il y aura forcément un frustré (battez vous :stuck_out_tongue: )

@VonOx c’est des périphériques venant de quelle intégration ?

Comment les autres box domotique font ?

1 « J'aime »

Et sinon afficher les deux ?

Comme ça :

Température (chambre XXX) - Température (chambre YYY)

Z2M

Si je renomme ma feature dans cette box je vais avoir le prénom de mon fiston partout
image

On override la légende tout simplement

Edit: Il est chiant @Terdious :grin: