MultiGraph mit GoogleChart

Bitte ausklammern

"Graphenart"=>"Bar",

LOL! Geht!

Habe ich da was überlesen? Das war doch das Beispiel was mit dabei ist,oder?
d.h. Bargraphen gehen nicht,oder?
Ich bräuchte Bargraphen und Liniengraphen in einem Bild, ist dann wohl auch nicht drin. Ich hätte gerne ein Bild wo ich den Pelletsverbrauch (klassicher Zähler mit Bargraph pro Tag) mit den Werten von meinem Aussenthermometer (Linie) drin sehe

Jedenfalls besten Dank, jetzt kann endlich anfangen meine Heizungsdaten auf die „nächste Saison“ vorzubereiten.
BTW: Klasse Software!!

Gruß

Peter

Hallo Peter,

die Kombination von Bar- unbd Liniengraphen ist leider nicht möglich.
Es wird aus mit Standard geloggten Variablen Liniengraphen
und mit als Zähler geloggten Variablen Bargraphen erzeugt.
Wie in IPS.

Wenn noch Unklarheiten bestehen einfach Fragen.:wink:

Hallo Karlheinz,

danke für die Info und vielen lieben Dank für die Geduld und Hilfe.

Beste Grüße
Peter

Würde gerne auf Google Charts umstellen. Allein, ein Feature fehlt mir und ich wundere mich, warum das bisher nie genannt wurde. Die Charts, die ich sehe verbinden zwei Messpunkte linear. Wenn viele Messpunkte vorliegen ist das OK. Gibt es aber wenig Messpunkte so gibt es Linien, die wenig mit der Wirklichkeit zu tun haben. Ich mache bisher mit RRD, JPGraph und extern mit Excel immer Kurven, bei den die Werte konstant bleiben und erst zum Zeitpunkt des nächsten Schritts zum neuen Wert springen (Step Style).

Da Google dies vermutlich nicht von sich aus mit einer Option unterstützt (JPGraph macht dies) kann man aus dem Werte-Array aus der DB ein neues Array basteln, welches jeweils 1 sec vor jedem neuen Wert einen „Hilfsdatenpunkt“ einbaut. Hatte so etwas schon mal erfolgreich umgesetzt - ist recht einfach. Bei den Google-Chart-Skripten fehlt mir aber leider der richtige Einstieg, an welcher Stelle ich so etwas einfügen kann.

Bin ich der Einzige, der so etwas benötigt?

Gruss, H-C

siehe Post104 und weiter

http://www.ip-symcon.de/forum/114643-post104.html

Sorry, stehe auf dem Schlauch und werd aus #104ff nicht schlau. War der Kommentar für mich? Heisst das
A) Geduld oder
B) geht nicht oder
C) soll mich selbst dran machen?

Sorry, H-C

siehe Post104 und Post106

Steht bei Funktionen ganz oben.
Aber wir machen mal schnell ist nicht.
Viel Glück

Hallo Erstmal:
Ich möchte als aller erstes dem Programmierer dieses Google-Chart Scripten ein großes Lob und große Anerkennung zukommen lassen.(Ich würde gern so was können).
Ich habe mich jetzt lange Zeit mit dem Highcharts beschäftigt - diese auch zum Laufen gebracht, nur leider nicht auf dem Dashboard.
Vorgestern habe ich dann die Google-Charts installiert und binnen einen Abend ein recht brauchbares Ergebnis zusammen gebracht - und das beste: es läuft natürlich super auf dem Dashboard. Jetzt kann ich endlich auf die 2.4 updaten, da ich jetzt ja wieder Multigraphen habe.
Aber ein paar Fragen habe ich dennoch:
Erstens: ist es möglich (ich habe normale Liniengraphen) die Linien dicker darzustellen?
Zweitens: ich habe in einer Post gesehen, dass bei der Legende Temperatur und der aktuelle Wert daneben steht - wie kann man das realisieren?
Besten Dank inzwischen für die Informationen,
Gruß Werner

Hallo Werner,

die Linienstärke kannst Du ohne Probleme verändern.
Im Skript Funktionen ab Zeile 553

