Anzeige der Sensorenkurven im Dashboard

Ah ja, danke für die Erinnerung!

Ich habe gerade getestet:

  • Ein neues Diagramm hinzufügen (Bearbeiten eines alten funktioniert weiterhin)
  • Achsen nicht anzeigen
  • Letzte Stunde standardmäßig

Und es funktioniert nicht, ohne besondere Logs auf der Browserseite. Beim Entfernen des Diagramms habe ich die gleichen Fehlermeldungen, also liegt es wahrscheinlich nicht daran.

Erledigt!

Test-Suite:

  • Der Begriff « Barre » wurde nicht in « Histogramme » geändert (falls noch aktuell)
  • Die rote Linie ist gestrichelt, was die Auswahl verhindert, wenn man sich zwischen zwei Strichen befindet (siehe Cursor unten - der leider auf dem Screenshot hellgrau ist)
  • Vorschau nur bei Änderung der Box (falls möglich) - 20s zum Anzeigen der Bearbeitungsansicht … das dauert :joy:
  • Ich bestätige den Hinweis von @lmilcent, aber im Detail:
    • das passiert sogar in der Vorschau:
Vorschau ohne Achse

  • wenn die Achse angezeigt wird, erscheint die Kurve,
  • wenn die Achse entfernt wird, bleibt die Kurve angezeigt:
Vorschau ohne Achse, nachdem die Achsen zuerst angezeigt wurden

  • dasselbe gilt für die Anzeige auf dem Dashboard. Schritte zur Reproduktion:
  1. Bearbeitung / Box Grafik / Gerätauswahl,

  2. Speichern
    Dashboard-Ansicht: image

  3. Bearbeitung / Box Grafik / Gerätauswahl,

  4. Achse Ja,

  5. Achse Nein,

  6. Speichern: Hier wird die Kurve wieder angezeigt:

Danke für dein Feedback @VonOx! Ich stimme allen Punkten zu, ich werde schauen, wie ich das verbessern kann :+1:

Bei mehreren Kurven wusste ich nicht genau, was ich tun sollte, also habe ich Folgendes gemacht:

  • Berechnung der Variation zwischen dem ersten und dem letzten Wert jeder Kurve (im ausgewählten Intervall)
  • Dann mache ich den Durchschnitt aller Variationen

Danach stimme ich zu, dass das nicht in allen Fällen nützlich ist.

Was würdest du als Berechnung vorschlagen?

Ok, und aus Neugierde kannst du die API-Antwort in der Registerkarte « Netzwerk » ansehen, dann schaust du dir die Daten an, die von diesem API-Aufruf zurückgegeben werden:

Und du schickst uns die Antwort hier?

Es muss etwas in deinen Daten geben, das dazu führt, dass wir in einen Edge Case geraten, ich würde gerne verstehen, welcher :slight_smile:

Danke! :slight_smile:

@Terdious Danke für dein Feedback und dafür, dass du auf die kleinen Punkte bestanden hast, die ich vergessen hatte, ich werde das korrigieren!!

ah, ich werde versuchen, dasselbe zu tun, um zu sehen, ob ich es reproduzieren kann

Ok, ich kann es reproduzieren, mach dir keine Sorgen @lmilcent

Mehrfachsensor-Variation

Andere Rückmeldung: Ich zeige hier die Feuchtigkeit + Temperatur jedes Raumes an. Die Variation entspricht weder der Temperatur (um 20°C) noch der Feuchtigkeit (um 60%).

Einige Lösungen für mich:

  1. Zwei Variationsindikatoren anzeigen, aber das belastet die Anzeige
  2. Angeben, welcher Hauptwert verwendet wird (oder den ersten nehmen, hier die Feuchtigkeit)
  3. Nichts anzeigen (aber das wäre schade)


Variation über 7 Tage (oder mehr)

Wenn die Variation über 24 Stunden angezeigt wird, wird ein berechneter Wert angezeigt. Ich fand es seltsam, dass mein PC + 2 Bildschirme nur 0,03 W verbrauchen.

Hier handelt es sich nicht um einen Fehler, aber ich hätte gerne den aktuellen Verbrauch groß angezeigt und die Variation in Rot für den Zeitraum.
Zum Beispiel: 80 W aktuell, -100 % über den 7-Tage-Zeitraum.

