IPSHighcharts

Hallo Andreas,

das hier habe ich im Config-File von khc gefunden.

$serie['RoundValue'] = 1; // Anzahl der Nachkommastellen

Ich denke das müsste es doch sein?
Nur leider weiss ich nicht, wie/wo ich es in der Library mit einpflegen muss?

So sieht das bei mir aus. Bei Temperaturen ja ok, aber die Spritpreise sollten schon mit 2 Nachkommastellen geplottet werden.


Danke u. Grüße,
Doc

Einfach in die Callback Funktion einbauen:



	function IPSHighcharts_BeforeBuildChart($varID, $chartID, &$CfgDaten) {
 		$CfgDaten['series'][0]['RoundValue'] = 1; // Anzahl der Nachkommastellen
	}


Hallo Andreas,

das hatte ich so schon versucht, hatte allerdings nicht geklappt.
Hatte verm. noch einen Tipfehler drin, jetzt gehts zumindest.
Allerdings sieht das Ergebnis immer noch Scheixxe aus.


Liegt das an zu wenigen Datenpunkten?
Das Multichart von IPS sieht mit den gleichen Daten besser aus.
Kann man da bei den HighCharts noch was einstellen?

Gibt es eine gute Doku zu den HighCharts wo die Möglichkeiten und die versch. Charts beschrieben sind?
Hatte parallel schon mal mit RS_Spielwiese getestet, aber ohne die genaue Beschreibung ist das doch recht komplex.

Danke u. Grüße,
Doc

Hallo Doc,

wie siehts denn mit den IPS-Multicharts aus? Screenshot?

Ich find die RS Spielwiese mit einfachen Charts nicht komplex. Ist relativ gut dokumentiert. Hilfe gefällig? Post in HighchartsPHP.

Die HighCharts Doku findest Du unter HC-Doku, Beispiele unter Demos.

Hallo Wolfgang,

das IPS Chart hat nicht so viele Diagonallinien. Die Flanken steigen hier schnellen an oder fallen ab.
Die Doku hier im Forum und bei HC hatte ich schon gefunden. Die Demoseite war mir noch neu gibt aber einen s hönen Überblick.

Was ich z.B. nicht gefunden habe ist wie man die Auflösung verändert. Bei den Raketenschnecke Beispielen wird das immer nur auf eine Stunde runtergebrochen beim Plotten. Das müsste doch genauer gehen?
Auch fehlt es mir an einer Auflistung, welche verschiedenen Linienplots es gibt, also wie die heißen.
Jetzt mit den Demos wird das evtl. einfacher.

Grüße,
Doc

Hallo Doc,

Wenn ich mir Deinen Chart ansehe, ist das aber genau das was Du an Daten hast. Ich glaube kaum, dass die die Preise noch öfters ändern.

Bevor Du dir einen Wolf suchts, vergleich mal die Daten aus der DB mit denen im Chart.

Weitere Linien-Typen sind: spline (ich denke das ist das was Du aktuell suchst) und dann noch die Versionen mir Area, also arealine und areaspline und noch die Kombinationen mit range (die sind in IPSHighcharts glaub ich nicht möglich).

Dann gibts da noch die SerieOption Step = true/right/center/left/false. Damit kannst Du die schrägen Flanken komplett in senkrechte ändern.

Ich nutze die IPSHighcharts nicht, auch ziehe ich meine HC-Daten nicht aus der IPS-DB, aber in der ersten Version von KHC gabs in der Config einen Abschnitt der das Laden der Daten in verschiedenenAggregationsstufen beschreibt:

    // Serienübergreifende Einstellung für das Laden von Werten
    $CfgDaten['AggregatedValues']['HourValues'] = -1;      // ist der Zeitraum größer als X Tage werden Stundenwerte geladen
    $CfgDaten['AggregatedValues']['DayValues'] = -1;       // ist der Zeitraum größer als X Tage werden Tageswerte geladen
    $CfgDaten['AggregatedValues']['WeekValues'] = -1;      // ist der Zeitraum größer als X Tage werden Wochenwerte geladen
    $CfgDaten['AggregatedValues']['MonthValues'] = -1;      // ist der Zeitraum größer als X Tage werden Monatswerte geladen
    $CfgDaten['AggregatedValues']['YearValues'] = -1;          // ist der Zeitraum größer als X Tage werden Jahreswerte geladen
    $CfgDaten['AggregatedValues']['NoLoggedValues'] = 1000;     // ist der Zeitraum größer als X Tage werden keine Boolean Werte mehr geladen, diese werden zuvor immer als Einzelwerte geladen    $CfgDaten['AggregatedValues']['MixedMode'] = false;     // alle Zeitraumbedingungen werden kombiniert
    $CfgDaten['AggregatedValues']['MixedMode'] = false;
    // Systematik funktioniert jetzt additiv. D.h. die angegebenen Werte gehen ab dem letzten Wert
    //
    //            -5 Tage           -3 Tage                        EndTime
    // |           |                  |                             |
    // |           |DayValue = 2     |HourValues = 3          |
    // |Tageswerte |Stundenwerte     |jeder geloggte Wert     |

Weitere Hinweise:
HC will die Timestamps in ms, d.h. man muss die timestamps mit 1000 multiplizieren. (Evtl. ist das ja schon in IPSHighcharts integriert, so das man das nict mehr explizit von Hand machen muss.)
Bis zur HC-Version 2.X (danach hab ich die Changelogs nicht mehr genau verfolgt) konnte HC nur 1000 Datenpunkte pro Serie.

Hallo Wolfgang,

was ich suche ist die Möglichkeit, die Plots halt rechtwinkelig zu bekommen, also einen steilen Anstieg wenn sich der Wert ändert und nicht das eine Kurve daraus gezeichnet wird.
Kann man das nicht irgendwo beeinflussen?
Die anderen Sachen habe ich durch ausprobieren in den RS_Scripten gefunden.

Grüße,
Doc

Ich glaube du meinst

$serie['step'] = true;

Das steht ja schon drin :confused:

$chart->series[$S_ID]->step 	= true;

Es muss doch möglich sein einen Graphen so erzeugen zu lassen, das er rechteckig plottet.
Wie macht ihr das denn, wenn ihr die Solltemperaturen mit anzeigen lasst. Das ist doch von einem Wert zum anderen auch keine Kurve sondern verläuft senkrecht nach oben/unten?

Grüße,
Doc

$chart->series[$S_ID]->step = false;

sorry,war ein Kalter, gerade noch mal nachgeschaut, true sollte richtig sein.

Ja das hatte ich natürlich auch schon getestet.
Leider finde ich bei den Beispielen von HC nichts, was dem gleicht.
Aber ich denke, ihr wisst schon was ich meine?
Oder habe ich da noch einen anderen Denkfehler drin?

   // Diesel Star heute
   $S_ID++;
   $RoundedValue                                            = 3;
   $chart->series[$S_ID]->name										= "Star";
	$chart->series[$S_ID]->data 										= IPS_Array_to_HCData($RoundedValue, array_reverse(AC_GetAggregatedValues(AC_HANDLER_ID, $Star, 0, $ts, $te, 100)));
	$chart->series[$S_ID]->stack 										= 'yesterday';
	$chart->series[$S_ID]->zIndex 									= 90;
	$chart->series[$S_ID]->type 										= "spline";
	$chart->series[$S_ID]->step 										= false;
	$chart->series[$S_ID]->yAxis 										= 1;
	$chart->series[$S_ID]->visible 									= true;
	$chart->series[$S_ID]->showInLegend 							= true;
	$chart->series[$S_ID]->enableMouseTracking 					= true;
	$chart->series[$S_ID]->color 										= 'rgba(19,120,62, 1.0)';
	$chart->series[$S_ID]->shadow 									= false;
	$chart->series[$S_ID]->dashStyle 								= NULL;
	$chart->series[$S_ID]->lineWidth 								= 2;
	$chart->series[$S_ID]->states->hover->lineWidth 			= 2;
	$chart->series[$S_ID]->states->lineColor 						= 'rgba(255,255,255,1.0)';
	$chart->series[$S_ID]->marker->enabled 						= false;
	$chart->series[$S_ID]->marker->symbol 							= 'circle';
	$chart->series[$S_ID]->marker->lineWidth 						= 0;
	$chart->series[$S_ID]->marker->states->hover->enabled 	= true;
	$chart->series[$S_ID]->marker->states->hover->symbol 		= 'circle';
	$chart->series[$S_ID]->marker->states->hover->radius 		= 4;
	$chart->series[$S_ID]->marker->states->hover->lineWidth	= 1;
	$chart->series[$S_ID]->marker->states->hover->lineColor	= 'rgba(255,255,255,1.0)';

Grüße,
Doc

Hallo Doc,

habs bei meinen Spritpreisen eben mal getestet. Geht nicht. Hab verschiedene Werteformate getestet, ohne Erfolg.

Bei Temperaturdaten funktionierts. Keine Ahnung warum.

…hmmm, geht nicht, gibts doch nicht, oder?
Liegt das evtl. an den kleinen Werten oder Wertänderungen?
Warum sollte es bei Temperaturen gehen?

Müsste man mal testen, die Preise als Cent zu loggen um ausreichend große Werte zu haben.

Danke u. Grüße,
Doc

So,

habs nochmal mit Cent-Werten probiert.
Leider gleiches Ergebnis.
Hast du evtl. mal ein Bild, wie es bei dir mit Temperaturwerten aussieht im Vergleich zu den Spritpreisen?
Ich kann das nicht nachstellen.

Grüße,
Doc

Hallo Doc,

habe schnell mal eines reingeklopft, also nicht auf Schönheit überprüfen.

 $chart->series[$S_ID]->step           = true;

funktioniert hier.

Hier mal der Ausschnitt meiner Config für Raketenschnecke´s Erweiterung nebst Screenshot aus meinem WFE.

################### Chart Series ##################################################################################################
 $S_ID                                                  = 0;                 // Series-ID
 // Gesamt
 $RoundedValue                                            = 3;
 $chart->series[$S_ID]->name          = "Diesel";
 $chart->series[$S_ID]->data           = IPS_Array_to_HCData($RoundedValue, array_reverse(AC_GetAggregatedValues(AC_HANDLER_ID, 45406 /*[Energie\PV-Anlage\Ertragswerte\Tagesertrag]*/, 0, $ts, $te, 1500)));
 $chart->series[$S_ID]->zIndex          = 2;
 $chart->series[$S_ID]->type           = "line";
 $chart->series[$S_ID]->step           = true;
 $chart->series[$S_ID]->yAxis           = 0;
 $chart->series[$S_ID]->visible          = true;
 $chart->series[$S_ID]->lineWidth         = 1.0;
 $chart->series[$S_ID]->borderWidth         = 0.0;
 $chart->series[$S_ID]->pointWidth         = $pixel_width;
 $chart->series[$S_ID]->dataLabels->enabled     = $label;
 $chart->series[$S_ID]->dataLabels->rotation     = 270;
 $chart->series[$S_ID]->dataLabels->x       = 20;
 $chart->series[$S_ID]->dataLabels->y       = -20;
 $chart->series[$S_ID]->dataLabels->style->color    = '#FFFFFF';
 $chart->series[$S_ID]->dataLabels->inside      = false;
 $chart->series[$S_ID]->showInLegend        = true;
 $chart->series[$S_ID]->enableMouseTracking      = true;
 $chart->series[$S_ID]->color           = $hcColor['PV']['Gesamt'];
 $chart->series[$S_ID]->shadow          = true;
 $chart->series[$S_ID]->marker->enabled       = false;
 $chart->series[$S_ID]->tooltip->valueSuffix              = '&nbsp€';
 

   // Vorjahr
   $S_ID++;
   $RoundedValue                                            = 3;
   $chart->series[$S_ID]->name          = "E10";
 $chart->series[$S_ID]->data           = IPS_Array_to_HCData($RoundedValue, array_reverse(AC_GetAggregatedValues(AC_HANDLER_ID, 51206 /*[Energie\PV-Anlage\Ertragswerte\Tagesertrag]*/, 0, $ts, $te, 1500)));
 $chart->series[$S_ID]->zIndex          = 1;
 $chart->series[$S_ID]->type           = "line";
 $chart->series[$S_ID]->step           = true;
 $chart->series[$S_ID]->yAxis           = 0;
 $chart->series[$S_ID]->visible          = true;
 $chart->series[$S_ID]->lineWidth         = 1.0;
 $chart->series[$S_ID]->borderWidth         = 0.0;
 $chart->series[$S_ID]->pointWidth         = $pixel_width;
 $chart->series[$S_ID]->dataLabels->enabled     = false;
 $chart->series[$S_ID]->dataLabels->enabled     = $label;
 $chart->series[$S_ID]->dataLabels->rotation     = 270;
 $chart->series[$S_ID]->dataLabels->x       = 20;
 $chart->series[$S_ID]->dataLabels->y       = -20;
 $chart->series[$S_ID]->dataLabels->style->color    = '#FFFFFF';
 $chart->series[$S_ID]->showInLegend        = true;
 $chart->series[$S_ID]->enableMouseTracking      = true;
 $chart->series[$S_ID]->color           = $hcColor['Strom']['VorjahrBorder'];
 $chart->series[$S_ID]->shadow          = true;
 $chart->series[$S_ID]->marker->enabled       = false;
 $chart->series[$S_ID]->tooltip->valueSuffix              = '&nbsp€';


Hallo zusammen,

hab den Fehler bei mir gefunden: hatte Step statt step. Dann wird einfach ohne Fehlermeldung ignoriert.

@Doc: Du hat in Deinem letzten Code, Post51, noch step=false

Hab mir Deine Config einfach mal in mein Script kopiert und verglichen/ausprobiert.

Mit ChartTyp spline funktionierts nicht. Muss line sein.

Also ändere einfach mal step auf true und type auf line.

Was macht denn

$chart->series[$S_ID]->stack  = 'yesterday';

?
Ich dachte die Stack-Optionen sind zum stapeln von Serien.

Ist der Dieselpreis gefaked … :wink: :smiley:

Gruß
Bruno

:smiley: [OT]Nö. Derzeit befinden sich die Ölpreise im freien Fall. Anscheinend hat das jemand aus Versehen weitergegeben.[/OT]

Hallo zusammen,

Ja mit Line hatte ich bei Werner schon gesehen. Hatte ich jetzt noch nicht probiert. Teste heute Abend mal.
Step war bei mir schon auf true und woher das yesterday kommt weiss ich nicht. Stammt aus den RS Beispielen.
Jetzt fehlt nur noch eine Variable mit dem Rohölpreis im Hindergrund.

Danke Euch für die Hilfe.
Doc

Gesendet von meinem HTC One mit Tapatalk 2

Und eine Var. mit dem Dollar/Euro-Kurs :wink: