Q&A Highcharts V2.0

Hallo
Ich hab hier einfach nur einen Schoenheitsfehler gefunden.
In der Webconsole von Firefox erhalte ich immer viele Fehlermeldungen

SyntaxError: 08 is not a legal ECMA-262 octal constant

ausgeloest durch das Zeitformat der einzelnen Daten

Date.UTC(2012,11,26,11,08,44)

In Javascript bedeutet eine fuehrende 0 eine Octalzahl.
Problem liegt in der Funktion CreateDateUTC
anstatt

return "Date.UTC(" . date("Y,", $timeStamp) .$monthForJS. date(",j,H,i,s", $timeStamp) .")";

waere besser

		$utc = "Date.UTC(" . idate("Y", $timeStamp) ."," . $monthForJS;
		$utc = $utc . "," .  idate("d", $timeStamp) ;
		$utc = $utc . "," .  idate("H", $timeStamp) ;
		$utc = $utc . "," .  idate("i", $timeStamp) ;
		$utc = $utc . "," .  idate("s", $timeStamp) .")";
		return $utc;

Und mein Problem mit den Markern waere in diesem Thread wohl auch besser aufgehoben.
http://www.ip-symcon.de/forum/threads/17625-Highcharts-Multigraph?p=185062#post185062

Hallo 1007,
Antwort auf #30 aus dem Thema HighCharts-Multigraph:
Ob das früher mal so war oder schon immer falsch ist, weiss ich nicht. Aber wenn ich für alle Graphen im Script Plotoptionen vorgeben möche mach ich das mit

    // **************************************************************************************
    // *** PlotOptions *** http://www.highcharts.com/ref/#plotoptions
    // **************************************************************************************
        $CfgDaten['plotOptions']['series']['lineWidth'] = 2;
        $CfgDaten['plotOptions']['series']['states']['hover']['lineWidth'] = 4;
        $CfgDaten['plotOptions']['series']['marker']['symbol'] = 'circle';
        $CfgDaten['plotOptions']['series']['marker']['enabled'] = false;
        $CfgDaten['plotOptions']['series']['marker']['states']['hover']['radius'] = 5;
        $CfgDaten['plotOptions']['series']['marker']['states']['hover']['lineWidth'] = 2;
        $CfgDaten['plotOptions']['series']['marker']['states']['hover']['enabled'] = true;

und kommentier die Optionen in den Series aus.

Hallo
Hab mich nun auch mal an die Highcharts rangetraut und soweit läuft auch alles ganz gut.
Bis auf eine Kleinigkeit, und zwar werden im Pie nur 2 „Variablen“ angezeigt statt 3, es fehlt die Aussentemperatur. Anbei mal ein Bild und mein Configscript.


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

    // IPS Variablen ID´s
    $CfgDaten['ContentVarableId']= 27634 /*[Highcharts\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']= 10396 /*[Highcharts\Highcharts_V2.02]*/ ;                  // ID des Highcharts Scripts

    // Highcharts oder Highstock (default = Highcharts
    $CfgDaten['Ips']['ChartType'] = 'Highcharts';

    // 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())-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'] = "file";     // file, script, popup

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

    // Übergabe der IP-Adresse und des Ports für die Darstellung im Dashboard
    // Wichtig! Wenn Darstellung in Webfront diese Variablen auskommentieren
    //$CfgDaten['Ips']['Dashboard']['Ip'] = "127.0.0.1";
    //$CfgDaten['Ips']['Dashboard']['Port'] = "82";


    // 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'] = 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'] = "OG Wohnzimmer";

    // **************************************************************************************
    // *** 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;
    // $CfgDaten['tooltip']['formatter'] = Null; // IPS erstellt selbständig einen Tooltip
    // $CfgDaten['tooltip']['formatter'] = ""; // Standard - Highcharts Tooltip

    // **************************************************************************************
    // *** 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'] = "Temperaturen";
    $CfgDaten['yAxis'][0]['Unit'] = "°C";
    $CfgDaten['yAxis'][0]['opposite'] = false;
    $CfgDaten['yAxis'][0]['tickInterval'] = 5;
    $CfgDaten['yAxis'][0]['min'] = -20;
    $CfgDaten['yAxis'][0]['max'] = 40;
    

    $pb['from'] = -20.0;
    $pb['to'] = 0.0;
    $pb['color'] = 'rgba(68, 170, 213, 0.1)';
    $pb['label']['text'] = 'Eistag';
    $pb['label']['style']['color'] = '#F4F4FA';
    $CfgDaten["yAxis"][0]['plotBands'][] = $pb;

    $pb['from'] = 0;
    $pb['to'] = 15;
    $pb['color'] = 'rgba(255, 255, 0, 0.1)';
    $pb['label']['text'] = 'kalter Tag';
    $pb['label']['style']['color'] = '#F4F4FA';
    $CfgDaten["yAxis"][0]['plotBands'][]= $pb;

    $pb['from'] = 15;
    $pb['to'] = 25;
    $pb['color'] = 'rgba(255, 90, 0, 0.1)';
    $pb['label']['text'] = 'Sommertag';
    $pb['label']['style']['color'] = '#F4F4FA';
    $CfgDaten["yAxis"][0]['plotBands'][]= $pb;

    $pb['from'] = 25;
    $pb['to'] = 40;
    $pb['color'] = 'rgba(255, 0, 0, 0.1)';
    $pb['label']['text'] = 'heißer Tag';
    $pb['label']['style']['color'] = '#F4F4FA';
    $CfgDaten["yAxis"][0]['plotBands'][]= $pb;


	 $CfgDaten['yAxis'][1]['title']['text'] = "Prozent";
    $CfgDaten['yAxis'][1]['Unit'] = "%";
    $CfgDaten['yAxis'][1]['opposite'] = true;
    $CfgDaten['yAxis'][1]['tickInterval'] = 10;
    $CfgDaten['yAxis'][1]['min'] = 0;
    $CfgDaten['yAxis'][1]['max'] = 100;
    
   // $CfgDaten['yAxis'][1]['title']['text'] = "Luftfeuchte";
  //  $CfgDaten['yAxis'][1]['Unit'] = "%";
   // $CfgDaten['yAxis'][1]['opposite'] = true;

   // $CfgDaten['yAxis'][2]['title']['text'] = "Status Steckdose";
    //$CfgDaten['yAxis'][2]['labels']['formatter'] = "@function() { if (this.value == 0.5) return 'Aus'; if (this.value == 1) return 'An';if (this.value == 2) return 'geöffnet' }@";
   // $CfgDaten['yAxis'][2]['allowDecimals'] = true;
   // $CfgDaten['yAxis'][2]['showFirstLabel '] = false;
   // $CfgDaten['yAxis'][2]['showLastLabel '] = false;
    //$CfgDaten['yAxis'][2]['opposite'] = true;
    //$CfgDaten['yAxis'][2]['labels']['rotation'] = 90;

//    $CfgDaten['yAxis'][3]['title']['text'] = "Columns";
//    $CfgDaten['yAxis'][3]['Unit'] = "kWh";

    // **************************************************************************************
    // *** series *** http://www.highcharts.com/ref/#series
    // **************************************************************************************
    // $serie['name'] = "Temperatur; // Name der Kurve (Anzeige in Legende und Tooltip)
    //        -> veraltet: 'Name' -> verwende [series']['name']
    // $serie['Unit'] = "°C"; // Anzeige in automatisch erzeugtem Tooltip
    //     wenn $serie['Unit'] = NULL; // oder Unit wird gar nicht definiert, wird versucht die Einheit aus dem Variablenprofil automatisch auszulesen
    // $serie['ReplaceValues'] = false; // Werte werden wie geloggt übernommen
    //     $serie['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)
    // $serie['type'] = 'spline'; // Festlegung des Kuventypes (area, areaspline, line, spline, pie, Column)
    // $serie['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
    // $serie['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
    // $serie['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
    // $serie['Offset'] = 24*60*60; hiermit können Kurven unterschiedlicher Zeiträume in einem Chart dargestellt. Angabe ist in Minuten
    //    $serie['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
    // $serie['EndTime'] = mktime(0,0,0,2,1,2012);          // der Zeitpunkt der Zeitpunkt aus den $CfgDaten genommen
    // $serie['ScaleFactor'] = 10; // Skalierungsfaktor mit welchem der ausgelesene Werte multipliziert wird
    // $serie['RoundValue'] = 1; // Anzahl der Nachkommastellen
    //    $serie['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
    // $serie['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.
/*
    $serie = array();
    $serie['name'] = 'Pie';
    $serie['type'] = 'pie';
    $serie['data'][] = array('name'=>'Aussentemperatur', 'Id' => 44535, 'Unit'=>"°C");
    //$serie['data'][] = array('name'=>'Luftfeuchte', 'Id' => 28864, 'Unit'=>"%");
    $serie['allowPointSelect'] = true;
    $serie['cursor'] = 'pointer';
    $serie['center'] = array(200,60);
    $serie['size'] = 100;
    $serie['dataLabels']['enabled'] = true;
    $CfgDaten['series'][] = $serie;
*/

  // $serie['data'][] 															 = array('name'=>'Aussentemperatur', 'color'=>'#B0BE18','Id' => 31300, 'Unit'=>"°C");
   // $serie['data'][]                                             = array('name'=>'Wohnzimmertemperatur', 'color'=>'#BE1818','Id' => 14036, 'Unit'=>"°C");
   // $serie['data'][]                                             = array('name'=>'Ventilstellung', 'color'=>'#34BE18', 'Id' => 30007, 'Unit'=>"%");


    $serie = array();
    $serie['type']                                                 = 'pie';
    $serie['name']                                                 = 'Temperaturen';
    $serie['data']=	[[
                     "name"=>'Aussentemperatur',
                     "color"=>'#B0BE18',
                     "Id"=>31300,
                     "Unit"=>'°C',
		     ], [
		     "name"=>'Wohnzimmertemperatur',
                     "color"=>'#BE1818',
                     "Id"=>14036,
                     "Unit"=>'°C',
                     ], [
                     "name"=>'Ventilstellung',
                     "color"=>'#34BE18',
                     "Id"=>30007,
                     "Unit"=>'%',
                     ]];

    $serie['allowPointSelect']                                 = true;
    $serie['cursor']                                             = 'pointer';
    $serie['center']                                             = array(200,80);
    $serie['size']                                                 = 200;
    $serie['innerSize']                                         = "40%";
    $serie['showInLegend']                                         = false;
    $serie['dataLabels']['enabled']                         = true;
    $serie['dataLabels']['color']                             = "#F4F4FA";
    $serie['dataLabels']['distance']                         = -55;
    $serie['bordercolor']                                         = "#333333";
    $CfgDaten["series"][]                                         = $serie;

    $serie = array();
    $serie['name'] = "Aussentemperatur";
    $serie['Id'] = 31300 /*[Heizung\UVR1611\Temp Aussen]*/;
    $serie['Unit'] = "°C";
    $serie['ReplaceValues'] = false;
    $serie['RoundValue'] = 0;
    $serie['type'] = "area";
    $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;

    $serie = array();
    $serie['name'] = "Wohnzimmertemp.";
    $serie['Id'] = 14036 /*[Heizung\UVR1611\Temp Aussen]*/;
    $serie['Unit'] = "°C";
    $serie['ReplaceValues'] = false;
    $serie['RoundValue'] = 0;
    $serie['type'] = "area";
    $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;
    
    $serie = array();
    $serie['name'] = "Ventilstellung";
    $serie['Id'] = 30007 /*[Heizung\UVR1611\Temp Aussen]*/;
    $serie['Unit'] = "%";
    $serie['ReplaceValues'] = false;
    $serie['RoundValue'] = 0;
    $serie['type'] = "area";
    $serie['yAxis'] = 1;
    $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;
    
//    $serie = array();
//    $serie['name'] = "Column";
//    $serie['Id'] = 29842 /*[Objekt #29842 existiert nicht]*/;
//    $serie['Unit'] = "kWh";
//    $serie['ReplaceValues'] =false;
//    $serie['type'] = "column";
//    $serie['step'] = false;
//    $serie['yAxis'] = 3;
//    $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;


    // Highcharts-Theme
    //    $CfgDaten['HighChart']['Theme']="grid.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'] = 500;         // 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
        }
    }



?>

Hallo zusammen,

ich mach jetzt doch noch mal einen Post auf, weil ich absolut nicht weiter komme.

Hab schon mehrere HighCharts auf Basis von MySQL Daten realisiert. Aber mit diesem komm ich absolut nicht weiter.
Ziel der Übung ist es, die Anzahl der Telefonate pro Tag mit HighCharts auszugeben.

Die Daten liegen in der MySQL vor wie Folgt:


ID    DateX        alleGesp
.
.
.
356    2012-12-21    6
357    2012-12-22    1
358    2012-12-23    2
359    2012-12-24    4
360    2012-12-25    7
361    2012-12-26    8
362    2012-12-27    8
363    2012-12-28    6
364    2012-12-29    8
365    2012-12-30    1

Da ich schon viel in diesem Threat gelesen habe und immer wieder auf Hinweise gestolpert bin die auf Zeiträume deuten hab ich (hat mir auch schon bei anderen Charts geholfen) die definierten HC-Zeiträume mit den/r MySQL Abfrage kombiniert (die Start und Endzeit als Where verwendet).

Mit dieser MySQL Tabelle funktioniert das aber leider nicht wie erwartet.

Folgende HC-Config wird aktuell verwendet:

<?

     // Zeitraum via Selector im WF nach: http://www.ip-symcon.de/forum/f53/highcharts-multigraph-17625/index3.html#post126538
     $ZeitRaum = GetValue(47444 /*[FritzBox\Telefonie\Auswertung\HC\Zeitraum\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(25972 /*[FritzBox\Telefonie\Auswertung\HC\Zeitraum\HC_Endpunkt]*/ );
    $CfgDaten["EndTime"] = (time() + 60 * 60 * 24 * $ZeitRaum * $EndPunkt);
    $CfgDaten["StartTime"] = ($CfgDaten["EndTime"] - 60 * 60 * 24 * $ZeitRaum);

     $SQLStart = "'".date("Y-m-d",$CfgDaten["StartTime"]) ."'";
     $SQLEnd = "'".date("Y-m-d",$CfgDaten["EndTime"])."'";
    echo "Start und Endzeit für HighCharts (human) ".date("Y-m-d",$CfgDaten["StartTime"])." ".date("Y-m-d",$CfgDaten["EndTime"])."

";
    echo "Start und Endzeit für MySQL ".$SQLStart." ".$SQLEnd."

";

//    $CfgDaten["EndTime"] = (time() + 60 * 60 * 24 * $ZeitRaum * $EndPunkt);
//    $CfgDaten["StartTime"] = $CfgDaten["StartTime"]-84600;

//------------------------------------------------------------------------------
// MySQL DB-Daten:
$MySQLConn=mysql_connect($MySQLIP.$MySQLPort, $MySQLAdmin, $MySQLAdminPW);
$db = $IPS_DB;
$SQLTable = $TBL_FB_AnrLstAusw;
//$Criteria = "WHERE ";

//------------------------------------------------------------------------------
if (!$MySQLConn)
 {IPS_LogMessage('FB_AnrLst_MySQL_Auswertung_AnrAnzahl', 'error= '. mysql_error());}
     $db_selected = mysql_select_db($db, $MySQLConn);

if (!$db_selected)
    {IPS_LogMessage('FB_AnrLst_MySQL_Auswertung_AnrAnzahl', 'opendb= '. mysql_error());}
    else
        {
        // Anrufe Tag ----------------------------------------------------------------
        $sql_Ergebnis_AnrTag = mysql_query("SELECT DateX, alleGesp, alleDauer as AnrufDauer, shaGesp, shaDauer, whaGesp, whaDauer
                                                FROM " . $SQLTable . " WHERE DateX >= ".$SQLStart." AND DateX <= ".$SQLEnd."
                                                
                                                ;")
                                                OR die("'".$sql_Ergebnis_AnrTag."':".mysql_error());
      //$data = mysql_fetch_array($sql_Ergebnis_AnrTag, MYSQL_ASSOC); // wenn die Zeile aktiviert wird, beginnt der TimeStamp einen Tag später. ?? warum?? nicht gelöst.
             if($sql_Ergebnis_AnrTag)
            
            {$i = 0;
                while($data = mysql_fetch_array($sql_Ergebnis_AnrTag, MYSQL_ASSOC))
                {
                     $DataForSerie[]  = array("Value"=>$data['alleGesp'], "TimeStamp"=>strtotime($data['DateX']), "TimeStampHuman"=>date("d.m.Y",strtotime($data['DateX'])));
                     }
             $i++;
            }
        }

    // ConfigScript für $version = "2.02"; $versionDate = "20.05.2012";

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

    // IPS Variablen ID´s
    $CfgDaten['ContentVarableId']= 40595 /*[FritzBox\Telefonie\Auswertung\HC\FB_AnrLst_Ausw_HC_Tage]*/ ;  // 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']= 37577 /*[HighCharts\Highcharts_V2.02.ips]*/;                                  // ID des Highcharts Scripts

    // Highcharts oder Highstock (default = Highcharts
    $CfgDaten['Ips']['ChartType'] = 'Highcharts';

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

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


    // **************************************************************************************
    // *** 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'] = "Anrufe";// Überchrift des gesamten Charts

    // **************************************************************************************
    // *** subtitle *** siehe http://www.highcharts.com/ref/#subtitle
    // **************************************************************************************
    $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;
    // $CfgDaten['tooltip']['formatter'] = Null; // IPS erstellt selbständig einen Tooltip
    // $CfgDaten['tooltip']['formatter'] = ""; // Standard - Highcharts Tooltip

    // **************************************************************************************
    // *** 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']['type'] = 'datetime';
    // $CfgDaten['xAxis']['plotBands'][] = array("color"=>'#FCFFC5',"from"=> "@Date.UTC(2012, 3, 29)@","to"=> "@Date.UTC(2012, 3, 30)@");
        $CfgDaten['xAxis']['tickInterval'] = 24*3600*1000; // 30Tage x 24 Std. x 3600 sek x 1000ms
        
    // **************************************************************************************
    // *** yAxis *** http://www.highcharts.com/ref/#yAxis
    // **************************************************************************************
    $CfgDaten['yAxis'][0]['title']['text'] = "Anrufe";
//    $CfgDaten['yAxis'][0]['Unit'] = "Anrufe";
//    $CfgDaten['yAxis'][0]['opposite'] = false;
//    $CfgDaten['yAxis'][0]['tickInterval'] = 1;
//    $CfgDaten['yAxis'][0]['min'] = 0;
//    $CfgDaten['yAxis'][0]['max'] = 40;

    // **************************************************************************************
    // *** series *** http://www.highcharts.com/ref/#series
    // **************************************************************************************
    $serie = array();
    $serie['name'] = "Anrufe Alle";
    $serie['type'] = "line"; // scatter, line, spline, arealine, areaspline, bar (balken quer), column (balken senkrecht), pie, From version 2.3, arearange, areasplinerange and columnrange
   $serie['Data'] = $DataForSerie;  //für eigene daten aus MySQL. zeile aus http://www.ip-symcon.de/forum/f52/q-highcharts-v2-0-a-18312/index5.html#post164205
    $CfgDaten["series"][] = $serie;

    print_r("Print_r der DataForSerie am Ende der series-Config"."
");
    print_r($DataForSerie);

    // Highcharts-Theme
    $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'] = 600;         // in px

//Verbindung beenden
mysql_close($MySQLConn);

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

Die Ausgabe der print_rs und echos ist:

Start und Endzeit für HighCharts (human) 2012-12-23 2012-12-30

Start und Endzeit für MySQL '2012-12-23' '2012-12-30'

Print_r der DataForSerie am Ende der series-Config
Array
(
    [0] => Array
        (
            [Value] => 2
            [TimeStamp] => 1356217200
            [TimeStampHuman] => 23.12.2012
        )
    [1] => Array
        (
            [Value] => 4
            [TimeStamp] => 1356303600
            [TimeStampHuman] => 24.12.2012
        )
    [2] => Array
        (
            [Value] => 7
            [TimeStamp] => 1356390000
            [TimeStampHuman] => 25.12.2012
        )
    [3] => Array
        (
            [Value] => 8
            [TimeStamp] => 1356476400
            [TimeStampHuman] => 26.12.2012
        )
    [4] => Array
        (
            [Value] => 8
            [TimeStamp] => 1356562800
            [TimeStampHuman] => 27.12.2012
        )
    [5] => Array
        (
            [Value] => 6
            [TimeStamp] => 1356649200
            [TimeStampHuman] => 28.12.2012
        )
    [6] => Array
        (
            [Value] => 8
            [TimeStamp] => 1356735600
            [TimeStampHuman] => 29.12.2012
        )
    [7] => Array
        (
            [Value] => 1
            [TimeStamp] => 1356822000
            [TimeStampHuman] => 30.12.2012
        )
)

Die Ausgabe im WF sieht so aus wie im Screenshot. Das Einzige was mir dabei auffällt ist, dass die X-Achse einen Tag später anfängt als der definierte Zeitraum. Ich bekomm das zwar „hinbeschissen“, aber das Ergebnis bleibt das selbe.

Kann bitte mal jemand drüber schauen und vielleicht den Fehler finden?
Bin für jede Antwort dankbar.

Danke im Voraus und

Hallo zusammen,
falls sich jemand mit dem letzten Post beschäftigt …
Aufhören zu suchen. Habs hinbekommen. Hab ein funktionierendes Script umgebaut. Fehlersuche läuft, Rückmeldung kommt.

Rückmeldung Fehlerursache:
Habs gefunden. Hatte versucht einen UnixTimestamp mit strtotime noch mal zu einem UnixTimestamp zu machen. Hatte es die ganze Zeit überlesen.

Hallo zusammen,

ich habe heute morgen in die Graphen meiner PV-Anlage geschaut und eine komische Sache festgestellt.
Im Jahr 2011 sah der Monat Dezember so aus:

In letzten Jahr (ich meine 2012) sah der Dezember dann so aus:

Die Balken sind eingeschrumpft und es gibt neben dem Dezember einen Dezember (?):


Darin sind einzelne Werte … woher kommt das? Hat das jemand außer mir?

Hallo,

ich mache meine ersten ganz erfolgreichen Gehversuche mit Highchart. Bei einem Problem komme ich jedoch nicht weiter:

Wenn ich im Webfront den Tab mit dem Highchart anwähle, dann wir er zunächst viel zu klein dargestellt. Erst wenn er zyklisch neu erzeugt wird oder ich den Browser mit F5 aktualisiere, dann stimmt die Größe. Diese Phänomen beobachte ich nur im IE9, nicht auf dem IPad oder IPhone.

Kann mir jemand einen Tipp geben, was ich wohl übersehen haben könnte?

Viele Grüße

Burkhard

Hallo zusammen,

… und dann habe ich noch ein zweites Problem. Ich versuche plotLines zur yAchse und zur xAchse darzustellen.

zur yAchse funktioniert es („heißer Tag“), aber nicht zur xAchse.

Weiß jemand Rat? Ich vermute, dass es mit der Einheit der xAchse (timeStamp) zu tun hat …

Mein Beispiel sieht so aus:

<?
define ("ID_CONTENTVARIABLE", 34552 /*[CCU\Charts\ContentVariablen\TestContentVariable]*/);
define ("ID_ARCHIVE_HANDLER", 21496 /*[Archive Handler]*/);
define ("ID_WEBFRONT_CONFIGURATOR", 31829 /*[WebFront Configurator]*/);

// Configuration
$CfgDaten["ArchiveHandlerId"]= ID_ARCHIVE_HANDLER;
$CfgDaten["ContentVarableId"] = ID_CONTENTVARIABLE;
$CfgDaten["RunMode"]="file";
$CfgDaten["WebFrontConfigId"]=ID_WEBFRONT_CONFIGURATOR;
$CfgDaten["StartTime"] = strtotime ("-2 day", time());
$CfgDaten["EndTime"] = time();

$CfgDaten["exporting"]["enabled"] = false;

// Highcharts-Theme
$CfgDaten["HighChart"]["Theme"]="gray.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"] = 400;         // in px
$CfgDaten["Title"]= IPS_GetObject(ID_CONTENTVARIABLE)["ObjectName"];

// Series

$HC_Data                                           = array();
for($i=0;$i<30;$i++){
	$HC_Data[$i]['Value']      = 20 + $i*0.1;
	$HC_Data[$i]['TimeStamp']  = strtotime ("-".$i." hours", time());
	$HC_Data[$i]['human_Date'] = date("d.m.Y H:i", $HC_Data[$i]['TimeStamp']);
}

//print_r($HC_Data);


$serie                                                             = array(    //"Id"=>$_IPS['ID_HEIZUNG_FUSSBODEN'],
                                                                               "data" => $HC_Data,
                                                                               "Name" =>"test",
                                                                               "Unit"=>"",
                                                                               //"AggType"=>3,
                                                                               //"AggValue"=>'Avg',
                                                                               //"zIndex"=> 210,
                                                                               //"RoundValue"=>1,
                                                                               //"ScaleFactor"=> 1,
                                                                               "ReplaceValues"=>false);
$serie['type']                                                 = 'line';
$serie['fillOpacity']                                          = 0.2;
$serie['step']                                                 = true;
$serie['yAxis']                                                = 0;
$serie['visible']                                              = true;
$serie['showInLegend']                                         = true;
$CfgDaten["Series"][]                                          = $serie;

// xAchse
$CfgDaten['xAxis']['tickInterval'] 									= 100000000;

$pl['value']                                                = strtotime ("-1 day", time());
$pl['width']                                                = 2;
$pl['color']                                                = '#990000';
$pl['label']['text']                                     	= 'Day';
$pl['label']['style']['color']                         		= '#606060';
$CfgDaten['xAxis']['plotLines'][]                         	= $pl;


$pb['color']                 											= 'rgba(180,180,180, 0.9)';
$pb['from']                 											= strtotime ("-2 day", time());
$pb['to']                     										= strtotime ("-1 day", time());
$CfgDaten['xAxis']['plotBands'][]                         	= $pb;


// yAchsen
$Ai = 0;
$CfgDaten["yAxis"][$Ai]['title']['text'] = "Temperatur";
$CfgDaten["yAxis"][$Ai]['Unit'] = "°C";
$CfgDaten["yAxis"][$Ai]['min'] = 10;
$CfgDaten["yAxis"][$Ai]['max'] = 30;

$pl['value']                                                 = 19;
$pl['width']                                                 = 4;
$pl['color']                                                 = '#FF0000';
$pl['label']['text']                                     = 'heißer Tag';
$pl['label']['style']['color']                         = '#606060';
$CfgDaten["yAxis"][$Ai]['plotLines'][]                 = $pl;

print_r($CfgDaten);

// Create Chart with Config File
IPSUtils_Include ("IPSHighcharts.inc.php", "IPSLibrary::app::modules::Charts::IPSHighcharts");
$CfgDaten    = CheckCfgDaten($CfgDaten);
$sConfig     = CreateConfigString($CfgDaten);
$tmpFilename = CreateConfigFile($sConfig, 'IPSPowerControl - ' . umlaute_ersetzen(IPS_GetObject(ID_CONTENTVARIABLE)["ObjectName"]));
WriteContentWithFilename ($CfgDaten, $tmpFilename);

function umlaute_ersetzen($text){
$such_array  = array ('ä', 'ö', 'ü', 'ß', 'Ä', 'Ö', 'Ü');
$ersetzen_array = array ('ae', 'oe', 'ue', 'ss', 'AE', 'OE', 'UE');
$neuer_text  = str_replace($such_array, $ersetzen_array, $text);
return $neuer_text;
}

?>

ALs Ergebnis erhalte ich folgendes:

Viele Grüße

Burkhard

Hallo bumaas,
wenn du Zeit oder Datumswerte an HC übergibst musst Du sie mit 1000 multiplizieren. HC will Millisekunden.

PS: zu Deiner Frage von gestern: Welchen Browser verwendest Du in welcher Version? Schon mal andere getestet? Der FF macht mit HC und HS manchmal Probleme. Wenns der FF ist, aktualisier mal die Seite nach dem ersten Laden.
Was für eine HC version hast Du? die 2.0 funktioniert bei immer. Bei den Höheren Versionen spackt der FF (Die Legenden werden ohne F5 zusammengestaucht dargestellt). Höhere Versionen funtionieren bei mir auch nur wenn ich sie über die 2.0 drüber-kopiere. Die beste und schnellste Darstellung für HC liefert derzeit (nach meinen Erfahrungen) Chrome. Das ist aber für mich derzeit leider ein nogo als StandardBrowser.

Super, das war es. Hatte so etwas schon fast vermutet, konnte aber nichts dazu finden. Ist auch etwas inkonsequent, da StartTime und EndTime in Sekunden erwartet werden…:confused:

Es ist der IE9, der Probleme macht. Gerade mit Chrome ausprobiert, der funktioniert problemlos.
Nachdem ich nun aber weitere Elemente (zur Zeitauswahl) in den Tab übernommen habe, funktioniert es auch im IE9. Seltsam, aber gut.:slight_smile:

Besten Dank nochmals!

Burkhard

Hallo zusammen,

ich setze als WebBrowser den IE9 ein. Mit ihm habe ich jedoch (im Gegensatz zu Chrome) massive Probleme, Monatscharts darzustellen. Die Performance liegt im Minuten(!)bereich.:mad:

Daher meine Frage an euch, ob ihr ähnliches beobachtet habt und ob es vielleicht Stellgrößen gibt, die die Performance positiv beeinflussen?

Ich setze die IPS-Highcharts Version 2.50.1 ein.

Viele Grüße

Burkhard

Hallo bumaas,

hab auch erst vor kurzem eine Temperatur-Variable angefangen zu loggen. Wird bei jeder 0,1° Änderung geschrieben. Das bringt ziehmlich viele Datensätze. Läuft seit 22.12.12.
Darstellungdes gesamten Zeitraums mit HC: Im FF flüssig, Chrome schnell, IE langsam (hängt sich z.T. sogar auf.).
Darstellung einer Woche geht mit IE noch, macht aber nicht wirklich Spass (Tooltip).
Die zu loggenden und darzustellenden Daten werd ich demächst verringern. Macht so keinen Sinn.

Tipp: Versuch weniger Daten darzustellen, d.h. stell an meinem Beispiel nur Änderungen dar 0,5° oder machs an der Zeit, z.b. 15 Minuten fest.

Hallo Wolfgang,

gut zu wissen, dass ich mit dem Problem nicht allein dastehe. Dann scheint es ja wohl wirklich am IE9 zu liegen. Selbst auf meinem iPhone läuft die Monatsanzeige flüssig.

Ich nehme die Monatsauwahl dann bei mir erst einmal heraus und beschränke mich auf Wochen und Tagesanzeigen.

So sieht es nun aus bei mir:


@all: Wieder ein kleines Projekt dank eurer Hilfe abgeschlossen :loveips:.

Viele Grüße

Burkhard

Hallo zusammen,

hat denn niemand eine Idee hierzu? Ich bin mit meiner Sucherei am Ende … weiß keine Stelle mehr an der ich suchen könnte. Mir würde schon sehr geholfen werden, wenn jemand einen Tipp hat. 1000 Dank im Voraus.

Hallo honk0504,
dann Poste doch mal Deine Config.

Hier also meine Config:

<?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.02\PV-Anlage pro Monat\Dummy Module\Highcharts_Jahre]*/  );

	// Sollwerte auslesen
	$Solldaten_ID = 57861 /*[Program\SMA Webbox\Sollwerte Monate]*/   ;
	$Solldaten_value = getValuestring($Solldaten_ID);

	// Solldaten in automatisch indiziertes Array einlesen
	$rawData = array();
	$Data = array();
	$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']);
	}

//	print_r($ext_data);

   // Quote auslesen

	$Quotedaten_ID = 23512 /*[Program\SMA Webbox\Quote Monate]*/   ;
	$Quotedaten_value  = getValuestring($Quotedaten_ID);

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

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

    // IPS Variablen ID´s
    $CfgDaten['ContentVarableId']= 57676 /*[Scripte\Highcharts_V2.02\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.02\Highcharts_V2.02]*/ ;                  // 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

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

    // Definition Y-Achse 5
	$Ai = 0;
	$CfgDaten["yAxis"][$Ai]['title']['text'] = "Ertrag in kWh";
	$CfgDaten["yAxis"][$Ai]['Unit'] = NULL;
	$CfgDaten["yAxis"][$Ai]['opposite'] = false;
	$CfgDaten["yAxis"][$Ai]['allowDecimals'] = false;
	$CfgDaten["yAxis"][$Ai]['min'] = 0;
	$CfgDaten["yAxis"][$Ai]['tickIntervall'] = NULL;
	$CfgDaten["yAxis"][$Ai]['max'] = NULL;
   $CfgDaten["yAxis"][$Ai]['labels']['style']['color'] = '#A5A5A5';
   $CfgDaten["yAxis"][$Ai]['title']['style']['color'] = $CfgDaten["yAxis"][$Ai]['labels']['style']['color'];

// Definition Y-Achse 6
//	$Ai = 1;
//	$CfgDaten["yAxis"][$Ai]['title']['text'] = "Quote";
//	$CfgDaten["yAxis"][$Ai]['Unit'] = NULL;
//	$CfgDaten["yAxis"][$Ai]['opposite'] = false;
//	$CfgDaten["yAxis"][$Ai]['allowDecimals'] = false;
//	$CfgDaten["yAxis"][$Ai]['min'] = 0;
//	$CfgDaten["yAxis"][$Ai]['tickIntervall'] = NULL;
//	$CfgDaten["yAxis"][$Ai]['max'] = 150;
// $CfgDaten["yAxis"][$Ai]['labels']['style']['color'] = '#AABBAA';
//   $CfgDaten["yAxis"][$Ai]['title']['style']['color'] = $CfgDaten["yAxis"][$Ai]['labels']['style']['color'];

    // **************************************************************************************
    // *** 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,
						"Name" =>"SOLL-Ertrag",
						"Unit"=>" kWh",
						"zIndex"=> 2,
						"AggType"=>3,
						"AggValue"=>"Avg",
						"RoundValue"=>2,
						"ScaleFactor"=> 1,
						"ReplaceValues"=>false);
	$serie['type'] = "column";
	$serie['step'] = false;
	$serie['yAxis'] = 0;
	$serie['visible'] = true;
	$serie['showInLegend'] = true;
	$serie['enableMouseTracking'] = true;
	$serie['color'] = '#A5A5A5';
	$serie['shadow'] = true;
	$serie['dashStyle'] = NULL;
	$serie['lineWidth'] = 1;
	$serie['states']['hover']['lineWidth'] = 0;
	$serie['marker']['enabled'] = true;
	$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;
	$CfgDaten["Series"][] = $serie;
	
	// Ertrag pro Monat
	// NS Dauer pro Monat
	$serie = array("Id"=>57373,
	               "Name" =>"IST-Ertrag",
						"Unit"=>" kWh",
						"zIndex"=> 3,
						"AggType"=>3,
						"AggValue"=>"Avg",
						"RoundValue"=>2,
						"ScaleFactor"=> 1,
						"ReplaceValues"=>false);
	$serie['type'] = "line";
	$serie['step'] = false;
	$serie['yAxis'] = 0;
	$serie['visible'] = true;
	$serie['showInLegend'] = true;
	$serie['enableMouseTracking'] = true;
	$serie['color'] = '#FFFF55';
	$serie['shadow'] = true;
	$serie['dashStyle'] = NULL;
	$serie['lineWidth'] = 2;
	$serie['states']['hover']['lineWidth'] = 0;
	$serie['marker']['enabled'] = true;
	$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;
	$CfgDaten["Series"][] = $serie;
	
	// Quote-Werte
	$serie = array("Data" => $quote_data,
						"Name" =>"Quote",
						"Unit"=>" %",
						"zIndex"=> 1,
						"AggType"=>3,
						"AggValue"=>"Avg",
						"RoundValue"=>2,
						"ScaleFactor"=> 1,
						"ReplaceValues"=>false);
	$serie['type'] = "line";
	$serie['step'] = false;
	$serie['yAxis'] = 0;
	$serie['visible'] = true;
	$serie['showInLegend'] = false;
	$serie['enableMouseTracking']  = true;
	$serie['color'] = '#C00000';
	$serie['shadow'] = true;
	$serie['dashStyle'] = NULL;
	$serie['lineWidth'] = 0;
	$serie['states']['hover']['lineWidth'] = 0;
	$serie['marker']['enabled'] = true;
	$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;
	$CfgDaten["Series"][] = $serie;
	
   // Tooltip anpassen
	$CfgDaten['tooltip']['useHTML'] = true;
	$CfgDaten['tooltip']['shared'] = true;
	$CfgDaten['tooltip']['crosshairs'][] = array('width' =>2,'color' =>'grey','dashStyle'=>'dashdot' );
	$CfgDaten['tooltip']['formatter'] = "@function() {
																		var s;
																		var s = '<b>' + Highcharts.dateFormat('%B %Y', this.x) + '</b>';
																		$.each(this.points, function(i, point)
																		{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']."',
																						}[point.series.name];
																						s += '<br>' + this.series.name + ': ' + '<b><span style=color:' + this.series.color + '>'
																						+ Highcharts.numberFormat(this.y, 2, ',', '.') + unit + '</b></span>'
																						});
																						return s;
																						}@";


	// 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
// print_r($CfgDaten);
	// -------------------------------------------------------------------------------------------------------------------------------------
	// 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
			}
		}

?>

Hallo honk0504,

änder mal

$serie = array(„Id“=>57373,

in

$serie = array(„Data“ => $quote_data,

Wenns das nicht ist, poste mal ein print_r der $quote_data

Hallo Wolfgang,

hier eine kurze Erklärung: ich habe drei Werte die ich visualisieren möchte. Soll-Wert, Ist-Wert und die Quote daraus.
Hier ganz gut zu sehen.

Wenn ich nun also meine Var-ID für Ist-Wert (57373) in $quote_data ändere, dann habe ich die Quote zweimal drin und den Ist-Wert gar nicht mehr. Und dabei ist der IST-Wert derjenige, der hier die Probleme macht.
Guckst Du hier und hier.

HURRA!!! Ich habe das Problem gefunden und behoben.

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

ist des Pudels Kern.
Ich habe es in

$CfgDaten['AggregatedValues']['MixedMode'] = false;

gewechselt und alles ist wieder gut. :smiley:

Kann mir jemand erklären wieso das so ist? Was macht diese Einstellung und wieso kam es hier zu Problemen?

Hallo zusammen,

ich habe einen Highchart mit mehreren Temperaturen aufgebaut. Die Reihen (Temperatur1, Temperatur2,…) bestehen jedoch aus vielen Messwerten (alle 10 Sekunden). Möchte ich nun den Graph über mehrere Tage anzeigen, dauert der Aufbau sehr sehr lange. Weiss jemand, wie ich dies im Nachhinein ändern kann?