IPSHighcharts

Hallo Frank

Ja wenn das Leben doch immer so einfach wäre.
Es klappt ich hatte dort noch einer andere ID drin.

Mfg Stefan

Vielen vielen 1000 Dank für den Hinweis.
Ich verwende eine eigene Highcharts Implementierung. Früher hat es sauber funktioniert.
Dann hab ich viel rumgebastelt und irgendwann waren dann plötzlich die Lücken am Anfang der Plots.
Um es händisch zu fixen hatte ich aber auch keine Lust.
Nun is klar was da falsch lief.

schöne Grüße und Danke nochmal
bb

Servus Andreas

Alternativ hätte ich das hier anzubieten:

ab Post#24

gruß
bb

@bumaas

Danke, hab die Compatibility Funktion nun übernommen

Hallo Andreas,

mir sind noch weitere „Löcher“ aufgefallen, die zum Ende eines Zeitraums bestehen, wenn nicht ausreichend viele Daten vorliegen:

Mit folgenden Änderungen ab Zeile 1094 sieht es korrekt aus:


				//$ReadCurrentValue = false;
			}
		}

		// sortieren, so , dass der aktuellste Wert zuletzt kommt
		$dataArray = array_reverse($dataArray);

		// aktuellen Wert der Variable noch in Array aufnehmen
		if ($ReadCurrentValue
			//&& $Serie['EndTime'] >= time()    			// nicht wenn Endzeitpunkt vor NOW ist
			&& !$Serie['Ips']['IsCounter'])				// nicht bei Zählervariablen
			{
//				$curValue = ReadCurrentValue($VariableId);
				$curValue = ReadLoggedValue($Id_AH, $VariableId, $Serie['EndTime']);
				$dataArray[] = CreateDataItem($curValue['TimeStamp'], $curValue['Value'], $Serie);
			}


		return $dataArray ;
	}

	// ------------------------------------------------------------------------
	// ReadLoggedValue
	//    IN: $instanceID, $VariableId, $time
	//    OUT: Aktueller Wert
	// ------------------------------------------------------------------------
	function ReadLoggedValue($instanceID, $variableId, $time)
	{
		if ($time > time()) $time = time();
		$values = AC_GetLoggedValues($instanceID, $variableId, 0, $time+1, 1);
		$currentVal['Value']= $values[0]['Value'];
		$currentVal['TimeStamp'] = $time;

		return $currentVal;
	}

Bitte prüfe einmal, ob du es so übernehmen kannst.

Viele Grüße

Burkhard

Hallo,

vielen Dank für diese einfache Möglichkeit die Highcharts zu verwenden.

Ich hätte aber noch eine Frage dazu. Wie kann ich es schaffen, dass mir beim Überfahren der Linien ein Tooltip angezeigt wird?

Das vorgehen mit der IPSHighcharts_Custom.inc.php hab ich noch nicht so genau verstanden. Wohin muss diese Datei bzw. wo befindet Sie sich?

Danke für eure Hilfe.

Grüße
Stephan

Hallo Andreas

ich habe gerade versucht aus einem Medie-Chart ein Highchart zu erzeugen.
Das hat schon mal einfach funktioniert.

Jetzt kommen aber folgende Fragen auf:

  1. Ist es möglich die Farben aus dem Mediechart zu übernehmen?
  2. Ist es möglich die Titel aus dem Mediechart zu übernehmen?
  3. Wie kann ich eine 2. Y-Achse einbinden um z.B. die Temperatur und die Ventilpossition in einem Chart darzustellen?

Wenn ich mir dein Beispielchart anschaue, dann sieht das etwas besser aus wie bei mir…

Der Ansatz ist genial, da so auch ein „Enduser“ einfach ein Chart erstellen kann!
Danke für die tollt Arbeit :slight_smile:

@firewire

sorry, kann ich Dir auf die Schnelle auch nicht sagen, einfach mal den Highcharts Diskussions Thread druchstöbern und das die Konfiguration (Setzen des CfgDaten Arrays in die Callback Funktion einbauen).

In der Callback Funktion kannst Du alle Konfigurations Daten von Highcharts noch verändern …

@isi

1.) die Fill Color sollte übernommen werden (getestet mit Type Bar)

2.) Title werde ich noch einbauen

3.) Zusätzliche Achse:


	// Achse definieren
	$CfgDaten['yAxis'][1]['title']['text']             = 'Achse 2';
	$CfgDaten['yAxis'][1]['stackLabels']['enabled']    = true;
	$CfgDaten['yAxis'][1]['stackLabels']['formatter']  = "@function() { return this.total.toFixed(1) }@";
	$CfgDaten['yAxis'][1]['labels']['enabled']         = true;
	$CfgDaten['yAxis'][1]['Unit']                      = 'Unit XY';
	$CfgDaten['yAxis'][1]['opposite']                  = false;
	$CfgDaten['yAxis'][1]['lineWidth']                 = 0;
	$CfgDaten['yAxis'][1]['lineColor']                 = 'transparent';

        //Achse zuordnen
	$CfgDaten['series'][1]['yAxis']         = 1;

Besten Dank!

Werde leider erst morgen zum Testen kommen.

Hallo nochmal,

leider kommt ich alleine nicht weiter.

Wie kann ich denn den Tooltip aktivieren? Habe bisher das hier:

// Chart-Optionen "Tooltip"
		$CfgDaten['tooltip']['backgroundColor']                  = 'grey';
		$CfgDaten['tooltip']['borderColor']                  	 = 'blue';
		$CfgDaten['tooltip']['useHTML']                          = true;
		$CfgDaten['tooltip']['shared']                           = false;
		$CfgDaten['tooltip']['crosshairs'][]                     = array('width' =>1,'color' =>'grey','dashStyle'=>'dashdot' );
		$CfgDaten['tooltip']['crosshairs'][]                     = array('width' =>1,'color' =>'grey','dashStyle'=>'dashdot' );

   		$CfgDaten['tooltip']['formatter']                        = "@function() {var unit = {
                                                                            '".@$CfgDaten['series'][0]['name']."': '".@$CfgDaten['series'][0]['Unit']."',
                                                                            '".@$CfgDaten['series'][1]['name']."': '".@$CfgDaten['series'][1]['Unit']."',
                                                                            '".@$CfgDaten['series'][2]['name']."': '".@$CfgDaten['series'][2]['Unit']."',
                                                                            '".@$CfgDaten['series'][3]['name']."': '".@$CfgDaten['series'][3]['Unit']."',
                                                                            '".@$CfgDaten['series'][4]['name']."': '".@$CfgDaten['series'][4]['Unit']."',
                                                                            '".@$CfgDaten['series'][5]['name']."': '".@$CfgDaten['series'][5]['Unit']."',
                                                                            '".@$CfgDaten['series'][6]['name']."': '".@$CfgDaten['series'][6]['Unit']."',
                                                                            '".@$CfgDaten['series'][7]['name']."': '".@$CfgDaten['series'][7]['Unit']."',
                                                                            '".@$CfgDaten['series'][8]['name']."': '".@$CfgDaten['series'][8]['Unit']."',
                                                                            '".@$CfgDaten['series'][9]['name']."': '".@$CfgDaten['series'][9]['Unit']."',
                                                                            '".@$CfgDaten['series'][10]['name']."': '".@$CfgDaten['series'][10]['Unit']."',
                                                                            '".@$CfgDaten['series'][11]['name']."': '".@$CfgDaten['series'][11]['Unit']."',
                                                                            '".@$CfgDaten['series'][12]['name']."': '".@$CfgDaten['series'][12]['Unit']."',
                                                                            }[this.series.name];
                                                                            return '<b>' + Highcharts.dateFormat('%A, %d.%m.%Y, %H:%M', this.x) + ' Uhr</b><br>' + this.series.name
                                                                                        + ': ' + '<b><span style=color:' + this.series.color + '>' + this.y
                                                                                        + unit + '</b></span>';
                                                                            }@"; 

Das ist das Resultat:

Was weiterhin Probleme macht, ist das einbinden einer weiteren Achse. Was mich weiterhin stört, ist dass alle Linien mit der selben Unit gekennzeichnet werden, Obwohl es sich ja um Temperaturen °C und Prozentwerte handelt.
Wie kann ich das über die IPSHighcharts_Custom regeln?

Kann mir hier vielleicht jemand helfen. Wäre wirklich sehr dankbar.

Viele Grüße
Stephan

Hallo Andreas,

Danke für das Modulupdate !
Jetzt werden auch die Titel richtig übernommen.
Die Farben und Achsen funktionieren auch wie du es beschrieben hast.

Warum übernimmst du eigentlich die Farbe der Fläche und nicht die Linienfarbe ?

Hallo Andreas,

bindest du auch das neue Highcharts Script 3.0 von KHC ein?

Vielen Dank

Gerd

Nein, vorerst nicht, da fehlt mir die Zeit …

Gibt es denn schon eine offizielle 3.0 Version ?

Ja, hier:

Gerd

Hallo,

ich nutze IPSHighcharts in der Version 2.50.9.
Mein Stromzähler sendet alle 2 Sekunden die Verbrauchswerte.
Wenn ich den Zeitraum auf „Woche“ oder größer einstelle gibt es keine Probleme.
Stelle ich dagegen den Zeitraum auf „Tag“ oder kleiner ein dauert es mehrere Minuten bis der Graph angezeigt wird.
Gibt es eine Möglichkeit die Anzahl der angezeigten Datenpunkte zu verringern um die Anzeige zu beschleunigen?

Hier meine ConfigHighCharts

<?
    // 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

    // IPS Variablen ID´s
    $CfgDaten['ContentVarableId']= 53254 /*[HighCharts\Energie\HighCharts]*/;  // 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']= 43259 /*[HighCharts\Energie\HighCharts\HighCharts]*/;                  // 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, date("m", time()), date("d",time())-10, 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

    $ZeitRaum = GetValue(14870 /*[HighCharts\Energie\HC_Zeitraum]*/);
    // AggType: [0=Hour, 1=Day, 2=Week, 3=Month, 4=Year] .. wie der Werte gelesen werden soll
    Switch ($ZeitRaum) {
       Case 0:
       Case 1:
          $AggType = 0;
          Break;
       Case 7:
       Case 30:
          $AggType = 1;
          Break;
       Case 365:
        Case 90:
       Case 180:
          $AggType = 3;
          Break;
        Default:
        $AggType = 0;
    };
    If ($ZeitRaum == 0) {$ZeitRaum = (8/24);};
    $EndPunkt = GetValue(40505 /*[HighCharts\Energie\HC_Endpunkt]*/);
    $CfgDaten["EndTime"] = time() + 60 * 60 * 24 * $ZeitRaum * $EndPunkt;
   $CfgDaten["StartTime"] = $CfgDaten["EndTime"] - 60 * 60 * 24 * $ZeitRaum;













    // damit wird die Art des Aufrufes festgelegt
    $CfgDaten['RunMode'] = "script";     // file, script oder popup

    if ($CfgDaten['RunMode'] == "popup")
    {
        $CfgDaten['WebFrontConfigId'] = 54149 /*[WebFront Configurator]*/;
        $CfgDaten['WFCPopupTitle'] = "Ich bin der Text, welcher als Überschrift im Popup gezeigt wird";
    }

    // 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'] = 7;       // ist der Zeitraum größer als X Tage werden Tageswerte geladen
    $CfgDaten['AggregatedValues']['WeekValues'] = 31;      // ist der Zeitraum größer als X Tage werden Wochenwerte geladen
    $CfgDaten['AggregatedValues']['MonthValues'] = 90;      // ist der Zeitraum größer als X Tage werden Monatswerte geladen
    $CfgDaten['AggregatedValues']['YearValues'] = 365;          // 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     |

    // **************************************************************************************
    // *** 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'] = "Wetterdaten";

    // **************************************************************************************
    // *** 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']

  // Überschriften
    $CfgDaten['title']['text']= "Leistung";
    $CfgDaten['subtitle']['text']= "Zeitraum: %STARTTIME% - %ENDTIME%";     // "" = Automatisch über Zeitraum
    $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)

    // Zeitraum welcher dargestellt werden soll
//    $CfgDaten['StartTime'] = mktime(0,0,0, date("m", time()), date("d",time())-3, 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


    // damit wird die Art des Aufrufes festgelegt
   // $CfgDaten['RunMode'] = "popup";     // file, script oder popup

//    $CfgDaten['tooltip']['formatter'] = "@function() {return false;}@";
    $CfgDaten['tooltip']['formatter'] ="";
    $CfgDaten['tooltip']['valuePrefix'] = "";
    $CfgDaten['tooltip']['useHTML'] = true;
    $CfgDaten['tooltip']['xDateFormat'] = "%d-%m-%Y %H:%M";

    // Definition Y-Achsen
    $CfgDaten["yAxis"][0]['title']['text'] = "Leistung";
    $CfgDaten["yAxis"][0]['Unit'] = "Watt";
    $CfgDaten["yAxis"][0]['opposite'] = true;
    $CfgDaten["yAxis"][0]['tickInterval'] = 200;
    //$CfgDaten["yAxis"][0]['min'] = 0;
    //$CfgDaten["yAxis"][0]['max'] = 0;

   
    

     $serie = array();
    $serie['Id'] = 11314 /*[Energie\Zählerdaten Stromzähler\Test Zähler\eHZ_Leistung Summe]*/;
    $serie['name'] = "Gesamtleistung";
    $serie['Unit'] = NULL;
    $serie['ReplaceValues'] = false;
    $serie['RoundValue'] = 1;
    $serie['type'] = 'line';
    $serie['step'] = false;
    $serie['yAxis'] = 0;
    $serie['shadow'] = false;
    $serie['lineWidth'] = 1;
    $serie['states']['hover']['lineWidth'] = 2;
    $serie['marker']['enabled'] = false;
    $serie['marker']['symbol'] = 'circle';
    $serie['marker']['states']['hover']['enabled'] = true;
    $serie['marker']['states']['hover']['symbol'] = 'circle';
    $serie['marker']['states']['hover']['radius'] = 4;
    $serie['marker']['states']['hover']['lineWidth'] = 1;
    $serie['tooltip']['valueSuffix'] = "   Watt";
    $CfgDaten['series'][] = $serie;

    $serie = array();
    $serie['Id'] = 44596 /*[Energie\Zählerdaten Stromzähler\Test Zähler\eHZ_Leistung L1]*/;
    $serie['name'] = "Leistung L1";
    $serie['Unit'] = NULL;
    $serie['ReplaceValues'] = false;
    $serie['RoundValue'] = 1;
    $serie['type'] = 'line';
    $serie['step'] = false;
    $serie['yAxis'] = 0;
    $serie['shadow'] = true;
    $serie['lineWidth'] = 1;
    $serie['states']['hover']['lineWidth'] = 2;
    $serie['marker']['enabled'] = false;
    $serie['marker']['symbol'] = 'circle';
    $serie['marker']['states']['hover']['enabled'] = true;
    $serie['marker']['states']['hover']['symbol'] = 'circle';
    $serie['marker']['states']['hover']['radius'] = 4;
    $serie['marker']['states']['hover']['lineWidth'] = 1;
    $serie['tooltip']['valueSuffix'] = "  Watt";
    $CfgDaten['series'][] = $serie;
    
     $serie = array();
    $serie['Id'] = 43475 /*[Energie\Zählerdaten Stromzähler\Test Zähler\eHZ_Leistung L2]*/;
    $serie['name'] = "Leistung L2";
    $serie['Unit'] = NULL;
    $serie['ReplaceValues'] = false;
    $serie['RoundValue'] = 1;
    $serie['type'] = 'line';
    $serie['step'] = false;
    $serie['yAxis'] = 0;
    $serie['shadow'] = true;
    $serie['lineWidth'] = 1;
    $serie['states']['hover']['lineWidth'] = 2;
    $serie['marker']['enabled'] = false;
    $serie['marker']['symbol'] = 'circle';
    $serie['marker']['states']['hover']['enabled'] = true;
    $serie['marker']['states']['hover']['symbol'] = 'circle';
    $serie['marker']['states']['hover']['radius'] = 4;
    $serie['marker']['states']['hover']['lineWidth'] = 1;
    $serie['tooltip']['valueSuffix'] = "  Watt";
    $CfgDaten['series'][] = $serie;

     
     $serie = array();
    $serie['Id'] = 28855 /*[Energie\Zählerdaten Stromzähler\Test Zähler\eHZ_Leistung L3]*/;
    $serie['name'] = "Leistung L3";
    $serie['Unit'] = NULL;
    $serie['ReplaceValues'] = false;
    $serie['RoundValue'] = 1;
    $serie['type'] = 'line';
    $serie['step'] = false;
    $serie['yAxis'] = 0;
    $serie['shadow'] = true;
    $serie['lineWidth'] = 1;
    $serie['states']['hover']['lineWidth'] = 2;
    $serie['marker']['enabled'] = false;
    $serie['marker']['symbol'] = 'circle';
    $serie['marker']['states']['hover']['enabled'] = true;
    $serie['marker']['states']['hover']['symbol'] = 'circle';
    $serie['marker']['states']['hover']['radius'] = 4;
    $serie['marker']['states']['hover']['lineWidth'] = 1;
    $serie['tooltip']['valueSuffix'] = "  Watt";
    $CfgDaten['series'][] = $serie;




    // Highcharts-Theme
    //    $CfgDaten['HighChart']['Theme']="dark-blue.js";   // von Highcharts mitgeliefert: dark-green.js, dark-blue.js, gray.js, grid.js
    $CfgDaten['HighChart']['Theme']="dark-blue.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'] = 450;         // 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
        }
    }


?>



Grüße aus Hamburg

Hallo zusammen,

habe jetzt mal meine verschiedenen Spritpreise über den Media Chart dargestellt.
Das geht auch soweit.
Jetzt habe ich mal versucht, das ganze mit IPSHighChart über das Media Chart darzustellen.
Habe nun das Problem, das die Eurowerte nur auf 0,1Euro gerundet im Graph geplottet werden.
Macht bei Temperaturen natürlich Sinn, bei den Spritpreisen eher weniger.

Kann ich das in der String-Variablen zum Graph irgendwie mit übergeben oder gibt es dafür eine extra Config.
Und wenn ja, wo finde ich das?

Danke u. Grüße,
Doc

Keiner eine Idee?
Habe keine Config in IPSHighCharts gefunden, in der auf eine Nachkommastelle gerundet wird.

Muss das in die Callbackfunktion?
Wie sieht da der Syntax aus?

Grüße,
Doc

Bin mir da auch nicht mehr sicher, eventuell hilft Dir diese Zeile mal weiter:


	$CfgDaten['yAxis'][0]['stackLabels']['formatter']  = "@function() { return this.total.toFixed(1) }@";