Q&A Highcharts V2.0

Hä? das versteh ich nju wieder nicht?! das macht es doch einfacher?! Aber egal, Du musst Dich damit wohl fühlen :wink:

PS: wenn man genau auf den Screenshot schaut, sieht man auch ein schönes Beispiel, warum ich das gemacht habe. Durch das kreuz-und quer-Kopieren schleichen sich Fehler ein („copy&waste“). In didesem Fall hab ich glatt vergessen, dem letzten Parameter auch den richtigen Array-Index zu verpassen…ts ts ts deshalb: eine Key-Var am Anfang defnieren und gut iss.

Nee, ist schon klar das es dadurch einfacher wird, aber ich meinte jetzt erstmal einen Schritt den verstehen und dann den nächsten.

oder man macht es so

	
$axis = array();
$axis['title']['text'] = "Achse0";
$CfgDaten['yAxis'][] = $axis;

$axis = array();
$axis['title']['text'] = "Achse1";
$CfgDaten['yAxis'][] = $axis;

Danke khc,
das hebe ich mir noch auf. Ich kämpfe immer noch mit der Wochen , Monatsanzeige.

Habe das jetzt im Script stehen:

	$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'] = 6;      // ist der Zeitraum größer als X Tage werden Wochenwerte geladen
	$CfgDaten['AggregatedValues']['MonthValues'] = 23;      // ist der Zeitraum größer als X Tage werden Monatswerte geladen
	$CfgDaten['AggregatedValues']['YearValues'] = 335;      	// 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'] = true;

Und die Grafiken sehen so aus.

MixMode ist aus meiner Sicht in Ordnung, aber wenn ich den auf False ändere werden mir wieder Stundenwerte angezeigt, ich verstehe das einfach nicht.

Wie müssten denn die Einstellungen sein wenn ich bei:

Tagesansicht = Stundenwerte
Wochenansicht = Tageswerte
Monatsansicht = Wochenwerte
Jahresansicht = Monatswerte

sehen möchte?

Hallo @hbraun,

erst mal noch ein paar Fragen.

1.) Handelt es sich bei die dargestellte Variable um eine Zähler- oder eine Standard-Variable.
Bei Zählervariablen können nur Stunden/Tages/Wochen/… Werte angezeigt werden.

2.) Hast Du in der Serie einen AggType eingestellt. Dieser wird vorrangig gegenüber den AggregatedValues behandelt. Sprich wenn Du dort eine AggType = 0 stehen hast werden nur Stundenwerte angezeigt.

Grüße KHC

Hallo khc,

  1. ist eine Zählervariable
  2. Muss ich schauen, bastel es mir ja zum Teil aus den Beispielen zusammen.

Aber habe jetzt ja schon wieder was gelernt, danke.

Ups - da war wirklich noch ein Fehler in der Auswertung der AggregattedValues im Highcharts-Script . Fehler ist in V2.01 behoben.

Grüße KHC

Habe es hinbekommen, lag am tickInterval

Hallo,

ich habe noch ein wenig Probleme mit der Skalierung, es soll ja so gehen:

    $CfgDaten["yAxis"][1]['min'] = 0;
    $CfgDaten["yAxis"][1]['max'] = 100;
    $serie['yAxis'] = 1;

Bei mir sieht es aber so wie in angehängter Grafik aus.

Ich bin aktuell dabei alle HC V1.0008 nach V2.0 zu migrieren.
VIELEN DANK dafür an khc; die neuen Scripte sind deutlich übersichtlicher geworden!!
Hierbei hat sich jedoch für mich einiges geändert. Ich möchte lines und columns mischen. Alles sind Variablen im System. Aussehen soll es dann später so: Klick mich

Ich weiß jetzt nur leider nicht wie ich die Sollwerte und die Quote übergeben kann.
Sollwert:

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

Quote:

[Date.UTC(2012,0, 1, 00, 00, 00),97.3],
[Date.UTC(2012,1, 1, 00, 00, 00),117.3],
[Date.UTC(2012,2, 1, 00, 00, 00),111],
[Date.UTC(2012,3, 1, 00, 00, 00),107.2],
[Date.UTC(2012,4, 1, 00, 00, 00),27.7],

Ich habe es schon versucht einzubinden:

$PV_Ertrag_Soll = getValueString(57861 /*[Program\SMA Webbox\Sollwerte Monate]*/  );
   $PV_Quote      = getValueString(23512 /*[Program\SMA Webbox\Quote Monate]*/  );
// SOLL-Werte
	$serie = array();
	$serie['name'] = "Column";
	$serie['Unit'] = "kWh";
	$serie['ReplaceValues'] =false;
	$serie['type'] = "column";
	$serie['step'] = false;
	$serie['yAxis'] = 0;
	$serie['shadow'] = true;
	$serie['states']['hover']['lineWidth'] = 2;
	$serie['marker']['enabled'] = false;
	$serie['marker']['states']['hover']['enabled'] = true;
	$serie['marker']['states']['hover']['symbol'] = 'circle';
	$serie['marker']['states']['hover']['radius'] = 4;
	$serie['marker']['states']['hover']['lineWidth'] = 1;
	$CfgDaten['data'] = array($PV_Ertrag_Soll);

Das will jedoch nicht klappen.

Hallo honk,

die Daten liegen in einem Format vor, die HC so nicht verarbeiten kann.

Im Config-Script müssen diese als Array wie folgt übergeben werden:


Array
(
    [0] => Array
        (
            [TimeStamp] => 1336809588
            [Value] => 0.09
        )

    [1] => Array
        (
            [TimeStamp] => 1336809408
            [Value] => 0.09
        )

    [2] => Array
        (
            [TimeStamp] => 1336806886
            [Value] => 0.09
        )


anschließend werden die Daten via


$serie 															= array("Id"=>0,
																					"Data" => $SolarData,

übergeben ($SolarData ist der Name des oben gezeigten Arrays)

Das bedeutet also, dass Deine damaliges Script (guckst Du hier) keinerlei Früchte mehr trägt? Was ist das für ein Datumsformat?

ja, das bedeutet es. In der damaligen Version habe ich Dir einen Datenstring gebaut, der an einer ganz anderen Stelle (als jetzt) und in einem - für HC fertigen Format eingefügt wird.
In der V2.0 ist es nun möglich, die externen Datenstrings so einzufügen , dass sie trotzdem vom HC-Script vollständig berücksichtigt werden. Hier hat KHC ein definiertes Format vorgegeben, welches sich von meinem Format unterscheidet (was nicht dramatisch ist)

Wenn ich nun aber z.B.:

// SOLL-Werte
	$serie = array();
	$serie['name'] = "Column";
	$serie['Unit'] = "kWh";
	$serie['ReplaceValues'] =false;
	$serie['type'] = "column";
	$serie['step'] = false;
	$serie['yAxis'] = 0;
	$serie['shadow'] = true;
	$serie['states']['hover']['lineWidth'] = 2;
	$serie['marker']['enabled'] = false;
	$serie['marker']['states']['hover']['enabled'] = true;
	$serie['marker']['states']['hover']['symbol'] = 'circle';
	$serie['marker']['states']['hover']['radius'] = 4;
	$serie['marker']['states']['hover']['lineWidth'] = 1;
	$CfgDaten['data'] = Array('TimeStamp'=>1336809588,'Value' => 100) ;

mitgebe, dann zeigt er nichts an.

Würde hier auch ein:

	$CfgDaten['data'] = array('TimeStamp'=>time($year, 1, 1, 00,00,00),'Value'=>229.04);

funktionieren?

bau mal dieses Code-Schnipselchen in dein Config-Script ein:


$Solldaten_ID     =49380  /*[z01 Test Temp\HC PV Beispiel honk\PV Ertrag Soll monatlich]*/;
$Solldaten_value  = getValuestring($Solldaten_ID);

// Solldaten in automatisch indiziertes Array einlesen
$rawData          =explode(" ",$Solldaten_value);
for($i =0;$i<count($rawData); $i++)
{
	$Data[$i]     		= explode(",", $rawData[$i]);
}

// Array-Keys anpassen
for($i =0;$i<count($Data)-1; $i++)
{
   $ext_data[$i]['TimeStamp']      	= $Data[$i][0];
	$ext_data[$i]['Value']      		= $Data[$i][1];
	$ext_data[$i]['human_date']      	= date("d.m.Y H:i", $ext_data[$i]['TimeStamp']);

}

die das Array übergibst Du dann z.B. so:


$serie             = array("Data" => $ext_Data,

PS: ich geh mal davon aus, dass du die Solldaten noch nach meinem Vorschlag in der String-Var abgelegt hast (und auch in dem Format):


"TimestampUNIX","Sollwert"(Leerzeichen)"TimestampUNIX","Sollwert"... 

Ja, ich habe nicht sonderlich etwas geändert, außer das ich das Jahr als $year übergebe. Das kommt dabei heraus.

Warning: date() expects parameter 2 to be long, string given in C:\IP-Symcon\scripts\59181.ips.php on line 27

Notice: A non well formed numeric value encountered in C:\IP-Symcon\scripts\59181.ips.php on line 27

Warning: date() expects parameter 2 to be long, string given in C:\IP-Symcon\scripts\59181.ips.php on line 27

Notice: A non well formed numeric value encountered in C:\IP-Symcon\scripts\59181.ips.php on line 27

Warning: date() expects parameter 2 to be long, string given in C:\IP-Symcon\scripts\59181.ips.php on line 27

Notice: A non well formed numeric value encountered in C:\IP-Symcon\scripts\59181.ips.php on line 27

Warning: date() expects parameter 2 to be long, string given in C:\IP-Symcon\scripts\59181.ips.php on line 27

Notice: A non well formed numeric value encountered in C:\IP-Symcon\scripts\59181.ips.php on line 27

Warning: date() expects parameter 2 to be long, string given in C:\IP-Symcon\scripts\59181.ips.php on line 27

Notice: A non well formed numeric value encountered in C:\IP-Symcon\scripts\59181.ips.php on line 27

Warning: date() expects parameter 2 to be long, string given in C:\IP-Symcon\scripts\59181.ips.php on line 27

Notice: A non well formed numeric value encountered in C:\IP-Symcon\scripts\59181.ips.php on line 27

Warning: date() expects parameter 2 to be long, string given in C:\IP-Symcon\scripts\59181.ips.php on line 27

Notice: A non well formed numeric value encountered in C:\IP-Symcon\scripts\59181.ips.php on line 27

Warning: date() expects parameter 2 to be long, string given in C:\IP-Symcon\scripts\59181.ips.php on line 27

Notice: A non well formed numeric value encountered in C:\IP-Symcon\scripts\59181.ips.php on line 27

Warning: date() expects parameter 2 to be long, string given in C:\IP-Symcon\scripts\59181.ips.php on line 27

Notice: A non well formed numeric value encountered in C:\IP-Symcon\scripts\59181.ips.php on line 27

Warning: date() expects parameter 2 to be long, string given in C:\IP-Symcon\scripts\59181.ips.php on line 27

Notice: A non well formed numeric value encountered in C:\IP-Symcon\scripts\59181.ips.php on line 27

Warning: date() expects parameter 2 to be long, string given in C:\IP-Symcon\scripts\59181.ips.php on line 27

Notice: A non well formed numeric value encountered in C:\IP-Symcon\scripts\59181.ips.php on line 27

Warning: date() expects parameter 2 to be long, string given in C:\IP-Symcon\scripts\59181.ips.php on line 27

Notice: A non well formed numeric value encountered in C:\IP-Symcon\scripts\59181.ips.php on line 27

Notice: Undefined variable: ext_Data in C:\IP-Symcon\scripts\59181.ips.php on line 175

Übergeben wird das:

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

dann haste falsch abgeschrieben. Zeig mal dein Script und den Inhalt aus der String-Variable (1:1 hier rein kopieren)

Ich hoffe nicht …

<?php
	// bei der Konfiguration unbedingt auf die Groß/Kleinschreibung achten
	// es wurde versucht folgende Namensgebeung in der Konfiguration zu verwenden
	// Parameter mit kleinen Anfangsbuchstaben = Parameter welche von Highcharts übnernommen wurden. Siehe dazu: http://www.highcharts.com/ref/
	// Parameter mit großen Anfangsbuchstaben = für das IPS-Highcharts-Script eingeführte Parameter

	Global $CfgDaten; // damit kann der Script auch von anderen Scripten aufgerufen werden und bereits mit CfgDaten vorkonfiguriert werden

   $year = GetValue(28289 /*[Scripte\Highcharts_V2.00\PV-Anlage pro Monat\Dummy Module\Highcharts_Jahre]*/  );
   $PV_Quote      = getValueString(23512 /*[Program\SMA Webbox\Quote Monate]*/  );
   
   $Solldaten_ID     =57861 /*[Program\SMA Webbox\Sollwerte Monate]*/ ;
	$Solldaten_value  = getValuestring($Solldaten_ID);

	// Solldaten in automatisch indiziertes Array einlesen
	$rawData          =explode(" ",$Solldaten_value);
	for($i =0;$i<count($rawData); $i++)
	{
   $Data[$i]             = explode(",", $rawData[$i]);
	}

	// Array-Keys anpassen
	for($i =0;$i<count($Data)-1; $i++)
	{
   $ext_data[$i]['TimeStamp'] = $Data[$i][0];
   $ext_data[$i]['Value'] = $Data[$i][1];
   $ext_data[$i]['human_date'] = date("d.m.Y H:i", $ext_data[$i]['TimeStamp']);
	}

	// IPS Variablen ID´s
	$CfgDaten['ContentVarableId']= 57676 /*[Scripte\Highcharts_V2.00\PV-Anlage pro Monat\PV-Anlage Graphen pro Monat]*/;  // ID der String Variable in welche die Daten geschrieben werden (-1 oder überhaupt nicht angeben wenn die Content Variable das übergordnete Element ist)
	$CfgDaten['HighChartScriptId']= 32779 /*[Scripte\Highcharts_V2.00\Highcharts_V2.00]*/;  				// ID des Highcharts Scripts
	
	// Zeitraum welcher dargestellt werden soll (kann durch die Zeitvorgaben in den Serien verändert werden)
	$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
	
	// damit wird die Art des Aufrufes festgelegt
	$CfgDaten['RunMode'] = "script"; 	// file, script oder popup
	
   // Tooltip anpassen
   $CfgDaten['tooltip']['shared']=true;
   $CfgDaten['tooltip']['crosshairs']=true;
   $CfgDaten['tooltip']['formatter']="";
   $CfgDaten['tooltip']['useHTML ']=true;
//   $CfgDaten['tooltip']['valueSuffix ']= " kWh";

	// 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']['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'] = 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['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     |

	// **************************************************************************************
	// *** Highcharts Options ***
	// **************************************************************************************
	// Ab hier werden die Bereiche des Highchart-Objektes parametriert.
	// Dieser Bereich wurde (soweit möglich) identisch der Originalstruktur gehalten.
	// Informationen über die Parametrierung findet man unter http://www.highcharts.com/ref/

	// **************************************************************************************
	// *** chart *** http://www.highcharts.com/ref/#chart
	// **************************************************************************************
	// $CfgDaten['chart']['zoomType'] = "'x'";			//default: $CfgDaten['chart']['zoomType'] = "'xy'";

	// **************************************************************************************
	// *** credits *** siehe http://www.highcharts.com/ref/#credits
	// **************************************************************************************
	// $CfgDaten['credits']['text'] = "used by IPS";
	// $CfgDaten['credits']['href'] = "http://www.ip-symcon.de/forum/f53/highcharts-multigraph-v1-0-a-17625/#post120721";

	// **************************************************************************************
	// *** title *** siehe http://www.highcharts.com/ref/#title
	// **************************************************************************************
	// $CfgDaten['title']['text'] = "Chart-Überschrift";  // Überchrift des gesamten Charts
	//		-> veraltet: 'Title' -> verwende ['title']['text']

	$CfgDaten['title']['text'] = "PV Ertrag $year";

	// **************************************************************************************
	// *** subtitle *** siehe http://www.highcharts.com/ref/#subtitle
	// **************************************************************************************
	// $CfgDaten['subtitle']['text'] = "Zeitraum: %STARTTIME% - %ENDTIME%" // Sub-Überschrift. Wenn nichts angegeben wird wird dieser String als Default verwendet
	//		-> veraltet: 'SubTitle' -> verwende ['subtitle']['text']
	// $CfgDaten['subtitle']['Ips']['DateTimeFormat'] = "(D) d.m.Y H:i"	// z.B.: "(D) d.m.Y H:i" (wird auch als Default herangezogen wenn nichts konfiguriert wurde)
	//		-> veraltet: 'SubTitleDateTimeFormat' -> verwende ['subtitle']['Ips']['DateTimeFormat']
	//    -> entfallen: 'SubTitleFormat' ->unnötiger Paramter, wird jetzt in ['subtitle']['text'] angegeben

	$CfgDaten['subtitle']['text'] = "Zeitraum: %STARTTIME% - %ENDTIME%";
	$CfgDaten['subtitle']['Ips']['DateTimeFormat'] = "(D) d.m.Y H:i";

	// **************************************************************************************
	// *** tooltip *** http://www.highcharts.com/ref/#tooltip
	// **************************************************************************************
	//$CfgDaten['tooltip']['enabled'] = false;

	// **************************************************************************************
	// *** exporting *** http://www.highcharts.com/ref/#exporting
	// **************************************************************************************
	//$CfgDaten['exporting']['enabled'] = true;

	// **************************************************************************************
	// *** lang *** http://www.highcharts.com/ref/#lang
	// **************************************************************************************
	//$CfgDaten['lang']['resetZoom'] = "Zoom zurücksetzten";

	// **************************************************************************************
	// *** legend *** http://www.highcharts.com/ref/#legend
	// **************************************************************************************
	//$CfgDaten['legend']['backgroundColor'] = '#FCFFC5';

	// **************************************************************************************
	// *** xAxis *** http://www.highcharts.com/ref/#xAxis
	// **************************************************************************************
	//$CfgDaten['xAxis']['lineColor'] = '#FF0000';
	//$CfgDaten['xAxis']['plotBands'][] = array("color"=>'#FCFFC5',"from"=> "@Date.UTC(2012, 3, 29)@","to"=> "@Date.UTC(2012, 3, 30)@");

	// **************************************************************************************
	// *** yAxis *** http://www.highcharts.com/ref/#yAxis
	// **************************************************************************************
	// $CfgDaten['yAxis'][0]['title']['text'] = "Temperaturen"; // Bezeichnung der Achse
	//		-> veraltet: 'Name' und 'TitleText' -> verwende ['title']['text']
	// $CfgDaten['yAxis'][0]['Unit'] = "°C";	// Einheit für die Beschriftung die Skalenwerte
	//	$CfgDaten['yAxis'][0]['min'] = 0; // Achse beginnt bei Min (wenn nichts angegeben wird wird der Min der Achse automatisch eingestellt)
	//	$CfgDaten['yAxis'][0]['max'] = 40; // Achse geht bis Max (wenn nichts angegeben wird wird der Max der Achse automatisch eingestellt)
	//		-> veraltet: 'Min' und 'Max'
	//	$CfgDaten['yAxis'][0]['opposite'] = false; // Achse wird auf der rechten (true) oder linken Seite (false) des Charts angezeigt (default = false)
	//		-> veraltet: 'Opposite'
	//	$CfgDaten['yAxis'][0]['tickInterval'] = 5; // Skalenwerte alle x (TickInterval)
	//		-> veraltet: 'TickInterval'
	//    -> entfallen: 'PlotBands' -> verwende ['yAxis'][0]['plotBands'],  (siehe Beispiel 'cfg - drehgriff und tf-kontakt')
	//    -> entfallen: 'YAxisColor' -> verwende ['yAxis'][0]['title']['style']
	//    -> entfallen: 'TitleStyle'-> verwende ['yAxis'][0]['title']['style']

	$CfgDaten['yAxis'][0]['title']['text'] = "Ertrag in kWh";
	$CfgDaten['yAxis'][0]['Unit'] = "kWh";
	$CfgDaten['yAxis'][0]['opposite'] = false;
	$CfgDaten['yAxis'][0]['tickInterval'] = 100;

	// **************************************************************************************
	// *** series *** http://www.highcharts.com/ref/#series
	// **************************************************************************************
	// $CfgDaten['name'] = "Temperatur; // Name der Kurve (Anzeige in Legende und Tooltip)
	//		-> veraltet: 'Name' -> verwende ['name']
	// $CfgDaten['Unit'] = "°C"; // Anzeige in automatisch erzeugtem Tooltip
	// 	wenn $CfgDaten['Unit'] = NULL; // oder Unit wird gar nicht definiert, wird versucht die Einheit aus dem Variablenprofil automatisch auszulesen
	// $CfgDaten['ReplaceValues'] = false; // Werte werden wie geloggt übernommen
	// $CfgDaten['ReplaceValues'] = array(0=>0.2,1=>10) // der Wert 0 wird in 0.2 geändert, der Wert 1 wird in 10 geändert
	//   	das macht für die Darstellung von Boolean Werte Sinn, oder für Drehgriffkontakte (Werte 0,1,2)
	// $CfgDaten['type'] = 'spline'; // Festlegung des Kuventypes (area, areaspline, line, spline, pie, Column)
	// $CfgDaten['yAxis'] = 0; // Nummer welche Y-Achse verwendet werden soll (ab 0)
	// 	-> veraltet: 'Param' -> verwende die Highcharts Parameter - sollte eigentlich noch so funktionieren wie in IPS-Highcharts V1.x
	// $CfgDaten['AggType'] = 0 // Festlegung wie die Werte gelesen werden soll (0=Hour, 1=Day, 2=Week, 3=Month, 4=Year), hat Vorrang gegenüber den Einstellungen in AggregatedValues
	//    wird kein AggType definiert werden alle gelogten Werte angezeigt
	// $CfgDaten['AggNameFormat'] = "d.m.Y H:i"; // (gilt nur bei den Pies, wenn eine Id verwendet wird), entspricht dem PHP-date("xxx") Format, welches das Format der Pie Namen festlegt, wenn keine Eingabe werden Default Werte genommen
	// $CfgDaten['Offset'] = 24*60*60; hiermit können Kurven unterschiedlicher Zeiträume in einem Chart dargestellt. Angabe ist in Minuten
	//	$CfgDaten['StartTime'] = mktime(0,0,0,1,1,2012); 	// wird für die entsprechende Serie eine Anfangs- und/oder Endzeitpunkt festgelegt wird dieser verwendet. Ansonsten wird
	// CfgDaten['EndTime'] = mktime(0,0,0,2,1,2012);  		// der Zeitpunkt der Zeitpunkt aus den $CfgDaten genommen
	// CfgDaten['ScaleFactor'] = 10; // Skalierungsfaktor mit welchem der ausgelesene Werte multipliziert wird
	// CfgDaten['RoundValue'] = 1; // Anzahl der Nachkommastellen
	//	CfgDaten['AggValue'] ='Min' // über AggValue kann Min/Max oder Avg vorgewählt werden (Default bei keiner Angabe ist Avg)
	//		ist sinnvoll wenn nicht Einzelwerte sondern Stundenwerte, Tageswerte, usw. ausgelesen werden
	// CfgDaten['data'] = array('TimeStamp'=> time(),'Value'=12) // hier kann ein Array an eigenen Datenpunkten übergeben werden. In diesem Fall werden für diese Serie keine Daten aus der Variable gelesenen.

// SOLL-Werte
	$serie = array("Data" => $ext_Data);
	$serie['name'] = "Column";
	$serie['Unit'] = "kWh";
	$serie['ReplaceValues'] =false;
	$serie['type'] = "column";
	$serie['step'] = false;
	$serie['yAxis'] = 0;
	$serie['shadow'] = true;
	$serie['states']['hover']['lineWidth'] = 2;
	$serie['marker']['enabled'] = false;
	$serie['marker']['states']['hover']['enabled'] = true;
	$serie['marker']['states']['hover']['symbol'] = 'circle';
	$serie['marker']['states']['hover']['radius'] = 4;
	$serie['marker']['states']['hover']['lineWidth'] = 1;
	$CfgDaten['series'][] = $serie;

// Ertrag pro Monat
	$serie = array();
	$serie['name'] = "Ertrag in kWh";
	$serie['Id'] = 57373 /*[Program\SMA Webbox\Ertrag täglich (Zähler)]*/;
	$serie['AggType'] = 3;
	$serie['Unit'] = "kWh";
	$serie['ReplaceValues'] = false;
	$serie['type'] = "line";
	$serie['color'] = '#FFFF55';
	$serie['yAxis'] = 0;
	$serie['marker']['enabled'] = false;
	$serie['shadow'] = true;
	$serie['lineWidth'] = 1;
	$serie['states']['hover']['lineWidth'] = 2;
	$serie['marker']['states']['hover']['enabled'] = true;
	$serie['marker']['states']['hover']['symbol'] = 'circle';
	$serie['marker']['states']['hover']['radius'] = 4;
	$serie['marker']['states']['hover']['lineWidth'] = 1;
	$CfgDaten['series'][] = $serie;

	// Highcharts-Theme
	//	$CfgDaten['HighChart']['Theme']="grid.js";   // von Highcharts mitgeliefert: dark-green.js, dark-blue.js, gray.js, grid.js
	$CfgDaten['HighChart']['Theme']="ips.js";   // IPS-Theme muss per Hand in in Themes kopiert werden....

	// 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']);

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

	// abhängig von der Art des Aufrufs -> json String für Highcharts erzeugen
	if (isset($CfgDaten['RunMode'])
		&& ($CfgDaten['RunMode'] == "script" || $CfgDaten['RunMode'] == "popup"))
	{
		// Variante1: Übergabe der ScriptId. Daten werden beim Aufruf der PHP Seite erzeugt und direkt ü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 Anzeigen 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
		}
	}

?>

oh, ich sehe gerade: Dein datenstring (Soll-Daten) ist ein anderer:


$PV_Soll_String .= "[Date.UTC(".$year.",".$i.", 1, 00, 00, 00),".$PV_Soll_array[0+$i]."], ";

abgelegt wird dann das, was Du oben schon gepostet hast:


[Date.UTC(2012,0, 1, 00, 00, 00),148.78],

jetzt gibts mehere Möglichkeiten:

  1. Den String in der String-Var in einem anderen Format ablegen (nur, wenn kein anderes Script drauf zu greift -> sonst müsste deises auch geändert werden)
  2. Den vorhandenen String behalten und beim Auslesen umformatieren.

welches Tor nimmst Du?

:smiley: Du bist lustig.
Also, ich habe zwei Variablen, die ich brauche; Soll und Quote. Die hattest Du mir damals netterweise „zurecht gebastelt“. Außer dieses eine HC Script greift nicht darauf zu. Was hier sinnvoller ist kann ich nicht so recht beurteilen. Aus dem Bauch heraus würde ich sagen, dass es Sinn macht das Format der String-Var so zu lassen wie es ist, damit ich mit später einfacher die Quote mit adaptieren kann.