mein Projekt: SQLite DUG Tool

Hallo obicom,

bmwm3 hat es ja schon geschrieben.

Es kommt auch darauf an was Du loggst und wieviel Daten dort halt kommen. Gerade meine Wetterstation und die PV-Anlage liefert eine Unmenge an Daten, bis zu 4 Werte je Minute und Variable.

Derzeit werden 15 Variablen geloggt und das ist nur der Anfang.

@RWN: Wie bekomme ich die rein, einfach DLL austauschen? und wenn ja, woher? :rolleyes:

Hallo Obi,

änder mal in GraphenKonfiguration_Webfront.php diese Zeile um.

$ABSTANDZWISCHENHAUPTTICKS = 100;

Dann hast Du einen Abstand von 7 Tagen. Anderst ist es im Moment nicht möglich oder Du musst modifizieren.

Hallo Werner,

so einfach sollte es dann nicht sein. :slight_smile:

Hallo Tobias,
Hallo Rainer,

die Screenshot von Rainer hat mich ein wenig inspiriert, leider bin ich aber noch nicht zum perfekten Ergebnis gekommen. Tobias erzählte ja was von Spalten an denen ich mich auch schon einmal versucht hatte.

Hier mal 2 Graphen die derzeit nach dem Schema Spalten und Zeilen umbebaut habe.

Bei einer funktioniert es so wie ich will, bei der anderen rutscht die Legende in die Grafik.

Hat jemand einen Tip für mich.

Habe es einigermassen hinbekommen in dem ich die relative Position auf 0.999 gesetzt habe. So klappt es jetzt mit den meisten Graphen.

@bmwm3

Danke jetzt funktioniert es

Lutz

Hallo Werner,

was hast Du denn bis jetzt geändert.

Möglichkeiten, Graphenranderweiterung mal auf 70-80 setzen.
oder aber auch die Position von der Legende allgemein ändern.

du hast auch 2 unterschiedliche Graphen.

Hallo Rainer,

im Moment habe ich folgende Einstellungen geändert.

In der GraphenKonfiguration_WebFront.php:

$LEGENDEYPOS = 0.999;
$ANZAHLLEGENDESPALTEN = 5;

und in der graphenbasis.php

  if (isset($avgresult))
  {
   $line[$lc]->SetLegend($vardata['Name']."
Max: ".round($ymax[$lc],2)."
Min: ".round($ymin[$lc],2)."
Avg: ".round($avgresult['Durchschnitt'],2)."
Aktuell: ".end($ydata[$lc]).$vardata['Einheit']);
  }
  else
  {
   $line[$lc]->SetLegend($vardata['Name']."
Max: ".round($ymax[$lc],2)."
Min: ".round($ymin[$lc],2)."
Aktuell: ".end($ydata[$lc]).$vardata['Einheit']);
  }

Das Ergebnis ist schon mal nicht schlecht, nur bei Graphen die eine x-Skalierung von 0-100 haben oder besser die bei 0 beginnen tritt das Proglem auf, aber wie gesagt, nach der Änderung schon besser.

Als Anlage nochmal die angepassten Graphen.

Bei der Anlage DUG_1 und DUG_2 passt es nur bei DUG_3 ragt die Legende in die Grafik.

Hallo zusammen,

wow, ich bin etwas überwältigt vom vielen Zuspruch, den mein kleines Tool hervorruft. Danke an alle, die es benutzten und sich daran erfreuen!

Nun zu euren Fragen:

Nein, das ist nicht vorgesehen. Ich stelle es mir auch recht schwierig vor eine Graphen zu erstellen, bei dem sich sozusagen mehrere X Achsen (Zeitachsen) überlagern. Ich plane das daher auch erst mal nicht einzubauen.

Die meisten Fehler (und somit auch dieser), die ich bis jetzt gemeldet bekommen haben, liegen daran, dass die IPS ID für die DUG Scriptobjekte nicht mit denen in der DUG Datenbank übereinstimmen. Dies passiert, wenn man die Scripte „DBupdate.php“ und/oder „Grapehnupdate.php“ manuell in IPS eingebunden oder verändert hat. Die IPS IDs der Scriptobjekte werden in der DB gespeichert und müssen zum Wiederauffinden der Scripte mit denen in IPS identisch sein.
Wenn ein solcher Fehler auftritt ist folgendes zu tun:
Geh in die DUG Tool Einstellungen. Dort stehen alle gespeicherten IPS IDs. Vergleiche, ob diese mit denen in IPS übereinstimmen. Wenn nicht, korrigiere sie in den DUG Tool Einstellungen. Falls sie doch übereinstimmen sollten, schreib mir nochmal. :slight_smile:

Das Tool wurde von mir eigentlich mit der Intention einer Langzeitdatensicherung geplant. Ich war und bin mir durchaus bewußt, dass die DB sehr sehr groß werden kann. Die Datenbanken, egal welcher Art sie sind arbeiten sehr effizient und speichern wirklich nur die wenigen Bytes einen Dateneintrages. Sollte dir die Datenbank trotzdem zu groß werden hier einige Tipps:

  • [li]Ich habe auch Komponenten, die alle paar Sekunden einen Wert in die DB schreiben. Um das etwas zu minimieren habe ich ein Script angelegt, welches mehrere Werte sammelt (bei mir 5 Stück) davon den Mittelwert berechnet und diesen Wert dann in die DB schreibt. -> somit hat mal nur noch 1/5 der Datenmenge. Alternativ geht natürlich auch ein Script, welches die Variable von in festen Schritten in die DB schreibt. Also, wenn eine Var zwischen 10-20 liegt wird immer 20 in die DB geschrieben.
    [/li][li]Wenn du nicht daruf angewiesen bist, deine Daten lange zu lagern, sondern diese wirklich nur für die Graphen benutzen möchtest, so gibt es die Möglichkeit die Anzahl der zu speichernden Werte zu limitieren.
    [/li]Unter „Variable bearbeiten“ kannst du entweder eine maximale Anzahl zu speichernder Werte anzugeben, oder eine maximale Zeitspanne. Wird die Anzahl oder die Zeitspanne überschritten, so wird jeweils der älteste Wert überschrieben. (Bei der max. Anzahl hab ich das schon getestet und es funktioniert. Bei der maximalen Zeitspanne kannst du gerne mal nen Testlauf starten :slight_smile: Es sollte aber klappen.)

Somit sollte die Größe der DB kontollierbar bleiben.

Das „verhübschen“ wollte ich mit den Konfigurationsdateien eigentlich euch überlassen :smiley:
Die gequetschte Beschriftung kannst du auf 3 Arten ändern:

[ul]
[li] Das Bild an sich breiter machen.
[/li][li] den Wert $ABSTANDZWISCHENHAUPTTICKS in der Konf. erhöhen
[/li][li] in der Graph. Konf. in das array $GRAPHXACHSENTICKS einen weiteren Zwischenschritt einfügen.
[/li][/ul]
Das ist alles machbar und alles dir bzw. euch überlassen. Ich warte noch auf DIE perfekten Einstellungen, die ich dann natürlich gerne von euch übernehme und einbaue.

Ich hoffe es wurden alle Fragen beantwortet. Nun noch ein paar Worte, wie es jetzt weiter geht: zu erst einmal werde ich versuchen am Disign der Legende noch etwas zu schrauben, um die Werte übersichtlicher darstellen zu können. Dann werde ich die Idee mit den Balkendiagrammen (Verbrauchsdiagramm) umsetzen.
Eine Portierung auf SQLite 3 ist leider gar nicht sooooo einfach. Bzw. einfach schon, aber sehr aufwendig. Die Benutzung anderer Datenbanken ist programmiertschnisch möglich und mit der Portierung auf SQLite 3 identisch, da php eine einheitliche Schnittstelle für alle DB Typen anbietet, so dass man zu Anfang nur noch einstellen muss, welchen DB Typ man nutzen möchte. Das ist allerdings so aufwendig, dass ich es mir für version 2.0 aufhebe. Momentan bin ich mit der DB ganz zufrieden.

So, das wars dann erst mal von mir, Gruß Tobias

Hallo Tobias,
Wirst Du die aktuellen Anpassungen von Werner und Rainer mit in den Standard übernehmen ?

Das würde den manuellen Aufwand reduzieren und den Usern des tools das Leben noch einfacher machen.

Tolle Sache das ganze !!

gruss
B71

@Tobias

Also bei mir waren die IPS ID’s alle richtig eingetragen, trotz der Fehlermeldung.
Habe nun das eine Skript händisch unter das DUGTool verschoben.
Scheint alles ordentlich zu laufen.

Welche Anpassungen genau meinst du?

hallo, ich hab jetzt folgendes mit der Legende hin bekommen:
Ich weiß, der Graph ist nicht schön, aber es geht ja auch nur um das Design der Legende.

Perfekt.

Bin gespannt wie Du das gelöst hast.

Schick uns doch mal die entsprechende KonfigGraphen_

Hallo Tobias,

anscheinend arbeitet Ihr 3 gerade am Design der Graphen und ich würde mich freuen, wenn Ihr dieses Wissen dann in den Standard einfliessen lassen würdet.

Ich weiss aktuell nicht, wie Ihr diese Aktivitäten untereinander synchronisiert und vor allen Dingen nicht, mit welchen Flags und Eingaben Ihr solche Graphen hinzaubert.

Wäre hier eine Kurzdokumentation für „newbie´s“ möglich ?
Das ist irgendwie nicht selbst erklärend und try & error da vielleicht der falsche Weg.

Ich habe es unfallfrei hinbekommen das Tool zu installieren und zu konfigurieren. Die Graphen, die hier aktuell von Euch an die Posts angehängt werden, wecken jedoch den Hunger und ich habe keinen Plan, wie ich das so hinzirkele, dass das bei mir am System genauso aussieht…

Wird mein Wunsch jetzt etwas klarer ?

Gruss
B71

Also es gibt aktuell 2 Desgins:

  1. das Standarddesign mit einer weißen Zeichenflächen, hellblauem Rahmen und grauer Legende.
  2. Das WebFront Design mit dunkelblauer Zeichenfläche, schwarzem Rahmen und Legende.

Wie du das Design ändern kannst wird in diesem Beitrag „http://www.ip-symcon.de/forum/f56/graphen-webfront-6793/index5.html#post59382“ Beitrag erklärt.

Ja, ich denke es ist an der Zeit mal ein Newbe Guide zu schreiben. Ich muss schauen, wie und wann ich dafür Zeit finde. Allerdings hab ich auch nichts dagegen, wenn das jemand anderes übernimmt und seine Erfahrungen in die Beschreibung mit einfließen lässt :wink:

Gruß Tobias

Hallo Tobias,

siehste, dass war der Tip den ich unter dem Strich suchte.

Also muss ich die Codezeilen von Rainer und Werner, sobald diese hier in einem Posting auftauchen in die 2. genannte PHP Datei einbauen um dort entsprechend diese grafische Lösungen zu bekommen.

Mag ja sein, dass es für Euch logisch ist, aber ich war mir da nicht sicher und daher die Frage, ob Du diese Sachen halt automatisch in der nächsten Version übernimmst und dann ist der „drops automatisch gelutscht“.

Grüssle
Bernd

P.S.: Dokumentieren…ja das kann ich wohl etwas…nur habe ich gerade meine Eltern zu Besuch und damit Ausnahmezustand :slight_smile:

ich bekomme ab und an folgenden Fehler konnte ihn aber leider noch nich genau rekonstroieren auf jeden fall lade ich foat werte

Fatal error: Call to a member function SetColor() on a non-object in C:\IP-Symcon\webfront\DUGTool\graphenbasis.php on line 416

habt ihr ne idee ??

habe alle möglichen kombinationen fersucht es liegt werder an der menge der noch farber der graven oder an einer bestimmten variable.

Hallo Ken,

ich denke Du hast das letzte Update nicht genommen.

Da war ein Schreibfehler mit der Nulllinie. Dieser verursacht diesen Fehler jetzt.

ok ich dachte ich hät das letzte war doch 1.4 b.z.w. auf der webseite sacht er 14 oder sach mir doch bitte den link

Daran hat sich auch nichts geändert. einfach auf der ersten Seite noch mal runterladen.