MultiGraph mit GoogleChart

Ich wollte ein Skript für einen Multigraph erstellen ohne viel Einstellungen vornehmen zu müssen.
Raus kann MultiGraph für GoogleChart.

Das Skript erzeugt einen Graphen mit max. 4 Linien.
Als Datenbank werden die IPS geloggten Variablen verwendet.

Die beide Skripte in IPS laden.
In GoogleChart werden die Einstellungen vorgenommen.
Sollte eigentlich selbst erklärend sein.
Bitte keine Sonderzeichen verwenden.

Skript GoogleChart starten.
Im Ordner C:IP-Symcon/Media sollte der erzeugt Graph zu finden sein.

Einfach einmal probieren.
Ich hoffe es läuft ohne Probleme.

Aktuelle Version
http://www.ip-symcon.de/forum/f53/multigraph-googlechart-v1-0-a-13465/

Geladen, getestet und voila…rennt…

Das mit der Konfiguration ist natürlich etwas umständlich, aber wenn man bedenkt dass man damit eine weitere DB a la DUG Tool ausschliessen kann und die vorhandenen Daten des IPS nutzt muss ich sagen das dies sicherlich ein Ansatz sein könnte das Multigraphenthema schneller zu erlangen.

Vor allen Dingen wenn man sich an die Probleme erinnert die das DUG Tool gerne mal in Bezug auf die Speicherlast machen kann…

Danke für diese Basis…das werde ich mir mal etwas genauer anschauen…
Ein Piechart für z.B.den Gasverbrauch zwischen 0-8, 8-16 und 16-0 Uhr wäre doch mal ne Idee…ähnliches für Regenmengenvergleiche, usw…

Würde mich wundern wenn das nicht zu einem Feature&Function Contest werden könnte…weil Multigraph halt eines der Wunschthemen von vielen ist…

Gruss
B71

Nur her Verbesserungsvorschläge.:rolleyes:

Du kannst Dir ja Variablen anlegen und bei Änderung das Skript starten.

Hallo,

vielen Dank für die tolle Arbeit. Ich finde das Ergebnis super. Und ich denke auch das könnte ein Ersatz für das DUGTool sein.

Gruß
Christian

Als erste Verbesserungsidee würde mir spontan einfallen, dass man das „hardcodiert“ eingetragene Variablennummern im GoogleGraph Script nicht nötig sind. Das würde die ganze Sache der Konfiguration wesentlich flexibler machen.

Sprich:

Man ersetzt im ARRAY die ID Zahlen durch zu befüllende Variablen die man eventuell aus einer Liste zieht die sämtliche Variablen aus dem Logging/Archive Handler des IPS enthält und durch ein bestimmtes Flag (eventuell eine gleiche Zahl für einen entsprechenden anzulegenden Graphen) für einen bestimmten Graphen „aktiviert“. Für einen weiteren Graphen dann die nächsthöhere Zahl, usw…
Dann wäre doch das GoogleGraph Script nur einmal vorzuhalten und würde dann fleissig für die Erstellung der jeweiligen Bilder genutzt werden können während die [1] Varibalen von 1-n hochgezählt werden (s.u.).

Klar…das mit der Graphenbeschriftung und dem Dateinamen ist noch so eine Sache, aber auch dies könnte in der Source Datei der Variablen mit eingeben werden…und bei Aufruf über die Führungskennziffer mit selektiert werden…

Im DUG Tool ist es ja auch so das man alle Variablen sehen kann, die die man haben will mitloggt und den Rest einfach unbeachtet lässt.

So in etwa von der Logik her:

Variablenselektion für Graphen:
[1] „Temperatur Wohnzimmer“
[2] Luftfeuchte Wohnzimmer
[1] Temperatur Kinderzimmer
[2] Luftfeuchte Kinderzimmer
Temperatur Aussen
[1] Temperatur Keller
[1] Temperatur Gästebad
…usw…
Titelselektion Graphen:
[1] Temperaturverlauf
[2] Luftfeuchteverlauf
[3] Energieverbrauch
…usw…
Linienbezeichnung:
Variable 1: Text Variable 1 „Temperatur Wohnzimmer“
Variable 2: Text Variable 2 „Temperatur Kinderzimmer“
…usw…

Jetzt müsste nur eine Abfrage diese Infos zyklisch durchlaufen…die Daten aus dem Logging ziehen, Bild bauen, dieses ablegen, Zähler um +1 erhöhen und wieder durchlaufen…

Ist das nachvollziehbar ?
Habe ich da einen Denkfehler ?

Gruss
B71

Hallo…
Funktioniert bei mir auch einwandfrei :slight_smile:
2 Fragen hätte ich noch, falls die spontan zu beantworten sind g:

1.) gibts denn eine Möglichkeit mit den GoogleCharts auch eine 2. Y-Achse zu erzeugen? zb. °C und % Werte…

2.) kann man die Min-Max-Werte für die Y-Achse aus dem Variablenprofil verwenden? zur besseren Vergleichbarkeit wär das nicht übel wie ich finde…

Mal sehn, vielleicht hab ich heut Nacht ein bisschen Zeit und seh mir das selber an. :slight_smile:

Bernado71
deine Vorschläge lasse ich mir durch den Kopf gehen:rolleyes:
Graphische Oberfläche für die Erstellung der Graphen!!
Ich will das Skript so einfach halten wie möglich.
Eine Möglichkeit wäre ein Konfig-Skript, das man aufruft.

