Q&A Highcharts - Multigraph V1.0

ist ziemlicher Unsinn. Eine Variable mit Temperaturwerten hat nichts mit einer Zähler-Variable zu tun. Nimmt man das raus sieht das Chart etwa so aus:

Ja das ist wirklich mist habe es auskommentiert aber der Chart bleibt leer.:confused: Noch eine Idee was da falsch sein kann oder ärger bereitet ?

Die Texte und Varriablen wollte ich am Ende noch richtig erweitern aber erstmal sollte irgendeine linie zu sehen sein. Ist dann besser mit dem Testen.

Danke erstmal fürs helfen
Daniel

taste dich mal ganz langsam ran: erstmal mit einem Graphen versuchen, dann den nächsten usw… Und immer auf evtl. Fehlermeldungen sdes Sripts (unten in der Konsole) achten.

Habe den Fehler gefunden, habe nocheinmal alle Daten in den Highcharts Ordner gelöscht und neu entpackt und nun läuft es. :smiley:

Warum ist mir nicht klar aber es läuft … wohl irgendeine datei nicht richtig entzippt gewesen.

Danke dafür. Klappt gut.

cu…

Ich habe die Erträge meiner PV-Anlage per HC visualisiert. Dank wgreipl sogar pro Monat und pro Jahr mit Soll und Ist. Jetzt suche ich nach einer Möglichkeit eine zusätzliche Zahl mit im Label anzeigen zu lassen; die Quote.
Ich habe Soll und ich habe Ist … wie bekomme ich also die Quote ins gleiche Label? Hat jemand eine Idee?

So ist es aktuell gelöst:

<?

	// => ab V1.0004, damit kann der Script auch von anderen Scripten aufgerufen werden und bereits mit CfgDaten vorkonfiguriert werden
	Global $CfgDaten; //$CfgDaten = array();

	if($IPS_SENDER == "WebFront")
	{
	  	SetValue($IPS_VARIABLE, $IPS_VALUE);
	}

   $year = date('Y', time());
   $year = GetValue(28289 /*[Scripte\Highcharts_V1.0005\PV-Anlage pro Monat\Dummy Module\Highcharts_Jahre]*/  );
   
	// Überschriften
	$CfgDaten["Title"]= "PV Ertrag $year";
	$CfgDaten["SubTitle"]= ""; // "" = Automatisch über Zeitraum

	// IPS Variablen ID´s
	$CfgDaten["ArchiveHandlerId"] = IPS_GetInstanceListByModuleID('{43192F0B-135B-4CE7-A0A7-1475603F3060}');
	$CfgDaten["ArchiveHandlerId"] = $CfgDaten["ArchiveHandlerId"][0];
	
	$CfgDaten["ContentVarableId"]= 57676 /*[Scripte\Highcharts_V1.0005\PV-Anlage pro Monat\PV-Anlage Graphen pro Monat]*/ ;  			// ID der Content-Variable
	$CfgDaten["HighChartScriptId"]= 32779 /*[Scripte\Highcharts_V1.0005\Highcharts_V1.0005]*/ ;  // ID des Highcharts Scripts


	// Zeitraum welcher dargestellt werden soll
	$CfgDaten["StartTime"] = mktime(0,0,0,1,1, $year); // ab heute 00:00 Uhr
	$CfgDaten["EndTime"] = mktime(23,59,59, 12, 31, $year); // ab heute 23:59 Uhr, oder //$CfgDaten["EndTime"] = time();   // = bis jetzt

	// => ab V1.0003
	$CfgDaten["RunMode"]= "script"; 	//oder script

	// => ab V1.0003
	// Serienübergreifende Einstellung für das Laden von Werten
	$CfgDaten["AggregatedValues"]["HourValues"] = 3;      // ist der Zeitraum größer als X Tage werden Stundenwerte geladen
	$CfgDaten["AggregatedValues"]["DayValues"] = 14;       // ist der Zeitraum größer als X Tage werden Tageswerte geladen
	$CfgDaten["AggregatedValues"]["NoLoggedValues"] = 60; // 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["Series"][] = array("Id"=>57373 ,
	"AggType"=>3,
	"Name" =>"Ertrag in kWh",
	"Unit"=>NULL,
	"ReplaceValues"=>false,
	"Param" =>"type:'line',
	color: '#FFFF55',
	threshold: 0.5,
	fillOpacity: 0.5,
	step :false,
	yAxis: 0,
	shadow: false,
	lineWidth: 2,
	states: {hover:{lineWidth: 3}},
	marker: { enabled: true,
		states: { hover: { enabled: true, radius: 4}}}");

	// Y-Achsen
	$CfgDaten["yAxis"][] = array("Name" =>"Ertrag in kWh", "Unit"=>"kWh","Opposite"=>false,"TickInterval"=>100, "alternateGridColor"=>"#FDFFD5");
	
