Q&A Highcharts - Multigraph V1.0

ist Dir eigentlich mal aufgefallen, dass alle Anderen Ihren Code in PHP-Tags packen und der dann scnön formatiert und lesbar ist?:mad:

Nee, Sorry war mir nicht … Schäm

Geändert

besser, jetzt kann man es auch lesen.
kannst Du mal einen Screenshot beilegen, der die HC-Variablen und die Temperatur-Variablen im Objektbaum zeigt?

Hier bitte

noch zur Info: Das Script ist das Highchart ein paar Zeilen unter der Variablen

Hallo zusammen,

ich habe meinen Fehler gefunden! :smiley:
Es darf nicht

series: [
                            {name: 'Sollwerte in kWh', Unit: 'kWh', type:'column', yAxis: 0, visible: true, color: '#A5A5A5', shadow: true, lineWidth: 1, showInLegend: true, enableMouseTracking: true,
                                states: {hover:{lineWidth: 1}},dashStyle: 'shortdot', marker: { enabled: true, states: { hover: { enabled: false, radius: 4}}},
                                data:[$PV_Ertrag_Soll]
                            }, %data%
                            {name: 'Quote in %', Unit: '%', type:'line', yAxis: 0, visible: true, color: '#C00000', shadow: true, lineWidth: 0, showInLegend: false, enableMouseTracking: true,
                                states: {hover:{lineWidth: 1}}, marker: { enabled: false, states: { hover: { enabled: false, radius: 4}}},
                                data:[$PV_Quote]
                            },
                  ]

dort stehen (so hat es aber noch mit der Version vor V1.0008 funktioniert), sondern es muss

series: [
                            {name: 'Sollwerte in kWh', Unit: 'kWh', type:'column', yAxis: 0, visible: true, color: '#A5A5A5', shadow: true, lineWidth: 1, showInLegend: true, enableMouseTracking: true,
                                states: {hover:{lineWidth: 1}},dashStyle: 'shortdot', marker: { enabled: true, states: { hover: { enabled: false, radius: 4}}},
                                data:[$PV_Ertrag_Soll]
                            }, %data%,
                            {name: 'Quote in %', Unit: '%', type:'line', yAxis: 0, visible: true, color: '#C00000', shadow: true, lineWidth: 0, showInLegend: false, enableMouseTracking: true,
                                states: {hover:{lineWidth: 1}}, marker: { enabled: false, states: { hover: { enabled: false, radius: 4}}},
                                data:[$PV_Quote]
                            }
                  ]

dort stehen. Die Kommas müssen anders gesetzt werden. Jetzt ist wieder alles super! :loveips:
Danke für Eure Geduld.

… ist zwar nicht wichtig, aber einen Unterschied bei den beiden Codeschnipseln kann ich auf die Schnelle nicht entdecken :o