ChristianS

  1. ist im Arbeit für y- und x-Achse
  2. Ich beziehe die Werte aus den Variablen, aber halt min. und max. aus allen,
    oder verstehe ich Deine Frage falsch.
    Zeige mal bei einem Graphen was Du meinst.

Ich denke so LEAN wie möglich ist der beste Ansatz.
Ein Script ist dann sicherlich nicht die schlechteste Idee…
Eine grafische Oberfläche hatte ich gar nicht im Sinn.

Einfach nur etwas, was an einer zentralen Stelle die Konfiguration machen lässt und dann bei Aufruf des Graphen Scriptes die jeweilige Anzahl von Graphen erstellt. Dafür müsste man doch die Erstellunglogik auch mittels eines Indexes replizieren können, oder ?

Sprich eine Logik für den Fall 1, 2, 3…dann würde ein Durchlauf alles gleich neu erstellen und nicht immer wieder aufgerufen werden müssen…

Dies dann einfach stündlich / täglich machen lassen und man hat schon mal eine sehr gute Basis…die 70-80% der Auswertungen abbildet.

Klar wären andere Visualisierungen, wie z.B. Piecharts, auch ganz witzig in Bezug auf Verbrauchsauswretungen…aber nun mal langsam mit den jungen Pferden…

Cool ist auf jeden Fall das die Datenbasis die gleiche ist und keine weitere DB vollgeschrieben wird…

Gruss
B71

hm… wie erklär ich das spontan g

beim Webfront is es ja so:
zb Tagesansicht… y-achse zb. von 20-23°C … wechselt man auf den vorigen tag kann die y-achse zb. von 18-20°C haben… zwecks der Vergleichbarkeit wäre hier aber immer eine gleiche y-achse besser.
Diagramme müsst ich erst welche machen, falls die noch gebraucht werden g

Genau das wollte ich nicht.
Der min und max Werte wird immer aus den Zeitraum genommen, welche dargestellt wird.
z.B. Außentemperatur im Sommer +30°C im Winter -30°C.
Warum soll ich bei einem Wochengraph im Sommer als min. Wert -30 haben?

Es ist bestimmt noch etwas Feineinstellung möglich bei min und max.

Hi,

bei mir ist ab und zu die Datei leer (Größe 1,4 kB). Wenn ich den Google-Link im Browser aufrufe, erhalte ich aber einen richtigen Graphen im Browser angezeigt.

Hat noch jemand das Problem?

Vg
Heiko

P.S.: Super Skripte und Ideen.

Sonder- oder Leerzeichen im Filenamen oder Chart-Überschrift?

Ja, genau das Problem habe ich auch. obwohl, ich bekomme eine Datei mit der Endung .png, die allerdings php Fehlermeldungen enthält.
Und wie liegt man den Zeitraum fest, den man als Grafik aufbereitet haben möchte (z.b. bei Tagesgraphen möchte ich den 30.11.2010 untersuchen).

Das sind Leerzeichen und Sonderzeichen im Titel…hatte ich gestern abend auch…

In Bezug auf weitere Features…muss man jetzt aber bitte etwas geduld bewahren…

DUGTool hat mehrere Monate gebraucht bis es alles konnte…wir sind hier am Tag 1 nach dem Launch …also bitte vorsichtige Erwartungen wecken…

Gruss
B71

Ich habe alle Umlaute, Leer- und Sonderzeichen aus dem Titel rausgeworfen.
Aber in der .png Datei steht trotzdem immer noch:

<br />
<b>Warning</b>: fopen(http://chart.apis.google.com/chart?&chxt=y,x&chs=800x350&cht=lc&chxl=1:|22:19|00:19|02:19|04:19|06:19|08:19|10:19|12:19|14:19|16:19|18:19|20:19|22:19&chxp=1,0,8,16,24,32,40,48,56,64,72,80,88,96&chxr=0,-0.25,6425283|1,0,96&chg=8.33,-1,0,0&chco=3D7930,FF0000,00FF00,0000FF&chd=e:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA,AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA in <b>D:\IP-Symcon\scripts\Funktionen.ips.php</b> on line <b>264</b><br />
<br />
<b>Warning</b>: fpassthru() expects parameter 1 to be resource, boolean given in <b>D:\IP-Symcon\scripts\Funktionen.ips.php</b> on line <b>265</b><br />
<br />
<b>Warning</b>: fclose() expects parameter 1 to be resource, boolean given in <b>D:\IP-Symcon\scripts\Funktionen.ips.php</b> on line <b>266</b><br />

Ist der gewählte Variablentyp anzeigbar mit Google Graph ?

Ich meine ich hätte etwas von Integer und Float mal gelesen…mag aber sein das ich total falsch liege…

Ich habe bisher nur Float und Integer Werte getestet.

Hallo Karlheinz,

Danke für Dein Skript - sehr spannender Ansatz.

vor allen mit einigem Potenzial :slight_smile:

also - dann mal gemeinsam ran an die Optimierungen :smiley:

in diesem Sinne

Tilo

Yep, es sind nur Float und Int-Werte

Hi,

also ich kann einiges an DUGTool „Nutzer-Erfahrung“ mitbringen…nur beim programmieren bin ich leider nicht nützlich…

Gruss
B71

Hallo motions,

schau dir mal deine Daten mit dem Archive Handler an.
Ich nehme an, die Datenbank ist leer.

Aber wo kommen bei Dir die „amp“ Dinger her.
http://chart.apis.google.com/chart?&chxt=y,x&amp;chs=800x350&amp;cht=lc&amp usw.

Der Aufruf sollte so ausehen
http://chart.apis.google.com/chart?&chxt=y,x&chs=800x350&cht=lc&chxl=1: usw.