MultiGraph mit GoogleChart

Morgen Werner,

solche Fehlermeldungen bekomme ich auch.

Gruß Uwe

Hallo swissboy

Müsste irgendwie gehen, in dem man die Log Datei ausliest, das Datum im Skript abschneidet ein neues Datum von diesem Jahr dranmacht und es als 2 Graph bei Google berechnen lässt.

Gruß Uwe

Fehlermeldungen werde ich mir ansehen.
Wie gesagt schaut einmal bei welcher Variablen die Meldungen kommen.

Müsste irgendwie gehen, in dem man die Log Datei ausliest, das Datum im Skript abschneidet ein neues Datum von diesem Jahr dranmacht und es als 2 Graph bei Google berechnen lässt.

Gebt mir mal 5 Wochen Zeit. Zur Zeit zuviel um die Ohren.:frowning:

Danke Karlheinz für die schnelle Antwort.
Ich habe mir gedacht, dass dir die Variable klar ist, denn es handelt sich ja um das Funktionen Script von Google-Charts, welches ja nicht verändert wird. Ich schicke dir jetzt die ersten 120 Zeilen dieses Scriptes (welches ja ca. 700 hat):

<?
//***********************
// Tag
//***********************
function Tag ($Vari,$archiveHandlerID,$starttime, $endtime,$BoolOffset)
	{
	for ($j=0;$j<count($Vari);$j++)
		{
  		$Daten3 = AC_GetLoggedValues($archiveHandlerID,$Vari[$j],$starttime,$endtime,0);
  		$m=0;
  		
  		$Var = IPS_GetVariable($Vari[$j]);

		if ($Var['VariableValue']['ValueType'] == 0)
		   {
			$zahl = count($Daten3);
			$um = 180/86400;
			$i = 1;
			$dat[0] = 1;$zeit[0]=0;
			if ($Daten3[$zahl-1]['Value'])
            $dat[0] = 0;

			for($k=$zahl-1;$k>=0;$k--)
			   {
			   if ($dat[$i-1] != $Daten3[$k]['Value'])
			   {
			   $dat[$i]		= $Daten3[$k]['Value'];
			   $zeit[$i]   = round(($Daten3[$k]['TimeStamp']-$starttime)*$um,0);
			   if ($zeit[$i]<0)
			      $zeit[$i] = 0;
				$i++;
				}
				}

				$dat[$i]    = $dat[$i-1];
				$zeit[$i]   = 180;

			$i = 0;
			for($k=0;$k<count($zeit);$k++)
			   {
			   if ($dat[$k])
			      {
			   	$X[$i]		= $zeit[$k];
					$Daten[$i] 	= 0;
					$X[$i+1]    = $zeit[$k];
					$Daten[$i+1]  = $BoolOffset;
					}
				else
					{
					$X[$i] 		= $zeit[$k];
					$Daten[$i] 	= $BoolOffset;
					$X[$i+1]    = $zeit[$k];
					$Daten[$i+1]  = 0;
					}
				$i=$i+2;
				}

			$X[$i-2] 		= 180;
			$Daten[$i-2]	= $Daten[$i-3];
			$X[0]=0;
			$Daten[0]   = $Daten[1];
			ksort ($Daten);
			ksort ($X);
			}

		else
		   {
    		for($l=168;$l>=0;$l--)
				{
				if (@$Daten3[$l]['Value'])
					{
					$Durch_Alt = round($Daten3[$l]['Value'],1);
					break;
					}
			   }

	   	$Durch = 0;$l=0;
   	
			for ($i=0;$i<181;$i++)
				{
 				$starti		= $starttime+($i*480);
				$endi    	= $starttime+(($i+1)*480);

				for ($k=0;$k<count($Daten3);$k++)
				   {
  	 			  	if ($Daten3[$k]['TimeStamp']>$starti and $Daten3[$k]['TimeStamp']<$endi)
	  			    	{
						$Durch = $Durch+$Daten3[$k]['Value'];
						$l++;
						}
					else
		  			 	{
		  			 	if ($l !=0)
						//if ($Durch !=0)
							{
							$Daten[$i] = round($Durch/$l,1);
							$Durch_Alt = round($Durch/$l,1);
							$Durch=0;$l=0;
      					}
						else
						   {
//dies ist Zeile 102 !!!				   		$Daten[$i] = $Durch_Alt;
							$Durch=0;$l=0;
						   }
						}

	    			}
				$X[$m] = $m;
				$m++;
  				}
  			}
		$daten[$j*2] = $X;
		$daten[($j*2)+1] = $Daten;
		unset ($X);unset ($Daten);unset ($zeit);unset ($dat);
		}
	return ($daten);
	}

Dieser Fehler müsste ja aber doch bei jeden auftreten, da ja wie schon gesagt, das Script nicht verändert wird.
Gruß und danke Werner

Hallo wieder einmal,
Hat diese Fehlermeldung (im Meldungsfenster von IPS) wirklich keiner? Im Prinzip funzt zwar alles wie gewollt, aber irgend etwas muss diese Meldung doch zu bedeuten haben.

Das was ich aber eigentlich fragen will: wie setzt ihr eine Datumsauswahl beim Graphen von Google-Carts um? Aktuell lasse ich mir die letzten 24 Stunden anzeigen, jetzt will ich aber zb. die Temperaturen von gestern oder vorgestern sehen. Ich habe schon gesehen, dass man ein gewünschtes Datum direkt in das Skript schreiben kann - aber wie kann man da eine Auswahl mit „WAF-Akzeptanz“ machen - über das Dashboard?

Gruß Werner

Hallo…

Gibt es die Möglichkeit die Extrema anzuzeigen oder dann nur die Extrema für die Visualisierung zu verwenden? mich interessieren die spitzen…

Hallo Walter,

Du mußt den Parameter Dymamisch auf 0 stetzen dann sollte es funktionieren.:rolleyes:

Danke, Karl-Heinz. Steht ja sogar in den Kommentaren… Hab ich irgendwie überlesen. Klappt ansonsten einwandfrei !

Gruß
Walter

Leider muss ich nochmal lästig sein:
Ich möchte zb. Tagesgraphen mit Temperaturwerten von gestern oder Vorgestern sehen. Wie muss ich da vorgehen?
Ich habe jetzt schon mehrere Beiträge gelesen aber finde nirgends die passende Lösung. Im Beitrag „WebFront Graphen im Dashboard“ habe ich die visuelle Lösung für das Dashboard gefunden, aber wie stelle ich das Datum um zb. 1 Tag zurück? Ich kann mir vorstellen dass das mit einer Variablen geht, auf die im Google-Konfigurations-Skript verwiesen wird. Aber wie schreibe ich in diese Variable den Wert mit dem Format (zb.: 06-11-2011 20:20) als Endzeit, wie man ihn im Konfig-Skript eintragen muss? Und wie stelle ich das dann -1 Tag?
Gruß, Werner

Es tut mir leid, aber ich kann die Progammierung leider nicht.
Ich versuche nun schon seit Tagen drauf zu kommen, wie man in dem Konfig-Script ein anderes Datum übergibt.
Ich habe es schon auf mehreren Varianten versucht, aber bei allen hängt sich der Computer auf (muss eine Endlosschleife oder so was sein).Wahrscheinlich liegt es an den Anführungszeichen.
Hier mal der Code:

<?
//Probeskript für zeitliche Navigation:

$zeit = 45092 /*[Probescripte\datum_zeit_string]*/;
//in der Stringvariable 45092 steht die Endzeit im Format: TT-MM-JJJJ HH:MM

$Daten = array(
   "Vari[0]"=>29705, "Trans[0]"=>0,	"YAchse[0]"=>0, "Farben[0]"=>"F61A02", "Text[0]"=>"Temperatur",
   //"Vari[1]"=>32382, "Trans[1]"=>0,	"YAchse[1]"=>0, "Farben[1]"=>"22E922", "Text[1]"=>"Regen",
   //"Vari[2]"=>44988, "Trans[2]"=>0,	"YAchse[2]"=>1, "Farben[2]"=>"3431FE", "Text[2]"=>"Feuchte",
   //"Vari[3]"=>33728, "Trans[3]"=>0, "YAchse[3]"=>1, "Farben[3]"=>"000000", "Text[3]"=>"Wind",
	"Zeitspanne"=>1,
	"YBeschriftung[0]"=>"°C",//"YBeschriftung[1]"=>"%/Km/h",
	"Pfad"=>"C:/programme/ip-symcon/media/googlechart_graphen/","filename"=>"Wetter_Temperatur_probe",
	"Size"=>"660x450",
	//"Endzeit"=>"$zeit", geht nicht
	//"Endzeit"=>$zeit,  geht auch nicht
	"Ueberschrift"=>"Wetter - Temperatur",
	//"BoolOffset"=>15,
	"Hinter1"=>"E8ECEE", "Hinter2"=>"C9CeD0",
	"Schriftfarbe"=>"000000",
	"Dynamisch"=>0,
	"Graphenart"=>"",
	//"Faktor[0]"=>.5,"Faktor[1]"=>.5,"Faktor[2]"=>0.5,"Faktor[3]"=>0.5
	);
