WebFront Graphen im Dashboard

Hi!

Habe vor mehrere Graphen in einem Dashboard Fenster mit mehreren Graphen darzustellen.
Das geht auch, doch mich stört es das man dann in jedem Browser immer erst den Graph auswählen muss den man angezeigt haben möchte.

Jetzt zur Frage:
Kann man die Url so eingeben das man http://192.168.2.X:82 mit etwas ergänzt um dann direkt auf dem richtigen Graph zu landen.

Das ist in meinen Augen die beste Möglichkeit um geloggte Daten zu vergleichen.
Beim Multigraph stört es, das die dargestellten Temperaturen weit auseinander liegen können und dadurch die Details im Graph verloren gehen.

Bsp.:
http://192.168.x.x:xx/dashboard.php?VariableID=47675&tsStart=1265739376&showExtrema=false&showControls=false&timeName=hour

Wow!!!

Ich liebe dieses Forum!
Und ich liebe IPS :loveips:!

Danke!

Hallo zusammen,

ich muss mal diesen „alten“ Thread wieder aktivieren.
Ich habe jetzt IPS 2.4 und versuche ebenfalls im Dashboard einen Graphen darstellen zu lassen - Funktioniert mit dem Webbrowser und dem Link wunderbar…ABER: Die „Controls“ fehlen bei mir komplett

Gibts da bei Version 2.4 einen neuen Trick für?

Folgenden Link nutze ich:

http://ips/dashboard.php?VariableID=57520&tsStart=0&showExtrema=false&showControls=true&timeName=day

Vielen Dank & Gruß
Marc

Beispiel wie ich das mache:


	//-------------------------------------- ID´s -------------------------------

	$id_graph_url										= 27556 /*[Allgemein\Dashboard\dash_graphen\graph_url]*/ ;
	$id_graph_anz										= 51212 /*[Allgemein\Dashboard\dash_graphen\graph_anz]*/ ;
	$id_graph_zeit										= 45393 /*[Allgemein\Dashboard\dash_graphen\graph_zeit]*/ ;
	$id_extrema											= 32477 /*[Allgemein\Dashboard\dash_graphen\extrema]*/ ;
	$id_dyn												= 26041 /*[Allgemein\Dashboard\dash_graphen\dyn]*/ ;
	$id_time												= 49123 /*[Allgemein\Dashboard\dash_graphen	ime]*/ ;
	
	$graph_url_array                          = array();
	$graph_url_array[1]                       = "http://192.xxx.x.xx:82/dashboard.php?VariableID=44853";
	$graph_url_array[2]                       = "http://192.xxx.x.xx:82/dashboard.php?VariableID=30893";
	$graph_url_array[3]                       = "http://192.xxx.x.xx:82/dashboard.php?VariableID=52735";
	$graph_url_array[4]                       = "http://192.xxx.x.xx:82/dashboard.php?VariableID=35658";
	$graph_url_array[5]                       = "http://192.xxx.x.xx:82/dashboard.php?VariableID=47675";
	$graph_url_array[6]                       = "http://192.xxx.x.xx:82/dashboard.php?VariableID=54366";

	//---------------------------------------------------------------------------

  	$time                                     = GetValueInteger($id_time);
  	
	//---------------------------------------------------------------------------

 	switch($IPS_COMPONENT)
 	{
   	case 'start':
		SetValueInteger($id_time, time());
	   return;

   	case 'gr1':
		SetValueInteger($id_graph_anz, 1);
	   break;

	   case 'gr2':
		SetValueInteger($id_graph_anz, 2);
	   break;

		case 'gr3':
		SetValueInteger($id_graph_anz, 3);
	   break;

		case 'gr4':
		SetValueInteger($id_graph_anz, 4);
	   break;

		case 'gr5':
		SetValueInteger($id_graph_anz, 5);
	   break;

		case 'gr6':
		SetValueInteger($id_graph_anz, 6);
	   break;

 	   //hour / day / week / month / year
      case 'hour':
		$zeit = "hour";
		SetValueString($id_graph_zeit, $zeit);
	   break;
	   
      case 'day':
      $zeit = "day";
  		SetValueString($id_graph_zeit, $zeit);
	   break;

      case 'week':
		$zeit = "week";
		SetValueString($id_graph_zeit, $zeit);
	   break;

      case 'month':
		$zeit = "month";
		SetValueString($id_graph_zeit, $zeit);
	   break;

      case 'year':
		$zeit = "year";
		SetValueString($id_graph_zeit, $zeit);
	   break;
	   
	   case 'zur':
		$zeit = GetValueString($id_graph_zeit);
		if($zeit == "hour")
		{
  			SetValueInteger($id_time, $time-(60*60));
  		}
  		if($zeit == "day")
		{
  			SetValueInteger($id_time, $time-(60*60*24));
  		}
  		if($zeit == "week")
		{
  			SetValueInteger($id_time, $time-(60*60*24*7));
  		}
  		if($zeit == "month")
		{
  			SetValueInteger($id_time, $time-(60*60*24*31));
  		}
  		if($zeit == "year")
		{
  			SetValueInteger($id_time, $time-(60*60*24*31*12));
  		}
	   break;
	   
	   case 'vor':
		$zeit = GetValueString($id_graph_zeit);
		if($zeit == "hour")
		{
  			SetValueInteger($id_time, $time+(60*60));
  		}
  		if($zeit == "day")
		{
  			SetValueInteger($id_time, $time+(60*60*24));
  		}
  		if($zeit == "week")
		{
  			SetValueInteger($id_time, $time+(60*60*24*7));
  		}
  		if($zeit == "month")
		{
  			SetValueInteger($id_time, $time+(60*60*24*31));
  		}
  		if($zeit == "year")
		{
  			SetValueInteger($id_time, $time+(60*60*24*31*12));
  		}
	   break;

	}
	//---------------------------------------------------------------------------
	
	$extrema                                  = GetValueBoolean($id_extrema);
	$zeit		                                 = GetValueString($id_graph_zeit);
	$graph_aktuell										= GetValueInteger($id_graph_anz);
	$dyn                                      = GetValueBoolean($id_dyn);
  	$time                                     = GetValueInteger($id_time);
  	
	//---------------------------- Graphen anzeigen -----------------------------

	if($extrema)
	{
	   $extrema = "true";
	}
	else
	{
	   $extrema = "false";
	}

	if($dyn)
	{
	   $dyn = "true";
	}
	else
	{
	   $dyn = "false";
	}

	SetValueString($id_graph_url, $graph_url_array[$graph_aktuell]."&tsStart=$time&showExtrema=$extrema&showControls=false&dynamicScaling=$dyn&timeName=$zeit");