ich denke, das ist auch nicht so einfach (das sieht wohl nur 'n Insider :D)

hier hatter nen Komma vergessen (hinter %data%)


              data:[$PV_Ertrag_Soll] 
     }, %data% 
    {name: 'Quote in %', 

mich wundert eher, das die Versionen vor 1.008 das toleriert haben :wink:

Ja, das hat mich ja auch gewundert … daher habe ich hier ja auch so „genervt“. Ich konnte nicht verstehen, dass es vorher lief und dann ganz plötzlich nicht mehr.
Hat mich 2 Wochen beschäftigt (nein, nicht am Stück ohne Essen und Schlaf :rolleyes:). Alles wird gut. :slight_smile:

Hi,

hat jemand einen Tipp für mich ???

Im Moment leider nein da deine Variante bei mir funktioniert und jetzt erst einmal der Maibaum dran ist.

Sent from my iPhone using Tapatalk

Ich habe jetzt doch „schwarze Schrift auf dunkelblauen“ Hintergrund in der Webausgabe erkannt:
Notice: Undefined variable: IPS_SELF in C:\IP-Symcon\scripts\11586.ips.php on line 6

Scheinbar liegt es an der IPS_SELF, wenn ich diese zuweise, stellt er die Graphen richtig dar…

Mein angepasster Code: (Ziel ist aber, ich würde gern IPS_SELF weiter nutzen…) - ???

	//$Par_ID=IPS_GetParent($IPS_SELF);
	$Par_ID=48146;
	$HeizungsID=$Par_ID;
	$FensterID = @IPS_GetVariableIDByName("Fenster geöffnet", $Par_ID);
	//
	//	$IstTempID=35116 /*[Heizungen\FHT-Arb-/Wohnzimmer\Temperatur]*/;
	$IstTempID = IPS_GetVariableIDByName("Temperatur", $Par_ID);
	//$IstTempID = (int)$IstTempID;
	//echo"
IstTempId=$IstTempID";
	$HighchartID = IPS_GetVariableIDByName("Highchart", $Par_ID);
	$SollTempID= IPS_GetVariableIDByName("Soll Temperatur", $Par_ID);
	//
	$scriptname=IPS_GetName($IPS_SELF);
	echo "
Script '$scriptname' gestartet";
	//
	$Heizungsname=IPS_GetName($HeizungsID);
	echo "
Heizungsname=$Heizungsname";

Manchmal sieht man den Wald vor lauter Bäumen nicht.

$_IPS[‚SELF‘]

Sent from my iPhone using Tapatalk

Hi,

habe ich ausprobiert, die Script ID wurde mit meiner Variante ($Par_ID=IPS_GetParent($IPS_SELF)) und auch mit Deiner ($ScriptID=$_IPS[‚SELF‘]:wink: korrekt ermittelt.
Hätte mich auch gewundert, nutze diese Funktion bei meiner gesamten Haussteuerung n-fach.

Leider bleibt das Problem. Nur wenn ich sie statisch zuweise werden die Graphen im Webfront richtig angezeigt.

Folgender Fehler auf Webseite jetzt:

Notice: Undefined index: SELF in C:\IP-Symcon\scripts\11586.ips.php on line 6
ScriptID= ParID=0

Mein Script:

<?
	//
	//include ('14253.ips.php');
	//
	//
	$ScriptID=$_IPS['SELF'];
	echo"
ScriptID=$ScriptID";
	$Par_ID=IPS_GetParent($ScriptID);
//Par_ID=48146 /*[Heizungen\FHT-Arb-/Wohnzimmer]*/;
	echo"
ParID=$Par_ID";
	$HeizungsID=$Par_ID;
	$FensterID = @IPS_GetVariableIDByName("Fenster geöffnet", $Par_ID);
	//
	//	$IstTempID=35116 /*[Heizungen\FHT-Arb-/Wohnzimmer\Temperatur]*/;
	$IstTempID = IPS_GetVariableIDByName("Temperatur", $Par_ID);

Ich befürchte, dass Problem liegt woanders. Kann es sein, dass ich mein Highcharts-Script und dass Highcharts_v_1006-Script nicht in unterschiedlichen Kategorien haben darf. Ich habe -ganz kühn- nur eine neue Variable angelegt und das Highchart-Script kopiert.

Das Problem liegt nicht am HighchartsScript. Dieses sollte (muss aber nicht) nur einmal vorhanden sein. Das Cfg-Script kannst Du beliebig kopieren - eben für jeden Chart eine Cfg-Script.

Dein Problem liegt daran dass du keine Id zurückbekommst.
Rufst Du das Script über ein anderes Script auf?
Wenn ja füge bei dir am Anfang des Scripts

global $IPS_SELF;

hinzu.

Grüße KHC

Ich bin am Verzweifeln …

Ich habe jetzt den Kommentar in den Code (Zeile4+5) eingefügt:

<?
	global $IPS_SELF;//
	//
	//$ScriptID=$_IPS['SELF'];
	//mit der übernächsten Zeile ($ScriptID=11586;) funktionieren die Graphen, mit der
	//vorherigen ($ScriptID=$_IPS['SELF'];) nicht, die echo-Ausgabe (Zeile 8) liefert in beiden Fällen korrekten Wert (11586)
	$ScriptID=11586;
	echo"
ScriptID=$ScriptID";
	$Par_ID=IPS_GetParent($ScriptID);
	echo"
ParID=$Par_ID";

ich glaube zu wissen woran es liegt.
Das Script wird beim Aufruf einmal direkt gestartet und dann nochmals durch das WebInterface.

Beim Aufruf durch das WebInterface gibt es die $IPS_SELF nicht.

Verwende als $CfgDaten[„RunMode“]= „file“. Dann sollte das Problem behoben sein. Nachteil - du musst zum Aktualisieren immer das Script starten.

Jetzt mal ne ganz doofe Frage…woher bekomme ich die Ips.js die ich in themes kopieren muss…finde die Partout nicht…

hier isse: http://www.ip-symcon.de/forum/121114-post9.html

Ahh Perfekt vielen dank.
Der Rest ist absolut Super und leicht verständlich :slight_smile:
Nur an einer Stelle Steige ich noch nicht durch…die Auswahl der Zeitskalierung.
Würde mir kurz jemand einen Denkanstoß geben wie ich bspw. Auf einen Monat skaliere? Finde das gerade nicht wieder…

du kannst aber auch ein theme von den durch highcharts gelieferten verwenden.
Einstellung:

$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....