EDIT: Ich bin so sehr von den Diagrammen besessen, dass ich den Rest der Möglichkeiten vergesse :sweat_smile::

Beim Teil „Aufgaben“ ist es am Ende immer noch fehlerhaft mit dem „NaN“. Ich habe das Gefühl, dass der Fehler während einer Aufgabe auftritt.
Wenn das erledigt ist, werden die angezeigten Werte wahrscheinlich die richtigen sein (Wette).

Äh, das ergibt doch keinen Sinn, oder? Ursprünglich dachte ich, die Auswahl verschiedener Geräte mit unterschiedlichen Typen einfach zu blockieren

Du kannst die Anzeige der Variation deaktivieren, wenn sie keinen Sinn ergibt:

Mm, tatsächlich

Ich erkläre, was passiert:

Wenn du eine andere Kurve als die letzte Stunde auswählst, basiere ich auf den aggregierten Daten, die nicht „live“ sind

Und dann fehlt immer der letzte Teil der Daten, der noch nicht aggregiert wurde.

Wenn du die letzten 7 Tage auswählst, sind es tatsächlich die letzten 8 Tage bis gestern (die Live-Daten des aktuellen Tages werden nicht angezeigt)

Aber ich stimme zu, das ist nicht ideal, also dachte ich mir ursprünglich: „Okay, aber das ist einfach, ich werde die Live-Daten mit den aggregierten Daten kombinieren“, die Idee war, eine Mischung aus Aggregation / Live zu machen, um alles zu haben.

Aber das funktioniert überhaupt nicht, tatsächlich ergibt es ein seltsames Ergebnis, da die Live-Daten noch nicht aggregiert sind, sodass du eine Kurve hast, die zu 80% aggregiert und „eher allgemein“ ist, und die letzten 20% sind hyperpräzise Daten, und das sieht schrecklich aus

Aber ich stimme dir zu, im Grunde genommen sollte alles bis jetzt angezeigt werden.

Ich werde darüber nachdenken, aber das ist ein großes Stück…

Okay, ich werde es mir ansehen.

Das ist korrigiert, die Linie ist für alle Graphen gleich groß, keine gestrichelten Linien mehr.

Ich habe die Legende hinzugefügt, wenn mehrere Features angezeigt werden!

Allerdings nur in der Ansicht mit Achsen, in der Ansicht ohne Achsen weiß ich nicht warum, aber Apexchart spinnt komplett, wenn die Legende angezeigt wird (die Legende ist mit dem Graph vermischt), ich habe Techniken ohne Erfolg getestet

Korrigiert.

Korrigiert.

Korrigiert.

https://streamable.com/t6ernp

Bug behoben :slight_smile:

Für mich wäre das kein Problem. Die Ansicht ohne Achsen würde ich nur für ganz spezielle Fälle nutzen und außerdem, wenn man den Wert haben möchte, müsste man den Cursor (oder den Finger) auf die Kurve setzen, dann hätte man die Legende. Das ist perfekt für mich.

Super Idee der Button, ich liebe ihn :heart_eyes:

Ich habe es noch nicht geschafft, das zu beobachten ^^ ich falle immer danach ^^

In der Tat macht es für mich in diesem Fall keinen Sinn, verschiedene Kategorien zu mischen, und der Benutzer sollte die Variation selbst deaktiviert lassen. Wie wir gesagt haben, sollte es eine vereinfachte Ansicht bleiben. Aber ich denke, es ist sehr wichtig, die Möglichkeit zu haben, verschiedene Kategorien zu mischen. In @lmilcents Beispiel ist es sehr interessant, in derselben Kurve die Temperatur und die Luftfeuchtigkeit eines Raumes anzuzeigen, aber die Variation ergibt in diesem Kasten keinen Sinn und würde die Bearbeitung der Ansicht nur unnötig verkomplizieren. Allerdings in einer späteren dedizierten Ansicht dort … :wink:

Also @Terdious, ich habe heute Morgen einen großen Teil meiner Zeit damit verbracht, die Performance der GET-Route für die aggregierten Werte zu optimieren, damit die Anzeige bei dir schneller wird!

Ich bin von dem ausgegangen, was du mir gegeben hast (die Statistiken, die du mir extrahiert hast), habe das in eine Tabellenkalkulation eingegeben und nach Ausführungszeit sortiert:

Wie man sieht, sind die langsamen Teile die Datenbankabfragen.

Bei der Untersuchung habe ich festgestellt, dass ich am Anfang der Route eine Abfrage getDeviceFeatureBySelector durchführe, die einfach durch einen RAM-Cache-Aufruf ersetzt werden könnte.

Ich habe die Abfrage entfernt, hoppla, schon halbiert sich die Anzahl der Abfragen!

Dann habe ich festgestellt, dass der Aufruf der Ansicht „Letzte 24 Stunden“ nicht über die aggregierten Daten, sondern über die Live-Daten erfolgt :thinking:

Tatsächlich fehlte dieser Fall in den Abfragen, und anstatt eine Berechnung aus den aggregierten Daten durchzuführen, wurden die Live-Daten verwendet (was viel langsamer ist).

Durch die Verwendung der aggregierten Daten kann ich sicherstellen, dass die Abfrage maximal 288 States zurückgibt, was super klein ist (ich weiß nicht, in welchen Abständen Daten eingefügt werden? Wie viele States werden in 24 Stunden geschrieben?)

Ich finalisiere alles und halte dich auf dem Laufenden, wenn ein neues Image zum Testen bereit ist!

Hop, neues Build verfügbar unter dem Tag:

gladysassistant/gladys:chart

Wie immer mit allen Korrekturen oben drauf :slight_smile:

@Terdious freue mich auf dein Feedback zur Performance!

Nach einem Pull heute Morgen :+1:

Das, was mich stört, hängt mit der „Diskussion“ Device-Name oder Feature-Name zusammen.
Man kann sehen, dass ich, wenn ich eine korrekte Legende möchte (die mir hilft, versteht sich!), die Features umbenennen muss.

Mein erstes Diagramm zeigt die Temperaturen der Zimmer

  • Blau => mein Sohn
  • Rot => meine Tochter
  • Gelb => mein Zimmer

Für mich ergibt es keinen Sinn, das Feature nach den Vornamen umzubenennen.

Sollte die Legende also nicht den Namen des Devices verwenden?

Das ist wunderschön! :heart_eyes:

Das macht mich wahnsinnig, diese Diskussion :joy:

Das Problem ist, dass jeder Fall einzigartig ist. In deinem Fall ergibt es Sinn, aber im Fall von @Terdious ergibt es überhaupt keinen Sinn. Es wird also immer jemanden geben, der frustriert ist (schlagt euch :stuck_out_tongue: )

@VonOx Kommen die Geräte aus welcher Integration?

Wie machen das andere Smart-Home-Boxen?

Oder beide anzeigen?

So:

Temperatur (Raum XXX) - Temperatur (Raum YYY)

Z2M

Wenn ich mein Feature in dieser Box umbenenne, werde ich überall den Vornamen meines Sohnes haben

Man überschreibt einfach die Legende

Bearbeitung: @Terdious ist nervig :grin:

Da ist kein Platz für mich, und zu viele Infos töten die Info :grinning:

Ich stelle auf meiner Seite eine deutliche Steigerung der Ladegeschwindigkeit der Grafiken fest. Was früher bis zu 5 Sekunden dauern konnte, dauert jetzt nur noch 1 bis 2 Sekunden! :clap: Bravo für die Optimierung!

Wenn alle Entwickler so wären wie du, bräuchte das Web nicht so viel Rechenleistung :sweat_smile:

Aha danke :slight_smile: Das ist mein Metier, die Performance. Ich bin nebenbei Backend-Ingenieur und mein Leben besteht darin, solide Infrastrukturen, schnelle Backends und Optimierungen zu machen, ich liebe das :stuck_out_tongue:

Hallo !!

Docker-Logs
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

[/details] device.calculateAggregate.js:105 (ChildProcess.) device.calculateAggregate: Verarbeitung für Intervall täglich abgeschlossen
2021-10-15T06:05:10+0200 device.calculateAggregate.js:38 (DeviceManager.calculateAggregate) Berechnung von Aggregaten für Gerätemerkmalszustand für Intervall monatlich
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: Aggregat nach monatlich, ab Do Okt 15 2020 06:05:35 GMT+0200 (Mitteleuropäische Sommerzeit), 226 Zeilen zurückgegeben
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: Aggregat nach monatlich, ab Do Okt 15 2020 06:05:35 GMT+0200 (Mitteleuropäische Sommerzeit), 229 Zeilen zurückgegeben
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: Aggregat nach monatlich, ab Do Okt 15 2020 06:05:35 GMT+0200 (Mitteleuropäische Sommerzeit), 236 Zeilen zurückgegeben
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 device.calculateAggregate.js:105 (ChildProcess.) device.calculateAggregate: Verarbeitung für den monatlichen Zeitraum wird abgeschlossen

Info-Seite Web

Die erste Ladung dauert immer etwa 10 Sekunden

Allerdings ist mein Dashboard, das eine Mischung aus Geräteboxen, Kamera und 3 Kurven enthält, sehr/ausreichend schnell:

Docker-Logs
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: Aggregation stündlich, ab Do Okt 14 2021 06:22:08 GMT+0200 (Mitteleuropäische Sommerzeit), 138 Zeilen zurückgegeben
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: Aggregation täglich, ab Fr Okt 08 2021 06:22:08 GMT+0200 (Mitteleuropäische Sommerzeit), 7 Zeilen zurückgegeben
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: Aggregation täglich, ab Fr Okt 08 2021 06:22:08 GMT+0200 (Mitteleuropäische Sommerzeit), 0 Zeilen zurückgegeben
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: Aggregation täglich, ab Fr Okt 08 2021 06:22:08 GMT+0200 (Mitteleuropäische Sommerzeit), 7 Zeilen zurückgegeben
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: Aggregation täglich, ab Fr Okt 08 2021 06:22:08 GMT+0200 (Mitteleuropäische Sommerzeit), 7 Zeilen zurückgegeben
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: Aggregation täglich, ab Fr Okt 08 2021 06:22:08 GMT+0200 (Mitteleuropäische Sommerzeit), 0 Zeilen zurückgegeben
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: Aggregation täglich, ab Fr Okt 08 2021 06:22:08 GMT+0200 (Mitteleuropäische Sommerzeit), 7 Zeilen zurückgegeben
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-Seite Web

Ergebnis: Nur eine dedizierte Dashboard-Ansicht ist langsam. Ich habe 18 „Test“-Kurven darauf. Aber das stört mich nicht, und es ist in Ordnung. Diese Ansicht wird entweder selten angezeigt oder auf einer Ansicht auf einem dedizierten Tablet in Zukunft.

Wenn ich dasselbe Beispiel wie @VonOx nehme, dann würde ich, wenn ich die Namen der Features nicht nehme, 3x3 Mal denselben Gerätenamen haben, was keinen Sinn mehr macht. Es ist bereits kompliziert, weil man die Anzeigereihenfolge nicht ändern kann. Jede „Energie“ und „Gesamtenergie“ wäre also nicht unterscheidbar:

Es gibt zahlreiche Lösungen, um niemanden zu frustrieren. Aber wenn es nicht möglich ist, dann ist es egal, ich habe keine Lust, dass jemand wegen meiner Anfragen oder Vorschläge „bestraft“ wird. Ich gebe das Thema auf ^^ Das einzige Thema ist, dass im Moment mehrere Personen den Hinweis geben, dass es unmöglich ist, bestimmte Geräte in den Auswahlen zu unterscheiden. Wie kann man das lösen, ohne dass der Benutzer gezwungen ist, fiktive Geräte oder Szenen zu erstellen, um sie zu verwalten (Tasmota Multi-Steckdosen usw.). Damals (vor mehr als einem Jahr) hatte ich den Vorschlag gemacht, die Geräte (Typ Dual oder CH4 von Sonoff) mit mehreren Schaltern in mehrere Geräte zu trennen.

:sweat_smile: Ich werde es in Zukunft vermeiden ^^ :kissing_heart: