Q&A Highcharts - Multigraph V1.0

Hi Raketenschnecke,

Habs grad nochmal im http://www.ip-symcon.de/forum/threads/17625-Highcharts-Multigraph?p=120721#post120721 versucht. Funzt leider noch nicht :frowning:

sunni.

Warte einfach ein wenig.

paresy hat heute am Webserver etwas geändert.

Ich denke das dauert noch ein wenig bis alles wieder wie gewohnt läuft.

das hatter schon behoben (kurz vor meinem letzten Posting), ich hatte es auch probiert: bei mir ging es, eben auch…

Yep! Jetzt klappts! :smiley:
Na dann kanns ja losgehen :slight_smile:

Ich hab mal ne Frage zur Performance. Die Googlecharts werden bei mir fast unsichbar aktualisiert. Das geht unheimlich fix. Anders die Highcharts. Bei mir ist es so, dass wenn ich das Config-Script triggere zunächst das Chart verschwindet. Danach wird der Bereich weiß und es dauert es gut 1-2 sekunden bis das neue Chart kommt. Zuerst kommen die Achsen und dann die Graphen. Auch der Aufbau der Graphen ist recht träge und scheint mir irgendwie wie eine Animation abzulaufen. Kann man das Beschleunigen? Wünschenswert wärte ein Just-in-time Update des Charts ohne dass dieses verschwindet. Am Netzwerk kanns meiner meinung nach nicht liegen. Habe Gigabit Ethernet und im Server werkelt eine SSD. Ist das verhalten vielleicht normal? Zudem ist kein Performanceunterschied festzustellen zwischen Zugriff auf Webfront aus Internet und lokalem Netzwerk.

@ Admins:
Das sollte eigentlich ins Highchart V2.0 rein. Bitte mal verschieben.

das hängt stark davon ab, wieviele Datenpunkte im Graphen und wieviele Graphen im Chart sind. Mit ‚vernünftigen‘ Datenmengen (ca 2-500 Datensätze pro Graph) läuft das sehr performant. Siehe auch dazu meine Postings weiter oben.

Ich hab eben mal testweise ein komplexes Chart im WFE aufgerufen (Chrome, 2 Graphen a ca 300 Werte, 1 Graph ca 1000 Werte), gefühlt hat die Aktualisierung im WFE 500ms gedauert. Sprich: das Chart ist kurz weg und taucht dann (animiert) wieder auf

Ich habe das Script in dieser Version bei mir laufen. Funktioniert soweit, vielen Dank!

Allerdings entspricht der Zuwachs täglich der DB-Größe. Das soll doch sicher nicht so sein, oder?

Grüße
galleto

Wird das Chart eigentlich immer kompolett neu aufgebaut?
Ich habe mal in der Doku auf highcharts.com nachgelesen und folgendes Gefunden

After a chart has been defined by the configuration object, optionally preprocessed and finally initialized and rendered using new Highcharts.Chart(), we have the opportunity to alter the chart using a toolbox of API methods. The chart, axis, series and point objects have a range of methods like update, remove, addSeries, addPoints and so on. The complete list can be seen in the API Reference under „Methods and Properties“ at the left.

Ich könnte mir vorstellen, dass man damit ein schnelleres Updage bewerkstelligen könnte.

Aber selbst wenn man gigantische Datenmengen heißt das noch nicht zwangsläufig, dass dann auch der Grafikaufbau langsam geht. Wenn Highcharts performant programmiert worden wäre, dann könnte man die Daten im Hintergrund aktualisieren. Erst wenn alle Daten dann geladen sind wird die Grafik aktualisiert. So machen das eigentlich die meisten Charkompinenten wie zum Beispiel auch Teechart PHP von http://www.steema.com/products/teechart/php/demos/Features/index.html
Wir verwenden bei uns zum Beispiel die VCL Version für Delphi und stellen damit Zeitreihen dar, die mehrere Hunderttausend Werte haben können.

nur häöngt hier ein gewaltiges JS dazwischen, was die Daten abarbeitet. Das will ja auch erstmal abgearbeitet werden.

Klar bietet auch HC das datenstreaming an, es hält dich sicher niemand davon ab, das hier zu integrieren:D

Nur frag ich mich, ob Aufwand und Mehrwert im vernünftigen Verhältnis stehen: was soll ich mit +500 Werten pro Graph?

Hi Galleto,

doch, das ist korrekt: die Variable „IPS-DB Größe“ ist hierbei als Variable mit „Standard-Aggregation“ konfiguriert, die variable „IPS-DB Zuwachs“ als Variable mit „Zähler-Aggregation“, in beide Vars werden die identischen Werte reingeschrieben.

So kann man mit IPS-Bordmitteln (IPS-Graph) Zuwachs und Größe prima visualisieren:

Klar sind 500 Werte pro Chart viel, aber meine Solaranlage erzeugt halt nun mal alle 60Sekunden einen Wert und wenn ich da shcon einen einzigen Tagesgang darstellen will hab ich 1440 Werte. Wenn ich dann noch die verschiednen Einteltemperature (Specher oben, Speicher Mitte, Vorlauf, Rücklauf usw) drin habe wird ziemlich viel. Bishe rhabe ich noch nicht rausgefunden, wie ich die Daten vorfiltern kann, damit es weniger wird. Das Multichart selbst macht ja bei der Darstellung eine Filterung, was aber nicht heißt, dass genau nur die gefilterten Daten aus der DB gelesen werden.

na das liegt ja an dir. Ich hab datenquellen, die erzeugen alle 3Sekunden einen datensatz. Ist halt eine Frage des Konzepts: was will ich darstellen und wie setz ich es um. Man kann ja mit HighCharts an 2 Stellen die Verdichtung der Daten vorwählen… Nur wenn man die Werkzeuge nicht nutzt, die man hat, muss das nicht an den Werkzeugen liegen

Ah, die Info fehlte mir! Danke für die raketenschnelle Antwort!

IPS re-aggregiert gerade… :wink:

Grüße
galleto

Danke für die Info. Klar gibt es für alles eine Lösung, aber diese zu finden ist nicht immer leicht, zumal nicht alles perfekt dokumentiert ist. Zum Glück gibt es ja das Forum in dem einem geholfen wird, jedenfalls von manchen Usern. Von andern bekommt man nur die eigene Unkenntnis vorgehalten. :mad:

Ach ja und ich hab es mal im Highchartconfig-Script auf Stundenwerte für 2 Tage umgestellt und es ändert sich nichts am Timing. Ist genauso langsam.

man kann z.B. konkrete Fragen stellen, dann ist die Wahrscheinlichkeit hoch, dass nicht nur Antworten, sondern auch Lösungen kommen.
Ansonsten ist mir hier noch kein User aufgefallen, der beim Beantworten von Support-Anfragen Wissen vorenthält :wink: Und wenn wir und die jüngsten Postings mal anschauen, würde ich sagen: ich hab jede deiner Fragen nach bestem Wissen und Gewissen beantwortet. Oder?

Hallo zusammen,
warum posten z.Z. wieder so viele in dieses Thema ‚Q&A Highcharts - Multigraph V1.0‘ ?
Ihr wollt mir doch nicht weiß machen, dass Ihr noch mit der 1.0 arbeitet.
HierQ&A Highcharts V2.0 wären eure Posts mit Sicherheit besser aufgehoben.

@ ThomasWest69: Wenn Du von RS hilfreiche Antworten möchtest solltest Du folgende Punkte in einem Post beachten:

  1. Nenne klar Dein Ziel
  2. Gib Ihm alle zur Lösung erforderlichen Informationen (die sind anfangs nicht für jeden Fragesteller transpartent, aber RS fragt ja auch nach. Nur auf die Nachfragen sollte man auch richtig Antworten).
  3. Poste Screenshots, Fehler/Meldungen/Ergebnisse und Scripte die es dem Supporter ermöglichen evtl unklare Bescheibungen zu interpretieren.
    Ich hab das Thema mit RS schon durch. Zwischen durch war er echt sauer mit mir, weil ich auf seine Fragen wohl die falschen Antworten gegeben habe und er in falsche Richtungen ermittelt hat. Ich hoffe dass das meinerseits nicht mehr vorkommt. Lies mal einige Fragen und Antworten in den Themen mit RS, dann merkst du schnell wie RS tickt und bekommst lösungsorientierte Hilfe.

danke, Wolfgang, für die sehr plastische Charakterisierung :smiley:
zumindest nicht ganz daneben.

Die Alternative wäre, hier weiter in einem völlig veralteten Thread rumzunörgeln und sich am Ende zu ärgern, weil die Welt ja sooo böse ist. :smiley: Ich dachte, das wäre das Ziel der Aktion hier, deshalb hab ich mal mitgespielt :wink:

Hallo Leute,

erstmal danke für die Implementierung, hatte ich in 10 min am Laufen. Super!
Ich häng hier nur an zwei Punkten, das können aber auch grundsätzlich Denkfehler sein :confused:

  1. Meine Graphen (es sollen zum Schluß 7 Stück sein, einer pro Raum) sollen jeweils einen Raum zeigen. Hierbei auch die Ventilstellung. Blöderweise gibt Homematic die Ventilöffnung von 0-250 an. Da Prozentwerte von 0-100% natürlich besser zu lesen sind, gebe ich dem Wert einfach das Profile „HM-Ventilstellung“, dann ist in IPS alles soweit gut. Wenn ich nur aber diesen Wert (Adjusting Data) direkt in das Skript schreibe, holt sich das Skript wieder den Integer wert und zerfräst mir dadurch natürlich auch meine rechte Y-Achse. Muß ich das manuell umrechnen??

  2. Muß ich für jeden Raum eine eigene HTML Variable erzeugen und diese dann manuell ins Webfrontend einbinden oder kann man die gleich an das Thermostat binden? Wäre doch sehr schön, wenn man auf dem Raum klickt, dann dem Plot sieht und drunter dann die üblichen Einstellungen bzgl. der HM Thermostate.

Besten Dank schon jetzt für Eure Tipps.

Gruß

Peter

nein, du kanns hier den ScaleFactor einsetzen, in deinem Beispiel:

$serie['ScaleFactor']     = 1/2.5;

du kannst auch alle Config-Files auf die selbe Stringvar verweisen lassen. Angezeigt wird dann immer das zuletzt aktualisierte HighChart.
Diesen Ansatz hat bbernhard mal sehr schön aufgebohrt: http://www.ip-symcon.de/forum/threads/18446-Energiemonitoring-im-WF?highlight=highchart

Hallo Peter,

warum nimmst Du nicht die Variable des Stellmotors, der zeigt doch seine Öffnung von 0% - 100% an.