// => ab V1.0002
	// HighchartConfig String
	$CfgDaten["HighChartCfg"]= true;  // false = default String wird verwendet

		$CfgDaten["HighChartCfg"]="
			credits: {
				enabled: false
			},
			chart: {
				renderTo: 'container',
	         defaultSeriesType: 'line',
	         zoomType: 'x'

			},
		   plotOptions: {
         	series: {
            	animation: { duration: 2000 },
            	pointWidth: 30 // Balkenbreite
        		},
    		},
			title: {
				text: '%title.text%',
				//x: -20
			},
			subtitle: {
				text: '%subtitle.text%'
				//x: -20
			},
			exporting: {
				buttons: {
					printButton: {
						enabled: false
					},
					exportButton: {
						enabled: false
					}
				}
			},
      	legend: {
	        layout: 'vertical',
	        backgroundColor: '#1f2f40',
	        align: 'left',
	        verticalAlign: 'top',
	        floating: true,
	        x: 100,
	        y: 0
		   },
			xAxis: [{
				type: 'datetime',
				 dateTimeLabelFormats: { second: '%H:%M:%S',
					minute: '%H:%M',
					hour: '%H:%M',
					day: '%e. %b',
					week: '%e. %b',
					month: '%B',
					year: '%Y'
				 },
				 labels: {
				   rotation: 0 // Rotation der X-Achsen-Beschriftung
				 },
				 tickInterval: 30*24*3600*1000, //30 Tage x 24 Std. x 3600 sek x 1000ms - 30 Tage = Monat
 	         title: {
 	           text: 'Zeitraum: Monate'
              //align: 'center'
        		}

			}],
			yAxis: [	%yAxis% ],
			tooltip: {
				shared: true,
				crosshairs: true,
			},
			series: [
						 {name: 'Sollwert in kWh',
						  type:'column',
						  color: '#505760',
						  threshold: 0.5,
						  fillOpacity: 0.1,
						  step :true,
						  yAxis: 0,
						  shadow: false,
						  lineWidth: 0,
						  states: {hover:{lineWidth: 1}},
						  marker: { enabled: false, states: { hover: { enabled: false, radius: 4}}},
												  data:[ [Date.UTC($year, 0, 1, 00,00,00),148.78],
															[Date.UTC($year, 1, 1, 00,00,00),229.04],
															[Date.UTC($year, 2, 1, 00,00,00),369.71],
															[Date.UTC($year, 3, 1, 00,00,00),435.38],
															[Date.UTC($year, 4, 1, 00,00,00),484.43],
															[Date.UTC($year, 5, 1, 00,00,00),475.92],
															[Date.UTC($year, 6, 1, 00,00,00),486.46],
															[Date.UTC($year, 7, 1, 00,00,00),460.92],
															[Date.UTC($year, 8, 1, 00,00,00),384.3],
															[Date.UTC($year, 9, 1, 00,00,00),290.66],
															[Date.UTC($year, 10, 1, 00,00,00),176.75],
															[Date.UTC($year, 11, 1, 00,00,00),111.48]
														]
						}, %data%
					  ]
 		});";

	// Alle 	$CfgDaten["HighChart"] Parameter werden an das IP_Template übergeben
	// Highcharts-Themes
	$CfgDaten["HighChart"]["Theme"]="ips.js";   // von Highcharts mitgeliefert: dark-green.js, dark-blue.js, gray.js, grid.js

	// Abmessungen des erzeugten Charts
	$CfgDaten["HighChart"]["Width"] = 0; 	// in px,  0 = 100%
	$CfgDaten["HighChart"]["Height"] = 700; 	// in px

	// und jetzt los ......
	$s=IPS_GetScript($CfgDaten["HighChartScriptId"]);      // Id des Highcharts-Scripts
	include($s['ScriptFile']);

  	// => ab V1.0003
  	// hier werden die CfgDaten geprüft und bei Bedarf vervollständigt
	$CfgDaten = CheckCfgDaten($CfgDaten);

	// => ab V1.0003
	if (isset($CfgDaten["RunMode"]) && $CfgDaten["RunMode"] == "script")
	{
		// Variante1: Übergabe der ScriptId. Daten werden beim Aufruf der PHP Seite erzeugt und direakt übergeben. Dadurch kann eine autom. Aktualisierung der Anzeige erfolgen
		if ($IPS_SENDER != "WebInterface")
		{
			WriteContentWithScriptId ($CfgDaten, $IPS_SELF);     	// und jetzt noch die ContentTextbox
			return;                                               // Ende, weil durch die Zuweisung des Script sowieso nochmals aufgerufen wird
		}

		$sConfig = CreateConfigString($CfgDaten);             	// erzeugen und zurückgeben des Config Strings
	}
	else
	{
		//Variante2: Übergabe des Textfiles. Daten werden in tmp-File gespeichert. Eine automatische Aktualisierung beim Anzigen der Content-Textbox erfolgt nicht
		$sConfig = CreateConfigString($CfgDaten);             // erzeugen und zurückgeben des Config Strings
		$tmpFilename = CreateConfigFile($sConfig, $IPS_SELF);            // und ab damit ins tmp-Files
		if ($IPS_SENDER != "WebInterface")
		{
			WriteContentWithFilename ($CfgDaten, $tmpFilename);        // und jetzt noch die ContentTextbox
		}
	}



