Affichage des courbes de capteurs sur le dashboard

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:

Y’a pas la place pour moi, et trop d’infos tue l’info :grinning:

1 « J'aime »

De mon côté je constate une net augmentation de la rapidité de chargement des graphiques. Ce qui pouvait prendre jusqu’à 5 secondes en prends moins de 1 à 2 !
:clap: Bravo pour l’optimisation !

Si tous les dev étaient comme toi à ce niveau, le web ne nécessiterait pas autant de puissance de calcul :sweat_smile:

1 « J'aime »

Aha merci :slight_smile: C’est mon métier la performance, je suis ingénieur backend à côté et c’est ma vie de faire des infra solide, des backend qui répondent vite, de l’optimisation, j’adore ça :stuck_out_tongue:

1 « J'aime »

Hello !!

Logs docker
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(puissance-phase-2-centre-equitherapie): 0.42ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(energie-phase-2-centre-equitherapie): 0.049ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(puissance-phase-2-centre-equitherapie): 587.672ms
getDeviceFeaturesAggregates.buildingDownsamplingArray(puissance-phase-2-centre-equitherapie): 0.393ms
getDeviceFeaturesAggregates.downsamplingData(puissance-phase-2-centre-equitherapie): 0.383ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(energie-phase-2-centre-equitherapie): 676.25ms
getDeviceFeaturesAggregates.buildingDownsamplingArray(energie-phase-2-centre-equitherapie): 0.06ms
getDeviceFeaturesAggregates.downsamplingData(energie-phase-2-centre-equitherapie): 0.022ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(energie-totale-phase-2-centre-equitherapie): 0.061ms
getDeviceFeaturesAggregates: Aggregate by hourly, from Thu Oct 14 2021 06:04:54 GMT+0200 (Central European Summer Time), 138 rows returned
getDeviceFeaturesAggregates.gettingRowsFromAggregatedDb(energie-totale-phase-2-centre-equitherapie): 102.103ms
getDeviceFeaturesAggregates.buildingDownsamplingArray(energie-totale-phase-2-centre-equitherapie): 0.626ms
getDeviceFeaturesAggregates.downsamplingData(energie-totale-phase-2-centre-equitherapie): 3.578ms
2021-10-15T06:05:10+0200 <info> device.calculateAggregate.js:105 (ChildProcess.<anonymous>) device.calculateAggregate: Finishing processing for interval daily
2021-10-15T06:05:10+0200 <info> device.calculateAggregate.js:38 (DeviceManager.calculateAggregate) Calculating aggregates device feature state for interval monthly
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(puissance-phase-1-centre-equitherapie): 0.054ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(puissance-phase-1-centre-equitherapie): 582.076ms
getDeviceFeaturesAggregates.buildingDownsamplingArray(puissance-phase-1-centre-equitherapie): 0.079ms
getDeviceFeaturesAggregates.downsamplingData(puissance-phase-1-centre-equitherapie): 0.055ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(puissance-phase-2-centre-equitherapie): 0.042ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(puissance-phase-3-centre-equitherapie): 0.035ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(puissance-phase-2-maison-dublem): 0.035ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(energie-phase-1-centre-equitherapie): 0.036ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(energie-phase-2-centre-equitherapie): 0.043ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(puissance-phase-2-centre-equitherapie): 720.035ms
getDeviceFeaturesAggregates.buildingDownsamplingArray(puissance-phase-2-centre-equitherapie): 0.387ms
getDeviceFeaturesAggregates.downsamplingData(puissance-phase-2-centre-equitherapie): 0.03ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(energie-phase-2-centre-equitherapie): 720.198ms
getDeviceFeaturesAggregates.buildingDownsamplingArray(energie-phase-2-centre-equitherapie): 0.043ms
getDeviceFeaturesAggregates.downsamplingData(energie-phase-2-centre-equitherapie): 0.209ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(puissance-phase-3-centre-equitherapie): 2.553s
getDeviceFeaturesAggregates.buildingDownsamplingArray(puissance-phase-3-centre-equitherapie): 0.457ms
getDeviceFeaturesAggregates.downsamplingData(puissance-phase-3-centre-equitherapie): 0.022ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(puissance-phase-2-maison-dublem): 2.563s
getDeviceFeaturesAggregates.buildingDownsamplingArray(puissance-phase-2-maison-dublem): 0.176ms
getDeviceFeaturesAggregates.downsamplingData(puissance-phase-2-maison-dublem): 0.23ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(energie-phase-1-centre-equitherapie): 2.565s
getDeviceFeaturesAggregates.buildingDownsamplingArray(energie-phase-1-centre-equitherapie): 0.062ms
getDeviceFeaturesAggregates.downsamplingData(energie-phase-1-centre-equitherapie): 0.022ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(energie-phase-3-centre-equitherapie): 0.044ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(energie-phase-3-centre-equitherapie): 117.822ms
getDeviceFeaturesAggregates.buildingDownsamplingArray(energie-phase-3-centre-equitherapie): 0.308ms
getDeviceFeaturesAggregates.downsamplingData(energie-phase-3-centre-equitherapie): 0.025ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(energie-totale-phase-1-centre-equitherapie): 0.039ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(energie-totale-phase-1-centre-equitherapie): 0.041ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(energie-totale-phase-2-centre-equitherapie): 0.036ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(energie-totale-phase-3-centre-equitherapie): 0.037ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(energie-totale-phase-3-centre-equitherapie): 0.038ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(energie-totale-phase-2-centre-equitherapie): 0.043ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(puissance-phase-1-centre-equitherapie): 0.049ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(energie-totale-phase-3-centre-equitherapie): 1.014s
getDeviceFeaturesAggregates.buildingDownsamplingArray(energie-totale-phase-3-centre-equitherapie): 0.408ms
getDeviceFeaturesAggregates.downsamplingData(energie-totale-phase-3-centre-equitherapie): 0.021ms
getDeviceFeaturesAggregates: Aggregate by monthly, from Thu Oct 15 2020 06:05:35 GMT+0200 (Central European Summer Time), 226 rows returned
getDeviceFeaturesAggregates.gettingRowsFromAggregatedDb(energie-totale-phase-1-centre-equitherapie): 1.733s
getDeviceFeaturesAggregates.buildingDownsamplingArray(energie-totale-phase-1-centre-equitherapie): 0.479ms
getDeviceFeaturesAggregates.downsamplingData(energie-totale-phase-1-centre-equitherapie): 1.688ms
getDeviceFeaturesAggregates: Aggregate by monthly, from Thu Oct 15 2020 06:05:35 GMT+0200 (Central European Summer Time), 229 rows returned
getDeviceFeaturesAggregates.gettingRowsFromAggregatedDb(energie-totale-phase-2-centre-equitherapie): 1.742s
getDeviceFeaturesAggregates.buildingDownsamplingArray(energie-totale-phase-2-centre-equitherapie): 0.458ms
getDeviceFeaturesAggregates.downsamplingData(energie-totale-phase-2-centre-equitherapie): 1.629ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(puissance-phase-1-centre-equitherapie): 1.724s
getDeviceFeaturesAggregates.buildingDownsamplingArray(puissance-phase-1-centre-equitherapie): 0.05ms
getDeviceFeaturesAggregates.downsamplingData(puissance-phase-1-centre-equitherapie): 0.019ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(puissance-phase-2-maison-dublem): 0.045ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(energie-totale-phase-1-centre-equitherapie): 2.414s
getDeviceFeaturesAggregates.buildingDownsamplingArray(energie-totale-phase-1-centre-equitherapie): 0.052ms
getDeviceFeaturesAggregates.downsamplingData(energie-totale-phase-1-centre-equitherapie): 0.025ms
getDeviceFeaturesAggregates: Aggregate by monthly, from Thu Oct 15 2020 06:05:35 GMT+0200 (Central European Summer Time), 236 rows returned
getDeviceFeaturesAggregates.gettingRowsFromAggregatedDb(energie-totale-phase-3-centre-equitherapie): 2.412s
getDeviceFeaturesAggregates.buildingDownsamplingArray(energie-totale-phase-3-centre-equitherapie): 0.55ms
getDeviceFeaturesAggregates.downsamplingData(energie-totale-phase-3-centre-equitherapie): 1.492ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(energie-totale-phase-2-centre-equitherapie): 2.966s
getDeviceFeaturesAggregates.buildingDownsamplingArray(energie-totale-phase-2-centre-equitherapie): 0.06ms
getDeviceFeaturesAggregates.downsamplingData(energie-totale-phase-2-centre-equitherapie): 0.026ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(puissance-phase-2-maison-dublem): 1.636s
getDeviceFeaturesAggregates.buildingDownsamplingArray(puissance-phase-2-maison-dublem): 0.056ms
getDeviceFeaturesAggregates.downsamplingData(puissance-phase-2-maison-dublem): 0.022ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(energie-totale-phase-1-centre-equitherapie): 0.038ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(puissance-phase-1-centre-equitherapie): 0.035ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(energie-phase-1-centre-equitherapie): 0.043ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(energie-totale-phase-1-centre-equitherapie): 1.159s
getDeviceFeaturesAggregates.buildingDownsamplingArray(energie-totale-phase-1-centre-equitherapie): 0.046ms
getDeviceFeaturesAggregates.downsamplingData(energie-totale-phase-1-centre-equitherapie): 0.025ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(puissance-phase-1-centre-equitherapie): 1.162s
getDeviceFeaturesAggregates.buildingDownsamplingArray(puissance-phase-1-centre-equitherapie): 0.058ms
getDeviceFeaturesAggregates.downsamplingData(puissance-phase-1-centre-equitherapie): 0.035ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(energie-phase-1-centre-equitherapie): 1.157s
getDeviceFeaturesAggregates.buildingDownsamplingArray(energie-phase-1-centre-equitherapie): 0.033ms
getDeviceFeaturesAggregates.downsamplingData(energie-phase-1-centre-equitherapie): 0.02ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(energie-totale-phase-1-centre-equitherapie): 0.04ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(puissance-phase-1-centre-equitherapie): 0.042ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(energie-phase-1-centre-equitherapie): 0.033ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(energie-totale-phase-1-centre-equitherapie): 1.154s
getDeviceFeaturesAggregates.buildingDownsamplingArray(energie-totale-phase-1-centre-equitherapie): 0.052ms
getDeviceFeaturesAggregates.downsamplingData(energie-totale-phase-1-centre-equitherapie): 0.034ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(puissance-phase-1-centre-equitherapie): 1.155s
getDeviceFeaturesAggregates.buildingDownsamplingArray(puissance-phase-1-centre-equitherapie): 0.058ms
getDeviceFeaturesAggregates.downsamplingData(puissance-phase-1-centre-equitherapie): 0.033ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(energie-phase-1-centre-equitherapie): 1.156s
getDeviceFeaturesAggregates.buildingDownsamplingArray(energie-phase-1-centre-equitherapie): 0.086ms
getDeviceFeaturesAggregates.downsamplingData(energie-phase-1-centre-equitherapie): 0.024ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(energie-phase-1-centre-equitherapie): 0.042ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(energie-phase-1-centre-equitherapie): 89.092ms
getDeviceFeaturesAggregates.buildingDownsamplingArray(energie-phase-1-centre-equitherapie): 0.044ms
getDeviceFeaturesAggregates.downsamplingData(energie-phase-1-centre-equitherapie): 0.054ms
2021-10-15T06:05:48+0200 <info> device.calculateAggregate.js:105 (ChildProcess.<anonymous>) device.calculateAggregate: Finishing processing for interval monthly
Info page web

Le 1er chargement met toujours une 10aine de secondes

Par contre sur mon Dashboard contenant un mix de box appareil, caméra et 3 courbes - C’est très/suffisamment rapide :

Logs docker
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(energie-phase-2-centre-equitherapie): 0.455ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(energie-phase-2-centre-equitherapie): 159.074ms
getDeviceFeaturesAggregates.buildingDownsamplingArray(energie-phase-2-centre-equitherapie): 0.241ms
getDeviceFeaturesAggregates.downsamplingData(energie-phase-2-centre-equitherapie): 0.408ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(puissance-phase-2-centre-equitherapie): 0.099ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(intensite-totale-centre-equitherapie): 0.055ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(intensite-totale-batiment-partie-perso): 0.039ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(intensite-totale-maison-dublem): 0.036ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(energie-totale-phase-2-centre-equitherapie): 0.048ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(tension-moyenne-centre-equitherapie): 0.045ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(tension-moyenne-batiment-partie-perso): 0.064ms
getDeviceFeaturesAggregates.findingDeviceFeatureInRAM(tension-moyenne-maison-dublem): 0.037ms
getDeviceFeaturesAggregates: Aggregate by hourly, from Thu Oct 14 2021 06:22:08 GMT+0200 (Central European Summer Time), 138 rows returned
getDeviceFeaturesAggregates.gettingRowsFromAggregatedDb(energie-totale-phase-2-centre-equitherapie): 1.304s
getDeviceFeaturesAggregates.buildingDownsamplingArray(energie-totale-phase-2-centre-equitherapie): 0.657ms
getDeviceFeaturesAggregates.downsamplingData(energie-totale-phase-2-centre-equitherapie): 3.528ms
getDeviceFeaturesAggregates: Aggregate by daily, from Fri Oct 08 2021 06:22:08 GMT+0200 (Central European Summer Time), 7 rows returned
getDeviceFeaturesAggregates.gettingRowsFromAggregatedDb(tension-moyenne-centre-equitherapie): 1.303s
getDeviceFeaturesAggregates.buildingDownsamplingArray(tension-moyenne-centre-equitherapie): 0.052ms
getDeviceFeaturesAggregates.downsamplingData(tension-moyenne-centre-equitherapie): 0.038ms
getDeviceFeaturesAggregates: Aggregate by daily, from Fri Oct 08 2021 06:22:08 GMT+0200 (Central European Summer Time), 0 rows returned
getDeviceFeaturesAggregates.gettingRowsFromAggregatedDb(tension-moyenne-batiment-partie-perso): 1.304s
getDeviceFeaturesAggregates.buildingDownsamplingArray(tension-moyenne-batiment-partie-perso): 0.044ms
getDeviceFeaturesAggregates.downsamplingData(tension-moyenne-batiment-partie-perso): 0.039ms
getDeviceFeaturesAggregates: Aggregate by daily, from Fri Oct 08 2021 06:22:08 GMT+0200 (Central European Summer Time), 7 rows returned
getDeviceFeaturesAggregates.gettingRowsFromAggregatedDb(tension-moyenne-maison-dublem): 1.304s
getDeviceFeaturesAggregates.buildingDownsamplingArray(tension-moyenne-maison-dublem): 0.069ms
getDeviceFeaturesAggregates.downsamplingData(tension-moyenne-maison-dublem): 0.045ms
getDeviceFeaturesAggregates: Aggregate by daily, from Fri Oct 08 2021 06:22:08 GMT+0200 (Central European Summer Time), 7 rows returned
getDeviceFeaturesAggregates.gettingRowsFromAggregatedDb(intensite-totale-maison-dublem): 1.332s
getDeviceFeaturesAggregates.buildingDownsamplingArray(intensite-totale-maison-dublem): 0.049ms
getDeviceFeaturesAggregates.downsamplingData(intensite-totale-maison-dublem): 0.025ms
getDeviceFeaturesAggregates: Aggregate by daily, from Fri Oct 08 2021 06:22:08 GMT+0200 (Central European Summer Time), 0 rows returned
getDeviceFeaturesAggregates.gettingRowsFromAggregatedDb(intensite-totale-batiment-partie-perso): 1.334s
getDeviceFeaturesAggregates.buildingDownsamplingArray(intensite-totale-batiment-partie-perso): 0.023ms
getDeviceFeaturesAggregates.downsamplingData(intensite-totale-batiment-partie-perso): 0.021ms
getDeviceFeaturesAggregates.gettingRowsFromLiveDb(puissance-phase-2-centre-equitherapie): 1.339s
getDeviceFeaturesAggregates.buildingDownsamplingArray(puissance-phase-2-centre-equitherapie): 0.07ms
getDeviceFeaturesAggregates.downsamplingData(puissance-phase-2-centre-equitherapie): 0.049ms
getDeviceFeaturesAggregates: Aggregate by daily, from Fri Oct 08 2021 06:22:08 GMT+0200 (Central European Summer Time), 7 rows returned
getDeviceFeaturesAggregates.gettingRowsFromAggregatedDb(intensite-totale-centre-equitherapie): 1.348s
getDeviceFeaturesAggregates.buildingDownsamplingArray(intensite-totale-centre-equitherapie): 0.053ms
getDeviceFeaturesAggregates.downsamplingData(intensite-totale-centre-equitherapie): 0.022ms
Info page web

Donc résultat : Seul une vue dédiée Dashboard est longue à afficher. J’ai 18 courbes « Test » dessus. Mais ça ne me choque pas pour le coup, et ne me dérange pas. Cette vue sera affichée soit rarement, soit sur une vue sur une tablette dédiée à l’avenir.

Si je reprend le même exemple que @VonOx, ici si je ne prend pas le nom des features je me retrouverais avec 3x3 fois le même nom de device ce qui ne fait plus sens. C’est déjà compliqué car on ne peut pas modifier l’ordre d’affichage. Chaque « Energie » et « Energie Totale » serait donc indiscernable :

Il y a de nombreuse solutions pour ne pas faire de « frustré ». Mais si pas possible alors tant pis, je n’ai pas l’envie que quelqu’un soit « puni » à cause de mes demandes ou propositions. J’abandonne le sujet ^^ Le seul sujet c’est que pour le moment plusieurs personnes font la remarque qu’il est impossible de distinguer certains appareils dans les sélections. Comment résoudre cela sans que l’utilisateur soit obliger de créer des appareils fictifs plus scènes pour les gérer (Tasmota multi prises, etc.). A lépoque (il y a plus d’un an) j’avais soumis l’idée de séparer les devices (Type Dual ou CH4 de Sonoff) comptant plusieurs commutateur en plusieurs devices.

:sweat_smile: J’éviterais dorénavant ^^ :kissing_heart: