veraltet: 'Title' -> verwende ['title']['text'] $CfgDaten['title']['text'] = "Anwesenheit"; // ************************************************************************************** // *** subtitle *** siehe http://www.highcharts.com/ref/#subtitle // ************************************************************************************** // $CfgDaten['subtitle']['text'] = "Zeitraum: %STARTTIME% - %ENDTIME%" // Sub-Überschrift. Wenn nichts angegeben wird wird dieser String als Default verwendet // -> veraltet: 'SubTitle' -> verwende ['subtitle']['text'] // $CfgDaten['subtitle']['Ips']['DateTimeFormat'] = "(D) d.m.Y H:i" // z.B.: "(D) d.m.Y H:i" (wird auch als Default herangezogen wenn nichts konfiguriert wurde) // -> veraltet: 'SubTitleDateTimeFormat' -> verwende ['subtitle']['Ips']['DateTimeFormat'] // -> entfallen: 'SubTitleFormat' ->unnötiger Paramter, wird jetzt in ['subtitle']['text'] angegeben $CfgDaten['subtitle']['text'] = "Zeitraum: %STARTTIME% - %ENDTIME%"; $CfgDaten['subtitle']['Ips']['DateTimeFormat'] = "(D) d.m.Y H:i"; // ************************************************************************************** // *** tooltip *** http://www.highcharts.com/ref/#tooltip // ************************************************************************************** //$CfgDaten['tooltip']['enabled'] = false; // ************************************************************************************** // *** exporting *** http://www.highcharts.com/ref/#exporting // ************************************************************************************** //$CfgDaten['exporting']['enabled'] = true; // ************************************************************************************** // *** lang *** http://www.highcharts.com/ref/#lang // ************************************************************************************** //$CfgDaten['lang']['resetZoom'] = "Zoom zurücksetzten"; // ************************************************************************************** // *** legend *** http://www.highcharts.com/ref/#legend // ************************************************************************************** //$CfgDaten['legend']['backgroundColor'] = '#FCFFC5'; // ************************************************************************************** // *** xAxis *** http://www.highcharts.com/ref/#xAxis // ************************************************************************************** //$CfgDaten['xAxis']['lineColor'] = '#FF0000'; //$CfgDaten['xAxis']['plotBands'][] = array("color"=>'#FCFFC5',"from"=> "@Date.UTC(2012, 3, 29)@","to"=> "@Date.UTC(2012, 3, 30)@"); // ************************************************************************************** // *** yAxis *** http://www.highcharts.com/ref/#yAxis // ************************************************************************************** // $CfgDaten['yAxis'][0]['title']['text'] = "Temperaturen"; // Bezeichnung der Achse // -> veraltet: 'Name' und 'TitleText' -> verwende ['title']['text'] // $CfgDaten['yAxis'][0]['Unit'] = "°C"; // Einheit für die Beschriftung die Skalenwerte // $CfgDaten['yAxis'][0]['min'] = 0; // Achse beginnt bei Min (wenn nichts angegeben wird wird der Min der Achse automatisch eingestellt) // $CfgDaten['yAxis'][0]['max'] = 40; // Achse geht bis Max (wenn nichts angegeben wird wird der Max der Achse automatisch eingestellt) // -> veraltet: 'Min' und 'Max' // $CfgDaten['yAxis'][0]['opposite'] = false; // Achse wird auf der rechten (true) oder linken Seite (false) des Charts angezeigt (default = false) // -> veraltet: 'Opposite' // $CfgDaten['yAxis'][0]['tickInterval'] = 5; // Skalenwerte alle x (TickInterval) // -> veraltet: 'TickInterval' // -> entfallen: 'PlotBands' -> verwende ['yAxis'][0]['plotBands'], (siehe Beispiel 'cfg - drehgriff und tf-kontakt') // -> entfallen: 'YAxisColor' -> verwende ['yAxis'][0]['title']['style'] // -> entfallen: 'TitleStyle'-> verwende ['yAxis'][0]['title']['style'] $CfgDaten['yAxis'][0]['title']['text'] = "Entfernung in km"; // $CfgDaten['yAxis'][0]['Unit'] = ""; $CfgDaten['yAxis'][0]['opposite'] = false; // $CfgDaten['yAxis'][0]['tickInterval'] = 5; $CfgDaten['yAxis'][0]['min'] = 0; // $CfgDaten['yAxis'][0]['max'] = 40; $CfgDaten['yAxis'][1]['title']['text'] = "Tür"; // $CfgDaten['yAxis'][1]['Unit'] = "%"; $CfgDaten['yAxis'][1]['opposite'] = true; // $CfgDaten['yAxis'][1]['TickInterval'] = 20; $CfgDaten['yAxis'][1]['min'] = 0; $CfgDaten['yAxis'][1]['max'] = 100; // ************************************************************************************** // *** series *** http://www.highcharts.com/ref/#series // ************************************************************************************** // $CfgDaten['name'] = "Temperatur; // Name der Kurve (Anzeige in Legende und Tooltip) // -> veraltet: 'Name' -> verwende ['name'] // $CfgDaten['Unit'] = "°C"; // Anzeige in automatisch erzeugtem Tooltip // wenn $CfgDaten['Unit'] = NULL; // oder Unit wird gar nicht definiert, wird versucht die Einheit aus dem Variablenprofil automatisch auszulesen // $CfgDaten['ReplaceValues'] = false; // Werte werden wie geloggt übernommen // $CfgDaten['ReplaceValues'] = array(0=>0.2,1=>10) // der Wert 0 wird in 0.2 geändert, der Wert 1 wird in 10 geändert // das macht für die Darstellung von Boolean Werte Sinn, oder für Drehgriffkontakte (Werte 0,1,2) // $CfgDaten['type'] = 'spline'; // Festlegung des Kuventypes (area, areaspline, line, spline, pie, Column) // $CfgDaten['yAxis'] = 0; // Nummer welche Y-Achse verwendet werden soll (ab 0) // -> veraltet: 'Param' -> verwende die Highcharts Parameter - sollte eigentlich noch so funktionieren wie in IPS-Highcharts V1.x // $CfgDaten['AggType'] = 0 // Festlegung wie die Werte gelesen werden soll (0=Hour, 1=Day, 2=Week, 3=Month, 4=Year), hat Vorrang gegenüber den Einstellungen in AggregatedValues // wird kein AggType definiert werden alle gelogten Werte angezeigt // $CfgDaten['AggNameFormat'] = "d.m.Y H:i"; // (gilt nur bei den Pies, wenn eine Id verwendet wird), entspricht dem PHP-date("xxx") Format, welches das Format der Pie Namen festlegt, wenn keine Eingabe werden Default Werte genommen // $CfgDaten['Offset'] = 24*60*60; hiermit können Kurven unterschiedlicher Zeiträume in einem Chart dargestellt. Angabe ist in Minuten // $CfgDaten['StartTime'] = mktime(0,0,0,1,1,2012); // wird für die entsprechende Serie eine Anfangs- und/oder Endzeitpunkt festgelegt wird dieser verwendet. Ansonsten wird // CfgDaten['EndTime'] = mktime(0,0,0,2,1,2012); // der Zeitpunkt der Zeitpunkt aus den $CfgDaten genommen // CfgDaten['ScaleFactor'] = 10; // Skalierungsfaktor mit welchem der ausgelesene Werte multipliziert wird // CfgDaten['RoundValue'] = 1; // Anzahl der Nachkommastellen // CfgDaten['AggValue'] ='Min' // über AggValue kann Min/Max oder Avg vorgewählt werden (Default bei keiner Angabe ist Avg) // ist sinnvoll wenn nicht Einzelwerte sondern Stundenwerte, Tageswerte, usw. ausgelesen werden // CfgDaten['data'] = array('TimeStamp'=> time(),'Value'=12) // hier kann ein Array an eigenen Datenpunkten übergeben werden. In diesem Fall werden für diese Serie keine Daten aus der Variable gelesenen. /* $serie = array(); $serie['name'] = 'Pie'; $serie['type'] = 'pie'; $serie['data'][] = array('name'=>'Aussentemperatur', 'Id' => 23960, 'Unit'=>"°C"); $serie['data'][] = array('name'=>'Luftfeuchte', 'Id' => 13641, 'Unit'=>"%"); $serie['allowPointSelect'] = true; $serie['cursor'] = 'pointer'; $serie['center'] = array(300,100); $serie['size'] = 100; $serie['dataLabels']['enabled'] = true; $CfgDaten['series'][] = $serie; */ $serie = array(); $serie['name'] = "Entfernung Aki"; $serie['Id'] = 30419; $serie['Unit'] = "km"; $serie['step'] = true; // $serie['ReplaceValues'] = false; $serie['type'] = "line"; $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; $serie['RoundValue'] = 1; $CfgDaten['series'][] = $serie; $serie = array(); $serie['name'] = "Haustür"; $serie['Id'] = 22613; //$serie['Unit'] = array(0.2=>'geschlossen', 10=>'geöffnet'); $serie['ReplaceValues'] = array(0=>0.2, 1=>10); $serie['type'] = "area"; $serie['step'] = true; $serie['yAxis'] = 1; $serie['shadow'] = true; $serie['lineWidth'] = 1; $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; /* $serie = array(); $serie['name'] = "Column"; $serie['Id'] = ; $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']="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'] = 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 } } ?>