Hi Thomas,

danke für dein Script!

D.h. mit IPS 2.4 werden die „Controls“ nicht mehr angezeigt, wenn ich die Variable über die dashboard.php einbinde!?

Ich war auch noch so frei und habe dein Script um einen „Now-Button“ erweitert, so dass man mit einem Klick wieder beim aktuellen Tag/Stunde/Monat… ist.

Einfach bei dem Switch folgenden Code einfügen:

case 'now':
     SetValueInteger($id_time, 0);
	 break;

Funktioniert aber super und war auch einfach einzubauen - DANKE!

Gruß
Marc

Hi,

wie bei Thomas oben auf dem Screenshot zu sehen, haben die Graphen jetzt auch bei mir rechts einen Scrollbalken. Bekommt man den irgendwie weg?

Smudo

Hallo,

ich bin gerade dabei das Script von Ferengi einzubauen.
Leider komme ich damit noch nicht klar.
Könnt Ihr mir helfen, wie müssen die Var definiert werden und wie bekommen sie ihre Werte?

Danke

Jörg

Danke Ferengi-Master für das Skript, hast mir eine Menge Zeit gespart!

Hallo Jörg,

habe das Script gerade eingebaut, daher hier eine kleine Hifestellung:

Variablen anlegen Name/Typ:
dyn/boolean
extrema/boolean
graph_anz/integer
graph_url/string
graph_zeit/string
time/integer

Dann die neuen IDs der Variablen in dem Script anpassen (musste bei mir noch die Symicolon „;“ direkt hinter die IDs packen und die Kommentare dann dahinter packen oder löschen.

Im Dashboad/Designer einen Browser anlegen (nehme immer vorher ein Panel und packe dort den Browser rein, dadurch keine Srollbalken und man kann die größe anpassen).

Beim Browser (doppelklickt) die URL auf die Variable graph_url legen.

Dann ein paar Buttons anlegen und jeweils die „IPSYMID“ anpassen, ist im Script zu sehen z. B. „gr1“ bis „gr6“ für die Variablen und „hour“… für die Einstellungsbutton. und als Event onClick auf das Skript verweisen.

Dann noch zwei Komboboxen für dyn und extrema, ich habe Buttons genommen und wir jeweils noch ein „toogle“ Skript zum anpassen erstellt - kommt auf dein Design an.

Fertig.

Soweit in kürze, wer noch keine oder wenig Erfahrungen beim Dashboard/Designer hat, sollte erstmal mit einfacheren Dingen anfangen :slight_smile:

Hallo,

laufen bei jemandem die WebFront Graphen im Dashboard unter V3.0?
Bei mir nicht mehr. Jemand eine Idee?

Das ist noch nicht eingebaut. Bitte warten.

Hallo,

ich habe noch nicht so viel Erfahrung mit dem Dashboard daher vielleicht nochmal eine blöde Frage zum Script vom Ferengi-Master: Ich habe alle Buttons gesetzt und die „IPSYMID“ angepasst. Das script funktioniert auch soweit, nur das Verändern des Datums funktioniert nicht richtig. Ich habe jetzt noch einen Start Button eingebaut und die „IPSYMID“ auf start angepasst. Nachdem dieser Button gedrückt wurde, funktioniert auch das Ändern des Datums - aber so ist das doch sicher nicht gedacht? Was muss ich tun damit das Verändern des Datums funktioniert auch ohne den Start Button zu drücken?

Gruß
Volker

Hallo Volker,

an diese Stelle springt er bei mir wenn ich den Button ‚Charts‘ bei mir drücke, welcher sich im Startmenü befindet.
Das kann bei Dir natürlich anders sein.


     switch($_IPS['COMPONENT'])
     {
       case 'start':
        SetValueInteger($id_time, time());
       return;

Du kannst also am Anfang meines Scripts einfach das schreiben:


SetValueInteger($id_time, time()); 
$time = GetValueInteger($id_time); 

Hallo Thomas,

ich nutze bei mir das PageControl Element mit Tabs und wähle über die Tabs aus.
Ich habe die von dir vorgeschlagene Änderung vorgenommen, allerdings kann ich jetzt immer nur 1 x zurück, da ja jedes Mal von der aktuellen Uhrzeit abgezogen wird.
Was ich auch probiert habe, ist die IPSYMID von dem entsprechenden Tab auf start zu setzen. Hat allerdings so auch nicht funktioniert.
Da ich aber später eh eine Steuerung über Buttons umsetzen will, denke ich kann ich erstmal mit der Lösung mit dem Start Button leben.

Gruß
Volker

Sorry Volker,

mein Lösungsvorschlag war Käse.:o


case 'start':
SetValueInteger($id_time, time());
return;

Diese Zeile muß 1x beim Start der Charts aufgerufen werden. Wenn Du das per Tab machst wäre die Tabindexvariable dann noch eine Idee, als Trigger.:wink:

Kannst du mir einen Tipp geben wie das funktioniert? Ich habe folgendendes porbiert aber leider auch ohne Erfolg:


 case 'IPSPageControl2 == 1':
        SetValueInteger($id_time, time());
       return;

Gruß
Volker

Nein, Du nimmst mein Chartscript mit dem Tabindex als Trigger.
Wie Du die Variable benutzt findest Du hier: http://www.ip-symcon.de/forum/threads/11639-Welches-Tabsheet-ist-aktiv?p=96713#post96713


$id_tabindex = xxx; //ID der Tabindexvariable
$tabindex_aktuell = GetValueInteger($id_tabindex);
$tabindex_chart = xx; //Hier die Zahl des Tabs für die Chartseite
if($_IPS['VARIABLE'] == $id_tabindex)
{
  if($tabindex_aktuell == $tabwert_chart) 
  {
    SetValueInteger($id_time, time());
  }
  return; //andere Seite dann raus 
}

Das ganze vor das switch Konstrukt.