veraltet: 'Title' -> verwende ['title']['text'] $CfgDaten['title']['text'] = "KroKa"; // ************************************************************************************** // *** 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'] = 2; $CfgDaten['yAxis'][0]['min'] = 0; $CfgDaten['yAxis'][0]['max'] = 30; // $CfgDaten['yAxis'][1]['title']['text'] = "Heizungssteller / Luftfeuchte"; // $CfgDaten['yAxis'][1]['Unit'] = "%"; // $CfgDaten['yAxis'][1]['opposite'] = true; $CfgDaten['yAxis'][1]['title']['text'] = "Speicher"; $CfgDaten['yAxis'][1]['unit'] = "°C"; $CfgDaten['yAxis'][1]['opposite'] = true; $CfgDaten['yAxis'][1]['tickInterval'] = 5; $CfgDaten['yAxis'][1]['min'] = 20; $CfgDaten['yAxis'][1]['max'] = 80; $CfgDaten['yAxis'][2]['title']['text'] = "Heizstati"; // $CfgDaten['yAxis'][2]['labels']['formatter'] = "@function() { if (this.value == 0) return 'AUS'; if (this.value == 1) return 'Stufe 1';if (this.value == 2) return 'Stufe 2' }@"; $CfgDaten['yAxis'][2]['labels']['formatter'] = "@function() { if (this.value == 0) return 'Aus'; if (this.value == 1 ) return 'Ein'; }@"; $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' => 33317, 'Unit'=>"°C"); // $serie['data'][] = array('name'=>'AussentempMittelwert', 'Id' => 54847, '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'] = "°C Aussen"; $serie['Id'] = 33317 /*[Steuerung\Energie\Heizung (eBus)\Geräte\Masterregler 6320\0621 00 0x80 Aussentemperatur]*/; $serie['unit'] = "°C"; $serie['ReplaceValues'] = false; $serie['RoundValue'] = 1; $serie['type'] = "spline"; $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['tooltip']['enabled'] = true; $serie['tooltip']['backgroundColor'] = "rgba(255,255,255,.85)"; $serie['tooltip']['borderColor'] = "auto"; $serie['tooltip']['valueDecimals']=3; $CfgDaten['series'][] = $serie; //print_r ($serie); $serie = array(); $serie['name'] = "°C AVG Aussen"; $serie['Id'] = 54847 /*[Steuerung\Energie\Heizung (eBus)\Geräte\Masterregler 6320\0621 02 0x94 Aussentemp Mittelwert]*/; $serie['unit'] = "°C"; $serie['ReplaceValues'] = false; $serie['type'] = "spline"; $serie['step'] = false; $serie['yAxis'] = 0; $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'] = "°C Puffer Oben"; $serie['Id'] = 34479 /*[Steuerung\Energie\Heizung (eBus)\Geräte\Masterregler 6320\0621 00 0x8F Puffertemperatur oben]*/; $serie['unit'] = "°C"; $serie['ReplaceValues'] = false; $serie['type'] = "spline"; $serie['step'] = false; $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'] = "°C Puffer Mitte"; $serie['Id'] = 35093 /*[Steuerung\Energie\Heizung (eBus)\Geräte\Masterregler 6320\0621 00 0x91 Puffertemperatur mitte]*/; $serie['unit'] = "°C"; $serie['ReplaceValues'] = false; $serie['type'] = "spline"; $serie['step'] = false; $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'] = "Brenner Stufe"; $serie['Id'] = 58877 /*[Steuerung\Energie\Heizung (eBus)\Geräte\Masterregler 6320\0621 01 0xE4 Brenner Stufe]*/; // $serie['unit'] = array(0=>'AUS', 1=>'Stufe 1', 2=>'Stufe 2'); // $serie['unit'] = array(0=>'Aus', 1=>'Ein'); $serie['Unit'] = "kWh"; $serie['ReplaceValues'] = array(0=>0, 1=>1, 2=>1); $serie['type'] = "line"; $serie['step'] = true; $serie['yAxis'] = 2; $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'] = "Strombezug"; // $serie['Id'] = 33507 /*[Steuerung\Energie\Strom\Zähler\Strom Bezug]*/; // $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; // Chart-Optionen "Tooltip" $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 '' + Highcharts.dateFormat('%A, %d.%m.%Y, %H:%M', this.x) + ' Uhr
' + this.series.name + ': ' + '' + this.y + unit + ''; }@"; // 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'] = 600; // 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 } } ?>