IPS_RunScriptEx(55977 /*[GoogleChart_Graphen\GoogleChart_V1_02.ips.php]*/, $Daten);  //ID Skript GoogleChart
?>

Kann mir bitte irgend jemand auf die Sprünge helfen, wie man den Inhalt von zb. dieser Datumsvariable richtig übergibt.
Wenn das erst einmal funktioniert, dann sehe ich auch für die übrigen Auswahlkriterien einen Lichtblick.
Sollte ich dies dann zum Laufen bringen, poste ich das gebastelte Script natürlich gerne.

Gruß, Werner

Hallo,
versuche doch mal mit GetValue den Wert von der VarID zu lesen :wink:

$zeitID = 34421  /*[GRAFIK_DIAGRAMME\GoogleCharts\DATUM_UHRZEIT_DD-MM-YYYY HH:MM]*/;
$zeit   = getvalue ($zeitID);

$Daten = array(
...
"Endzeit"=>$zeit,


tgusi74

Super - danke für die schnelle Antwort - so funktioniert es, jetzt kann ich wieder weiterbasteln.

Aber nichts desto trotz: muss man solch eine Datenübergabe so kompliziert machen? Geht das nicht in einer Zeile?

Danke nochmals und viele Grüße aus Innsbruck,
Werner

… natürlich geht das auch als Einzeiler

"Endzeit"=>getvalue(34421),

Hallo,
ich glaube ich habe einen Bug gefunden.

Als Bargraph schaffe ich es nicht rechts und links zwei verschiedene Einheiten hinzuschreiben (z.B °C und %).

Jedenfalls geht es ohne Probleme als Liniengraph. Wenn ich nur den Parameter Graph von „“ auf „Bar“ stelle, dann verschwindet die Einheit rechts (und die Achsenbeschriftung).

Kann da jemand helfen?

Danke

gros_ibou

Hallo Leute… hatte hier mal vor einer Zeit eine Frage gepostet… und zwar ob es möglich ist eine Variable zbsp die Aussentemperatur so mit Googlechart anzuzeigen, dass ich die Daten 2010 und 2011 gleichzeitig darstellen kann. Schön ist dies zbsp wenn man sehen möchte ob 2010 kälter war als zbsp 2011… in welchen monaten etc.

ICh habe mir das Ganze so angepasst, dass es bei mir/für mich klappt. Sofern es für Meike ok ist poste ich diese. Die Googlecharts sind super geil, ohne könnt ich aktuell nicht. Ich finde es super wenn leute so was tolles machen und zudem noch anderen zur verfügung stellen, weil das ist der grosse Part an der Sache. Danach sollte jeder selber sich etwas reindenken und die entsprechenden Erweiterungen vornehmen.

Hallo swissboy,

ich hoffe das es für Meike OK ist, weil mich das auch schon länger ineressiert.
Evt. kann das Meike auch übernehmen.

Gruß Uwe

Müsste eigentlich bald nachkommen. Gruss

Update vorhanden.

  • Vergleich von verschiedenen Zeiträumen von geloggten Variablen.
  • Änderung Konfig-Skript (muß leider sein):o

Hallo!

Danke für den Update. Habe aber folgende Probleme:

(1) Bekomme folgenden Fehler

Warning:  Variablenprofil # existiert nicht in C:\IP-Symcon\scripts\Funktionen_TimeCompare.ips.php on line 579

Warning:  Cannot modify header information - headers already sent by (output started at C:\IP-Symcon\scripts\Funktionen_TimeCompare.ips.php:579) in C:\IP-Symcon\scripts\GoogleCharts.ips.php on line 2

Kann mir das jemand erklären?

(2) Verstehe das mit der Y-Achsenzuordnung nicht mehr. Was genau sollte in dem Array

$YAchse			= array (0,0,1,1,0,0)

stehen? Bzw was bedeuten die einzelnen Werte (Wertepaare??)?

Danke

gros_ibou

Hallo gros_ibou,

  1. Ich nehme an Du hast eine Variable ohne Profil geloggt.

  2. Bei Linengraphen kannst Du ja beide y-Achsen beschriften und dem entsprechend auch den Variablen zuordnen.
    0= Achse links 1=Achse rechts