?>

nun, da gibt es verschiedene Möglichkeiten. Ganz grob gesprochen sehe ich spontan 2 Möglichkeiten:

  1. Du loggst den Quote-Wert zusätzlich als separate Variable in IPS mit und stellst diese im Diagramm dar (ist wohl die am schnellsten umsetzbare Möglichkeit)
  2. du baust die Quote über die formatter-Funktion ins Tooltip ein

wahrscheinlich gibt es noch weitere Möglichkeiten (z. B. statt formatter die FooterFormat-Funktion zu nutzen), aber ich würde zunächst mal die o.g. 2 Möglichkeiten evaluieren

Ich befürchte das geht in meinem Fall nicht, da ich mir im Moment den kumilierten Monatswert errechne, also den errechneten Wert den ich in der Monatsanzeige an dem heutigen Tag haben sollte. Da dies aber kein Zählerwert ist wird er mir im Graph als Linie bzw. x-Balken angzeigt. Aggergiere ich ihn nach Zähler wird mir nur die Differenz zu dem jeweiligen Vortag angezeigt. Oder gibt es hier eine Möglichkeit den errechneten Wert in eine Variable purzeln zu lassen?

Leider geht das mit der „formatter“-Funktion nicht:

this.percentage (not shared) / this.points[i].percentage (shared)
Stacked series and pies only. The point’s percentage of the total.

Bei mir sind es aber zwei Variablen und die sind

tooltip: { shared: true,

Im HC Script, innerhalb von „series“ habe ich nun folgendes eingetragen:

			series: [
						 {name: 'Sollwert in kWh',
						  type:'column',
						  color: '#505760',
						  threshold: 0.5,
						  fillOpacity: 0.1,
						  step :true,
						  yAxis: 0,
						  shadow: false,
						  lineWidth: 0,
						  states: {hover:{lineWidth: 1}},
						  marker: { enabled: false, states: { hover: { enabled: false, radius: 4}}},
												  data:[ [Date.UTC($year, 0, 1, 00,00,00),148.78],
															[Date.UTC($year, 1, 1, 00,00,00),229.04],
															[Date.UTC($year, 2, 1, 00,00,00),369.71],
															[Date.UTC($year, 3, 1, 00,00,00),435.38],
															[Date.UTC($year, 4, 1, 00,00,00),484.43],
															[Date.UTC($year, 5, 1, 00,00,00),475.92],
															[Date.UTC($year, 6, 1, 00,00,00),486.46],
															[Date.UTC($year, 7, 1, 00,00,00),460.92],
															[Date.UTC($year, 8, 1, 00,00,00),384.3],
															[Date.UTC($year, 9, 1, 00,00,00),290.66],
															[Date.UTC($year, 10, 1, 00,00,00),176.75],
															[Date.UTC($year, 11, 1, 00,00,00),111.48]
														],
						},
						{name: 'Quote',
						  // type:'column',
						  color: '#7FFF00',
						  threshold: 0.5,
						  fillOpacity: 0.1,
						  step :true,
						  yAxis: 0,
						  shadow: false,
						  lineWidth: 0,
						  states: {hover:{lineWidth: 1}},
						  marker: { enabled: false, states: { hover: { enabled: false, radius: 4}}},
												  data:[ [Date.UTC($year, 0, 1, 00,00,00),148.78],
															[Date.UTC($year, 1, 1, 00,00,00),229.04],
															[Date.UTC($year, 2, 1, 00,00,00),369.71],
															[Date.UTC($year, 3, 1, 00,00,00),435.38],
															[Date.UTC($year, 4, 1, 00,00,00),484.43],
															[Date.UTC($year, 5, 1, 00,00,00),475.92],
															[Date.UTC($year, 6, 1, 00,00,00),486.46],
															[Date.UTC($year, 7, 1, 00,00,00),460.92],
															[Date.UTC($year, 8, 1, 00,00,00),384.3],
															[Date.UTC($year, 9, 1, 00,00,00),290.66],
															[Date.UTC($year, 10, 1, 00,00,00),176.75],
															[Date.UTC($year, 11, 1, 00,00,00),111.48]
														],
						}, %data%
					  ]
 		});";

Aussehen tut das dann so: (siehe Anhang)

Nun muss ich nur noch die berechnete Variable einfügen und berechnen lassen. Geht sowas?

Tasten wir uns mal langsam ran:

ich denke, wichtig wäre zunächst mal, dass das Datenfundament sauber ist, auf dem man aufsetzen will. Wenn Du Monatswerte als Balken darstellen willst ist das kein Problem und setzt eine als „Zähler“ eingestellte Variale voraus. Monatsbalken erhält man, wenn man der „series“ den Parameter „AggType“ mit gibt. „AggType“=>3 wäre eine monatliche Verdichtung und Darstellung.

innerhalb der Formatter-Funktion auch Code ausführen lassen. wie das in diesem Falle genau aussehen muss, kann ich auch nicht sagen, JS ist für mich noch „im Trüben fischen“.

hier mal ein Beispiel, was ich mir mühselig zusammengeklöppelt habe: hier läuft eigener Code innerhalb der Formatter-Funktion ab, um dann einen korrekt formatierten HTML-String ins Tooltip zu übergeben (die PHP-Variablen habe ich ganz oben im Config-Script mit werten versehen und hier einfach eingefügt):


formatter: function() {
            
				
				// Berechnung Datum für WebCam-Pic des heutigen Tages
					var graph_timestamp 	= Highcharts.dateFormat('%Y%m%d%', this.x) ;
					var now              = new Date();
					var now_timestamp		= Highcharts.dateFormat('%Y%m%d%', now);
					var start_webcam     = '20111008';

					if (graph_timestamp < start_webcam) // wenn Datensatz-Auswahl vor 08.10.2011 liegt
					{
						return 	'<b>' + 'sorry, Aufzeichnungsbeginn der<br>Webcambilder ist der 08.10.2011' + '</b><br><br><b>' +
										Highcharts.dateFormat('%d.%m.%Y', this.x) + '</b><br>' + '<b>'+ this.series.name +'</b>: '+ this.y + unit;
					}
					else if (now_timestamp == graph_timestamp) // wenn Datensatz-Auswahl der heutige Tag und Uhrzeit vor 12:00 Uhr ist -> dann Pic mit dyn. Timestamp
					{
						return 	'$ReturnString_start' + Highcharts.dateFormat('%Y', this.x) + '/' + Highcharts.dateFormat('%m', this.x) + '/' +
										Highcharts.dateFormat('%d', this.x) + '/mbx01_' + Highcharts.dateFormat('%H%M', new Date()) + '$ReturnString_last' +
										'<br><b>' + Highcharts.dateFormat('%d.%m.%Y', this.x) + '</b><br>' + '<b>'+ this.series.name +'</b>: '+ this.y + unit;
					}
					else     // wenn Datensatz-Auswahl der heutige Tag und Uhrzeit nach 12:00 Uhr ist ist -> dann Pic mit dyn. Timestamp
					{
						return 	'$ReturnString_start' + Highcharts.dateFormat('%Y', this.x) + '/' + Highcharts.dateFormat('%m', this.x) + '/' +
										Highcharts.dateFormat('%d', this.x) + '/mbx01_' + '1200' + '$ReturnString_last' + '<br><b>' +
										Highcharts.dateFormat('%d.%m.%Y', this.x) + '</b><br>' + '<b>'+ this.series.name +'</b>: '+ this.y + unit;
					}
            }

Du hast natürlich vollkommen recht … meine Variable „Ertrag in kWh“ ist vom Aggregationstyp Zähler. In meinen HC Script formatiere ich sie auch entsprechend

	$CfgDaten["Series"][] = array("Id"=>57373 ,
	"AggType"=>3,
	"Name" =>"Ertrag in kWh",
	"Unit"=>NULL,
	"ReplaceValues"=>false,
	"Param" =>"type:'line',
	color: '#FFFF55',
	threshold: 0.5,
	fillOpacity: 0.5,
	step :false,
	yAxis: 0,
	shadow: false,
	lineWidth: 2,
	states: {hover:{lineWidth: 3}},
	marker: { enabled: true,
		states: { hover: { enabled: true, radius: 4}}}");

Wie kann ich jedoch unter „series“ meine obrige Variable nochmals verwenden? Geht das?
Ich habe es schon mit dem beliebten GetValue probiert … Fehlermeldung. Ich schliesse jedoch nicht aus das es an mir liegt. :wink:

Schön meine PN kommentiert :wink:

Aber wie in meinem Zitat zu sehen ist habe ich das Problem das ich meinen kumulierten Monatswert, also das was die PV im Moment als Ertrag haben sollte, als Zahlenwert je Tag.

Füge ich diesen jetzt in HC ein wird mir dieser fortlaufend angezeigt. Bei Graphtyp „line“ als Linie, siehe Screenshot, und bei „column“ als zig Balken.

Hat vielleicht jemand eine Idee wie ich den letzten, also höchsten Wert je Monat, in HC einbinden kann so dass nur ein Balken oder Punkt erscheint?

Ich war froh, als Du mir geschrieben hattest wie es an sich aussieht. So treffend erklärt hätte ich es nicht können. :wink:
Bitte nicht auf den Schlips getreten fühlen.

Was ist wenn Du gar keinen „Type“ mitgibst? Dann sollte es doch im Label auftauchen, jedoch nicht im Diagramm.

Ich habe das bei mir so:

						{name: 'Quote in %',
						  // type:'column',
						  color: '#7FFF00',
						  threshold: 0.5,
						  fillOpacity: 0.1,
						  step :true,
						  yAxis: 0,
						  shadow: false,
						  lineWidth: 0,
						  states: {hover:{lineWidth: 1}},
						  marker: { enabled: false, states: { hover: { enabled: false, radius: 4}}},
												  data:[ [Date.UTC($year, 0, 1, 00,00,00),148.78/2],
															[Date.UTC($year, 1, 1, 00,00,00),229.04],
															[Date.UTC($year, 2, 1, 00,00,00),369.71],
															[Date.UTC($year, 3, 1, 00,00,00),435.38],
															[Date.UTC($year, 4, 1, 00,00,00),484.43],
															[Date.UTC($year, 5, 1, 00,00,00),475.92],
															[Date.UTC($year, 6, 1, 00,00,00),486.46],
															[Date.UTC($year, 7, 1, 00,00,00),460.92],
															[Date.UTC($year, 8, 1, 00,00,00),384.3],
															[Date.UTC($year, 9, 1, 00,00,00),290.66],
															[Date.UTC($year, 10, 1, 00,00,00),176.75],
															[Date.UTC($year, 11, 1, 00,00,00),111.48]
														],
						},

eingebunden. Screenshot wie es dann aussieht findest Du hier.

Hi honk,

ich glaub, wir sollten mal sortieren und der reihe nach vorgehen: definier doch bitte mal, was du mit Quote genau meinst

Ok. Gute Idee. :smiley:
Ich meine mit Quote das Verhältnis von Soll zu Ist. Ein Beispiel: Soll = 100, Ist = 50, Quote = 50 %
Das Soll gebe ich per


data:[ 
[Date.UTC($year, 0, 1, 00,00,00),148.78],
[Date.UTC($year, 1, 1, 00,00,00),229.04],
[Date.UTC($year, 2, 1, 00,00,00),369.71],
[Date.UTC($year, 3, 1, 00,00,00),435.38],
[Date.UTC($year, 4, 1, 00,00,00),484.43],
[Date.UTC($year, 5, 1, 00,00,00),475.92],
[Date.UTC($year, 6, 1, 00,00,00),486.46],
[Date.UTC($year, 7, 1, 00,00,00),460.92],
[Date.UTC($year, 8, 1, 00,00,00),384.3],
[Date.UTC($year, 9, 1, 00,00,00),290.66],
[Date.UTC($year, 10, 1, 00,00,00),176.75],
[Date.UTC($year, 11, 1, 00,00,00),111.48]
],

mit. Das Ist ist die Variable „Ertrag in kWh“ (float, Zähler).

ok, dann sehe ich nur 2 Möglichkeiten:

  1. du packst sowohl das Array der Sollwerte in eine Stringvariable (ins IPS), weiterhin ebenfalls die berechneten Quote-werte als weiteres Array in eine weitere Stringvariable. Dann werden die Arrays im HC-Config-Script jeweils einer Variable zugewiesen. Diese beiden variablen können dann zusätzich als „Series“ an das HC-Script übergeben werden, Beispiel:

yAxis: [	%yAxis% ],
		series: [
							{name: 'max. Sonnenstand', type:'spline', tooltip: {valueDecimals: 2}, yAxis: 0,  visible: true, color: '#AEAEAE', shadow: false, lineWidth: 1, showInLegend: true, enableMouseTracking: true,
								states: {hover:{lineWidth: 1}}, zIndex: 100, marker: { enabled: false, states: { hover: { enabled: false, radius: 4}}},
								data:[$Sonnenstand_jahr_forecast]
							},
							%data%
					  ],

  1. du berechnest doe Quote im formatter, Beispielcode hatte ich ja schon gepostet. Der Formatter ist eine Callback-Funktion, die die Werte unter dem Mauszeiger zurück gibt. Damit müsste man dann arbeiten. Da ich JS nicht beherrsche, kann ich hier nicht viel weiter helfen.
    Wahrscheinlich ist aber Var. 1 die schnellere/einfachere Lösung

Variante 1 passt mir an sich ganz gut, da ich ebenfalls keine Aktien in JS habe. Hierzu „verbrauche“ ich zwar zwei zusätzliche Variblen, aber das ist sicher zu verschmerzen. :wink:
Leider ist es aber so, dass ich ebenfalls nicht sooo der Profi in IPS bin. :wink:
Wie packe ich

sowohl das Array der Sollwerte in eine Stringvariable (ins IPS), weiterhin ebenfalls die berechneten Quote-werte als weiteres Array in eine weitere Stringvariable. Dann werden die Arrays im HC-Config-Script jeweils einer Variable zugewiesen. Diese beiden variablen können dann zusätzich als „Series“ an das HC-Script übergeben werden
?

EDIT: Wenn ich es mir recht überlege, dann ist Variante 2 vllt. doch die bessere. Ich habe ja alle Werte schon! Wieso soll ich sie nochmal irgend wo ablegen/berechnen? Kennt sich jemand mit JS aus und kann hier weiter helfen?

Hallo!

Mal eine Frage, wieso bekomme ich eine extra Linie im Chart?

// Zeitraum welcher dargestellt werden soll
	$CfgDaten["StartTime"] = mktime(0,0,0, date("m", time()), date("d",time())-2, date("Y",time())); // ab heute 00:00 Uhr
	$CfgDaten["EndTime"] = mktime(23,59,59, date("m", time()), date("d",time()), date("Y",time())); // ab heute 23:59 Uhr, oder //$CfgDaten["EndTime"] = time();   // = bis jetzt

ab 3Tagen sieht alles ok aus. Hab’s mit mehreren Browsern probiert…

Gruss, Michael

Das sieht verdammt nach dem Durchschnitt aus…hast Du bei den Variablen im Skript irgendeine Average Funktion aktiv ?

Sieht für mich eher nach start und end-Wert aus.
@mibu: poste mal Deine „$CfgDaten“

er hat wahrscheinlich die Datensortierung nicht aktiv, die Daten kommen nicht in der richtigen Reihenfolge an.

im HighChart-Scipt muss die krsort-Funktion aktiv gemacht werden (// rausnehmen, Zeile 490)


		//sortieren, so , dass der aktuellste Wert zuletzt kommt
		//		krsort($LoggedData);