chart = array(
  		'chs'=>''.$Size,
		'cht'=>'lxy',
		'chxl'=>''.$yachse[0],
		'chxt'=>''.$yachse[1],
		'chxp'=>''.$yachse[2],
		'chxr'=>''.$yachse[3],
		'chg'=>''.$yachse[4],
		'chdl'=>''.utf8_encode($Texte),
		'chdlp'=>'t',
		'chtt'=>''.utf8_encode($Ueberschrift),
		'chts'=>''.$Schriftfarbe.',15',
		'chco'=>''.$Farbe,
		'chm'=>''.$fill,
		'chd'=>'e:'.$Datengesamt,
		'chls'=>'1|1|1|1',

mußt Du dieses ändern

'chls'=>'5|5|5|5',

Danke, danke, danke - gleich probiert und funktioniert super (logisch).
Ich habe jetzt die Graphenlinienstärke auf 2 eingestellt - Stärke 5 ist eher für Blinde :D. Gruß Werner

Doch noch eine Frage - Karlheinz:
Für was ist der (momentan auskommentierte) Befehl: BoolOffset?
Was kann mit dieser Zahl dahinter bewirkt werden? Und warum braucht es dies nicht?
Danke - Werner

Mit BoolOffset kannst Du den Wert einer Bool-Variable bei True einstellen.

Fantastische Sache… für s ifront oder was auc himmer lässt sich das ganze super implementieren grosses kompliment meike. Hab mir da ne pseudo instanz angelegt die alle geloggten Variablen ausliest, in kategorien zuteilt aus denen ich im ifront den gewünschten Wert auswähle und dann einem der Y-Achsen zuteile. Aktuell verwende ich fast durchgehend nur die Standard Logvariante (kein Zähler) somit die Liniengraphen. Zwei Fragen:

Irgendwie… kann ich bei dem Parameter [„YBeschriftung[0]“] [„YBeschriftung[1]“], [„YBeschriftung[2]“] [„YBeschriftung[3]“] hinterlegen was ich möchte… aber ich sehe immer nur einen der Werte im png. eigentlich den ersten um genau zu sein und die anderen nicht… ganz am Anfang war dem nicht so glaub ich. Hab ich da was verkonfigueriert? oder war das nur im Balken diagramm so das die verschiedenen y werte gelistet wurden untereinander und sogar links und Rechts vom Digaramm?

Kurz zu den Einstellungen Dyn. ist aus, Graph typ „“ also Linie, Titel gesetzt… egal ob 1 - 4 Werte/linien aktiviert. Ich kopier dir die konfig hier auch noch rein aber aufgrund der automatisierung/indiv. sieht es natürlich schon anders aus… gibt aber keine Fehlermeldung… der Graph wird sauber mit den gewünschten Linien erstellt etc… einfach die Y Achse kommt immer nur Wert 1 egal wieviele ich angezeigt erhalte… Geprüft habe ich natürlich auch, dass in der Code zeile $Daten[„YBeschriftung[3]“]=GetValueString( auch wirklich verschiedene Werte mitgehen und dem ist so!

$Daten = array(
„Pfad“=>„C:/ip-symcon/media/“,„filename“=>„SelfGraph“,
„Size“=>„800x350“,
//„Endzeit“=>„05-06-2011 00:00“,
„BoolOffset“=>15,
//„Hinter1“=>„000000“, „Hinter2“=>„FFFFFF“,
„Schriftfarbe“=>„FFFFFF“,
„Graphenart“=>"",
// Problem ist, dass wenn eines Bar keine Linien Werte mehr anzeigbar
// „Graphenart“=>„Bar“,
// „Faktor[0]“=>.5,„Faktor[1]“=>.5,„Faktor[2]“=>0.5,„Faktor[3]“=>0.5
);

//REORG
SetValueString(39695, „“);

if(GetValueInteger(52081 /[GRAPHEN#DVALGR\iVDVALGRVAR1]/)>0)
{
$Daten[„Vari[0]“]=GetValueInteger(52081 /[GRAPHEN#DVALGR\iVDVALGRVAR1]/);
$Daten[„Trans[0]“]=60;
$Daten[„YAchse[0]“]=0;
// $Daten[„Farben[0]“]=„00008B“;
$Daten[„Text[0]“]=GetValueString(59862 /[GRAPHEN#DVALGR\sVDVALGRWERT1]/);
$Daten[„YBeschriftung[0]“]=GetValueString(35292 /[GRAPHEN#DVALGR\sVDVALGRYAWERT1]/);
SetValueString(39695, GetValueString(39695).GetValueString(37395 /[GRAPHEN#DVALGR\sDVALGRTEMPTITEL]/));
}
if(GetValueInteger(12139 /[GRAPHEN#DVALGR\iVDVALGRVAR2]/)>0)
{
$Daten[„Vari[1]“]=GetValueInteger(12139 /[GRAPHEN#DVALGR\iVDVALGRVAR2]/);
$Daten[„Trans[1]“]=60;
$Daten[„YAchse[1]“]=0;
// $Daten[„Farben[1]“]=„00008B“;
$Daten[„Text[1]“]=GetValueString(38916 /[GRAPHEN#DVALGR\sVDVALGRWERT2]/);
$Daten[„YBeschriftung[1]“]=GetValueString(30247 /[GRAPHEN#DVALGR\sVDVALGRYAWERT2]/);
SetValueString(39695, GetValueString(39695).", „.GetValueString(38403 /[GRAPHEN#DVALGR\sDVALGRTEMPTITEL]/));
}
if(GetValueInteger(19742 /[GRAPHEN#DVALGR\iVDVALGRVAR3]/)>0)
{
$Daten[„Vari[2]“]=GetValueInteger(19742 /[GRAPHEN#DVALGR\iVDVALGRVAR3]/);
$Daten[„Trans[2]“]=60;
$Daten[„YAchse[2]“]=0;
// $Daten[„Farben[2]“]=„00008B“;
$Daten[„Text[2]“]=GetValueString(40525 /[GRAPHEN#DVALGR\sVDVALGRWERT3]/);
$Daten[„YBeschriftung[2]“]=GetValueString(46407 /[GRAPHEN#DVALGR\sVDVALGRYAWERT3]/);
SetValueString(39695, GetValueString(39695).“, „.GetValueString(29885 /[GRAPHEN#DVALGR\sDVALGRTEMPTITEL]/));
}
if(GetValueInteger(21844 /[GRAPHEN#DVALGR\iVDVALGRVAR4]/)>0)
{
$Daten[„Vari[3]“]=GetValueInteger(21844 /[GRAPHEN#DVALGR\iVDVALGRVAR4]/);
$Daten[„Trans[3]“]=60;
$Daten[„YAchse[3]“]=0;
// $Daten[„Farben[3]“]=„00008B“;
$Daten[„Text[3]“]=GetValueString(48238 /[GRAPHEN#DVALGR\sVDVALGRWERT4]/);
$Daten[„YBeschriftung[3]“]=GetValueString(18820 /[GRAPHEN#DVALGR\sVDVALGRYAWERT4]/);
SetValueString(39695, GetValueString(39695).“, ".GetValueString(36381 /[GRAPHEN#DVALGR\sDVALGRTEMPTITEL]/));
}

$Daten[„Ueberschrift“]=GetValueString(39695 /[GRAPHEN#DVALGR\sDVALGRTEMPTITEL]/);
$Daten[„Zeitspanne“]=GetValueInteger(20390 /[GRAPHEN#DVALGR\iDVALGRZEITSPAN]/);
$Daten[„Dynamisch“]=GetValueInteger(28635 /[GRAPHEN#DVALGR\iDVALGRDYNWERT]/);

@swissboy:
Ich hab mal deinen Code in PHP-Tags gesetzt, dass man das besser lesen kann.

$Daten = array(
"Pfad"=>"C:/ip-symcon/media/","filename"=>"SelfGraph",
"Size"=>"800x350",
//"Endzeit"=>"05-06-2011 00:00",
"BoolOffset"=>15,
//"Hinter1"=>"000000", "Hinter2"=>"FFFFFF",
"Schriftfarbe"=>"FFFFFF",
"Graphenart"=>"",
// Problem ist, dass wenn eines Bar keine Linien Werte mehr anzeigbar
// "Graphenart"=>"Bar",
// "Faktor[0]"=>.5,"Faktor[1]"=>.5,"Faktor[2]"=>0.5,"Faktor[3]"=>0.5
);

//REORG
SetValueString(39695, "");

if(GetValueInteger(52081 /*[GRAPHEN\#DVALGR\iVDVALGRVAR1]*/)>0)
{
$Daten["Vari[0]"]=GetValueInteger(52081 /*[GRAPHEN\#DVALGR\iVDVALGRVAR1]*/);
$Daten["Trans[0]"]=60;
$Daten["YAchse[0]"]=0;
// $Daten["Farben[0]"]="00008B";
$Daten["Text[0]"]=GetValueString(59862 /*[GRAPHEN\#DVALGR\sVDVALGRWERT1]*/);
$Daten["YBeschriftung[0]"]=GetValueString(35292 /*[GRAPHEN\#DVALGR\sVDVALGRYAWERT1]*/);
SetValueString(39695, GetValueString(39695).GetValueString(37395 /*[GRAPHEN\#DVALGR\sDVALGRTEMPTITEL]*/));
}
if(GetValueInteger(12139 /*[GRAPHEN\#DVALGR\iVDVALGRVAR2]*/)>0)
{
$Daten["Vari[1]"]=GetValueInteger(12139 /*[GRAPHEN\#DVALGR\iVDVALGRVAR2]*/);
$Daten["Trans[1]"]=60;
$Daten["YAchse[1]"]=0;
// $Daten["Farben[1]"]="00008B";
$Daten["Text[1]"]=GetValueString(38916 /*[GRAPHEN\#DVALGR\sVDVALGRWERT2]*/);
$Daten["YBeschriftung[1]"]=GetValueString(30247 /*[GRAPHEN\#DVALGR\sVDVALGRYAWERT2]*/);
SetValueString(39695, GetValueString(39695).", ".GetValueString(38403 /*[GRAPHEN\#DVALGR\sDVALGRTEMPTITEL]*/));
}
if(GetValueInteger(19742 /*[GRAPHEN\#DVALGR\iVDVALGRVAR3]*/)>0)
{
$Daten["Vari[2]"]=GetValueInteger(19742 /*[GRAPHEN\#DVALGR\iVDVALGRVAR3]*/);
$Daten["Trans[2]"]=60;
$Daten["YAchse[2]"]=0;
// $Daten["Farben[2]"]="00008B";
$Daten["Text[2]"]=GetValueString(40525 /*[GRAPHEN\#DVALGR\sVDVALGRWERT3]*/);
$Daten["YBeschriftung[2]"]=GetValueString(46407 /*[GRAPHEN\#DVALGR\sVDVALGRYAWERT3]*/);
SetValueString(39695, GetValueString(39695).", ".GetValueString(29885 /*[GRAPHEN\#DVALGR\sDVALGRTEMPTITEL]*/));
}
if(GetValueInteger(21844 /*[GRAPHEN\#DVALGR\iVDVALGRVAR4]*/)>0)
{
$Daten["Vari[3]"]=GetValueInteger(21844 /*[GRAPHEN\#DVALGR\iVDVALGRVAR4]*/);
$Daten["Trans[3]"]=60;
$Daten["YAchse[3]"]=0;
// $Daten["Farben[3]"]="00008B";
$Daten["Text[3]"]=GetValueString(48238 /*[GRAPHEN\#DVALGR\sVDVALGRWERT4]*/);
$Daten["YBeschriftung[3]"]=GetValueString(18820 /*[GRAPHEN\#DVALGR\sVDVALGRYAWERT4]*/);
SetValueString(39695, GetValueString(39695).", ".GetValueString(36381 /*[GRAPHEN\#DVALGR\sDVALGRTEMPTITEL]*/));
}

$Daten["Ueberschrift"]=GetValueString(39695 /*[GRAPHEN\#DVALGR\sDVALGRTEMPTITEL]*/);
$Daten["Zeitspanne"]=GetValueInteger(20390 /*[GRAPHEN\#DVALGR\iDVALGRZEITSPAN]*/);
$Daten["Dynamisch"]=GetValueInteger(28635 /*[GRAPHEN\#DVALGR\iDVALGRDYNWERT]*/); 

Thanks Rainer…

Es gibt nur 2 Y-Achsen Beschriftungen (links [0] / rechts [1]),
mehr kann nicht funktionieren

AAAAALLESSS KLAR… habs im Screenshot gesehen… die Werte wurden einfach mit / getrennt und nicht auf zwei Zeilen geschrieben… wäre aber auch eine tolle ERweiterung… natürlich seitens Google wenn man mehrere Achsenbeschriftungen platzieren könnte mit der Zeit…

Eine andere Frage noch… vielleicht weiss da auch sonst wer nen Ansatz… wenn ich zwei Auswertungen über die gleiche Zeitspanne vom selben Wert aber zu verschiedenen Zeitpunkten auf die Art anzeigen möchte, ist dies möglich? Vielleicht einfacher. Ich habe den Verbrauch Total von Jan - Dez 2010 für die STromkosten (Pro Monat wird der Wert jeweils angezeigt) Nun würde ich gerne im gleichen Graph die selbe Info zum Jahr 2009 drunterlegen. Sozusagen vergleichen…

Hallo,
also das Google-Chart läuft super bei mir.
Mir ist nur aufgefallen, dass wenn ich in das Meldungfenster von IPS klicke, immer viele Zeilen mit einer Fehlermeldung erscheinen. Ich habe dies mal als Screenshot angehängt - vieleicht gibt es da eine einfache Erklärung dafür - funktionieren tut ja alles wie gewollt…
Gruß und danke für die Erklärung,
Werner

Morgen Werner,

versuche doch bitte einmal heraus zufinden, bei welcher Vaiablen die Meldung kommt.