Toni's ParaGraph

Toni’s ParaGraph

Hallo Community

Ich möchte euch heut meine Graphen vorstellen. Das RRD-Tool ist bestimmt gut, aber man hört doch immer wieder wie sehr es doch den Prozessor beschäftigt. Da ich IPS nach Möglichkeit auf einem ganz alten PC als Haus-Server einsetzen will hab ich mir daher viele Gedanken gemacht. Und dies ist dabei herausgekommen.

@Torro: Ich hab mir dein Tool absichtlich nicht vorher angeschaut. Zum einen um unvoreingenommen zu bleiben und zum Anderen hatte ich keinerlei Konkurrenz-Gedanken dabei. Nur Spaß an der Sache.

Was es macht:
-Es erstellt Graphen aus einer simplen Textdatei.
-Zu jeder Variable die man darstellen will erstellt das Tool selbsttätig (muss durch IPS getriggert werden) eine History, die auch von Hand nachbearbeitet werden kann.
-Es kann den Zustand jeder „Zahl Variable“ in IPS verfolgen. Mit Nachkommastellen, Positiv und Negativ.
-Zu jeder Variable können diverse Einstellungen und Layouts erstellt werden
-Die Layouts werden ebenfalls in einer simplen Tetdatei hinterlegt. Damit man immer die kontrolle hat.
-Es kann nehezu beliebig viele Graphen verwalten.
-Es können Tumbnail-Graphen erstellt werden.
-Es braucht nur Sekundenbruchteile für einen Graphen und belastet dabei kaum den Rechner.
-Es speichert die Graphen als JPG. Deren Kompressionsrate und damit die Qualität/Dateigröße kann für jeden Graphen einzeln eingestellt werden.
-Die Größe der Graphen kann man einstellen. Brauche ich für Fullscreen beim PDA.
-Automatische Scaling. Das heisst es wird nach Möglichkeit eine optimale Darstellung der Werte gewährleistet (das war schwierig, bin auch noch nicht ganz zufrieden)
-Es lässt sich vollständig aus einer Textdatei administrieren und über die Kommandozeile bedienen. Damit lässt es sich sauber aus Scripten aufrufen.

Was es nicht macht:
-Es kann und will Torros Tool nicht ersetzen. Es ist sehr auf meine Wünsche und Anforderungen zugeschnitten. Ich nehme aber Verbesserungsvorschläge an. :wink:
-Multigraphen kann es nicht darstellen und es ist auch nicht vorgesehen.
-Es werden ausschließlich Werte in Bezug zur Zeit gesetzt. (Monitoring) Die X-Achse ist IMMER die Zeit.
-Es ist nicht an IPS gebunden. Woher die Werte kommen ist ihm egal.

Ich habe viel von euch bekommen, und desshalb gebe ich euch heut etwas zurück. Ich geb das Tool raus an jeden, der es testen möchte. Aber seid nachsichtig mit mir. Ich hab nur wenig Zeit da rein investiert, es ist noch nicht ganz fertig, und es sind bestimmt noch kleine Macken drin… :frowning: Ich muss es noch ein wenig polieren bevor ich es aus der Hand geben kann, aber lasst es mich wissen wenn ihr Intresse habt es zu testen

07.03.06 - Version 0.9b

So Leute ich hab nun einmal einen Download angehängt. Lasst mich bitte wissen, wenn ihr Probleme habt. Es ist sonst schwer für einen Entwickler etwas dagegen zu unternehmen.

08.03.06 - noch immer Version 0.9b

Ich bin Opfer meines Packers geworden. Der hat leider das in der Readme.txt beschriebene verzeichnis nicht mit Kopiert. Klassischer Bedienungsfehler meinerseits. Hier ein Update mit korrekt gepacktem ZIP - Sorry.

Zu guter Letzt noch ein paar Bilder.

ParaGraph.jpg

ParaGraph1.jpg

ParaGraph2.jpg

ParaGraph3.jpg

ParaGraph4.jpg

ParaGraph.ZIP (263 KB)

Hi,

das sieht schon sehr gut aus. Genau richtig für mich, da mein 500MHz Rechner schon sehr zu kämpfen hat. Ich würde das Tool gerne verwenden zur Visualisierung meiner Heizungstemperaturen (Soll + Ist-Werte), von daher wäre eine Grafik mit 2 Datenreihen schon sinnvoll (1 Chart pro FHT). Muss ich dann die Daten erst eine Text-Datei schreiben oder wie? Kann ich die Charts irgendwie in den Designer integrieren? Aktualisieren sich die Charts automatisch?

Danke, TK

Hi TK6

Das mit den „2 Linien in einem Bild“ (meinst du das so?), also Soll und Ist-Wert, war ansich nicht vorgesehen.

Die Werte werden mit

exec('ParaGraph -add Wohnzimmer '.$temperatur);

automatisch in die Textdatei geschrieben und mit

exec('ParaGraph -save Wohnzimmer');

als JPG gespeichert. Was du mit dem JPG machst bleibt deine Sache. Wobei Wohnzimmer für den Namen deines Graphen steht.

Zum Temperatur schreiben musst du IPS veranlassen dies zu tun. Entweder mit nem Timer oder mit nem Event/Trigger.

Edit:

Um ein Aufblitzen der DOS-Box zu verhindern sollte man die IPS-Funktion IPS_Execute verwenden. Sieht dann so aus:


IPS_Execute('ParaGraph', '-add Wohnzimmer '.$temperatur, False, True);
IPS_Execute('ParaGraph', '-save Wohnzimmer', False, True);

Toni

Donnerwetter,

hast dir grosse Mühe gemacht !

mfG Franz

Hallo Tonic1024,

ein sehr schönes Projekt, was Du da realisiert hast.

Ich selbst habe schon vor einigen Monaten ein ähnliches Tool geschrieben, allerdings speziell für den Einsatz im Designer.
Einen Graphen aus einer Textdatei zu berechnen und zu skalieren ist gewiss kein GAU für die CPU. Damals hatte ich mit Torro eine diesbezügliche Diskussion und ich muss gestehen, dass ich bis heute nicht verstehe, warum Torros Tool so CPU-hungrig ist. Auch mein Programm schafft das im Millisekundenbereich. Ich muss Dir also völlig Recht geben.

Aber ich habe ein paar Bemerkungen zu machen:

  1. Wir haben es bei den FHTs mit zwei „Klassen“ von Graphen zu tun: Temperatur und Ventilstellung.
    Worin liegt der Unterschied?
    Die Temperatur besitzt einen kontinuierlichen Verlauf.
    Die Ventilstellung besitzt dagegen einen zeitdiskreten Verlauf.
    Wenn Du ein Abtastintervall von 5 Minuten zugrunde legst, dann kann man davon ausgehen, dass die Temperatur sich in diesem Zeitraum kontinuierlich geändert hat. Wohingegen die Ventilstellung sich sprunghaft ändert. Dieser Unterschied sollte auch aus dem Verlauf eines Graphen deutlich hervorgehen. Ein zeitdiskreter Graph verläuft „eckig“, denn er ist die allermeiste Zeit konstant (siehe Anhang).
    Diese Feature beherrscht auch Torros Tool nicht!

  2. Es ist sehrwohl sinnvoll mehrere Graphen gleichzeitig darzustellen, denn sehr häufig möchte man doch Vergleiche anstellen. Das geht deutlich besser, wenn beide (oder noch mehr, aber nicht zu viele) im selben Koordinatennetz dargestellt werden.

  3. Ich habe bewusst auf das JPG-Format zugunsten von GIF verzichtet. Erstens sind die Dateien kleiner und zweitens gibt es keine „verwaschene“ Darstellung.

Vielleicht ist diese Anregung für Dich interressant.
Du bist mit Denem Tool sicher auf dem richtigen Wege. Weiter so…:slight_smile:

Gruß
HJH

Designer FHT WZ.gif

… also ich wäre an euren beiden Lösungen interessiert.

Könntet ihr vielleicht mal posten, wie ihr das gemacht habt, evtl. ein paar Script-Beispiele?

Fange gerade erst mit dem Designer an, deshalb habt Nachsicht mit mir. :o

Grüße,

Thomas

Danke HJH für den Tip.

Zu 1.: Ich setze keine FHTs ein und bin noch nicht auf die Idee gekommen dass ich das mal tun werde. (werd ich wohl auch nicht). Der „eckige Verlauf“ ist nach meiner Methode ganz simpel zu implementieren. Werd ich mir mal vornehmen in Version 1.1 :wink:

Zu 2.: Ja, ich hab mir da schon Gedanken drüber gemacht. Da ich es (noch) nicht brauche habe ich es nicht mit reingenommen. Letztlich ist die Änderung im Code aber nicht so gigantisch, dass man nicht mal drüber nachdenken könnte.

Über Gif hab ich schon nachgedacht…

Ich stell das Teil heute oder Morgen zu download hier rein. Könnt ich alle gerne bekommen. Zum benutzen oder „zerreissen“ :smiley:

@DocSnug: das volle Script, also alles was du brauchst, steht schon da. (oben) :wink:

Toni

Hallo HJH,

das ist ja ein Super Tool. Genau das, was ich brauche. Könntst Du dazu noch mehr Infos liefern, bzw. ist es möglich dass ich das bei mir installiere?

Danke

TK

Ich sag ja, jeder kann es bekommen… nur etwas Geduld noch, bitte.

Was willste denn wissen?

Hallo TK6,

grundsätzlich habe ich nichts dagegen meine Scripts weiterzugeben.

Ich überlege gerade, wie ich das anstelle. Das Projekt besteht nämlich inzwischen aus dutzenden von Scripts und nochmehr Variablen. Es ist daher dringend erforderlich erst einmal aufzuräumen. Dafür brauche ich etwas Zeit.

Der prinzipielle Aufbau des Graphen sieht etwa so aus:

  1. Die relevanten Daten werden im 5-Minuten-Takt mit festem Format in eine Datei geschrieben.
  2. Ebenfalls im 5-Minuten-Takt wird diese Datei zusammen mit der vom Vortag ausgelesen, damit immer ein Zeitraum von mindestens 24 Stunden zur Verfügung steht.
  3. Es wird ein leeres Graphenfenster erzeugt mit einer Breite von 288 Pixeln. Somit entspricht 1 Pixel genau einem 5-Minuten-intervall (bezogen auf 24 Stunden).
  4. Ausgehend vom aktuellen 5-Minuten-Intervall (also dem jüngsten Eintrag) werden die Graphen rückwärts in das Fenster eingetragen.
  5. Der Vorgang wird für alle beteiligten Räume wiederholt.

Meine Graphen-Routine ist inzwischen genau auf diesen Anwendungsfall abgestimmt. Dieser Abstimmung ist auch die Skalierung zum Opfer gefallen. Wenn Du mehr Flexibilität benötigst, müsstest Du die fehlenden Teile selbst ergänzen oder doch das Tool von Tonic1024 verwenden. Das ist in mancher Hinsicht dem meinen eine Nasenlänge voraus.

Egal, wie Du Dich entscheidest, ich werde auf jedenfall mal mit dem Aufräumen beginnen.

Gruß
HJH

Danke für die Blumen. Aber ich denke die baben beide so ihre Vorteile. Wenn ich höre 5min entsprechen 1 Pixel. Soweit hab ich wirklich nicht gedacht. Ich muss zugeben, man wird es schwer haben minutengenau oder auf 0,1 Grad-Celsius genau von meinem Graphen abzulesen. Ist wieder ne Frage vom Scaling…

Aber ich hab noch so einiges an Ideen und viel zu wenig Zeit die umzusetzen.

Konnt mir nicht verkneifen mit diesen Vorgaben Nen Graphen zu generieren. Nur um zu sehen wies ausschaut.

test.jpg

Hallo,

da musste ich doch gleich mal steiners Grafik hier reinstellen, also die aktuellen Wetterdaten von unserem IPS Ort Sarkwitz:

Jap, und genau da sehe ich den Unterschied und auch den Bedarf für mein Tool. Sieht ziemlich professionell aus. Aber sowas will ich morgens auf meinem Panel nicht lesen (müssen). Wie ich schon geschrieben hab kann und will ParaGraph soetwas nicht darstellen. Ich hab ehrlich gesagt auch keine Lust es soweit aufzubohren. Ich will auch nicht in Konkurrenz mit dir treten oder irgendwas beweisen. Ansich ist das ParaGraph auch nur für mich allein bestimmt. Ich möchte nur das Forum dran teilhaben lassen.

Mein Gedanke ging eher in die Richtung der Einfachheit. Ich hab nämlich nie große Lust mich mit Bedienungsanleitungen auseinander zu setzen. ParaGraph wird nur auf die Festplatte kopiert und mit einer Zeile im Script bedient. Die Bedienungsanleitung (arbeite ich grade dran) wird gleichzeitig (ganz Linux-Like) das Konfigurationsfile sein :wink:

Toni

Ich Push den Thread mal eben, denn ich hab im 1. Beitrag einen Download für euch angefügt.

Bin wirklich gespannt auf eure Reaktionen. Seid gnädig [winsel] :smiley:

Toni

@ Toni

einfach und simpel hört sich gut an. Ich wollte eigentlich nur die Stromaufnahme unseren Hauses zusätzlich zu den Anzeigewerten einmal Graphisch sichtbar machen.

Dann warte ich mal ab, bis du die 726 seitige Bedienungsanleitung fertig hast :smiley:

Gruß,

Thomas

Hallo zusammen.

11 Downloads. Find ich klasse, dass so ein Interesse an Toni’s ParaGraph besteht. Leider hat mein Packer mich überlistet und die in der Readme.txt beschriebene Verzeichnisstruktur aufgebrochen. Das Verzeichnis, dass ihr entpacken sollt ist garnicht im Zip-Archiv.

Ich habe das korrigiert. Der jetzige download funktioniert (im ersten Beitrag geändert). Für alle die keine Breitband verbindung haben ne kleine Anleitung:

Im IPS-Verzeichnis ein Unterverzeichnis erstellen mit Namen „ParaGraph“
Auf dieses verzeichnis mus der User Schreibrechte haben weil ParaGraph dort ein Logfile anlegen will. Die Dateien „ParaGraph.ini“ und „test.txt“ müssen in dieses Verzeichnis verschoben werden. Die EXE bleibt im Stammverzeichnis von IPS.

Dann sollte es funktionieren.

Sorry

Toni

…hmmm.

Ich dachte, mit

exec('ParaGraph -add test '.$aktuell);

würde die Datei test.txt mit den Daten aus $aktuell gefüllt?

Ich sehe immer nur ein schwarzes (DOS)-Fenster aufblitzen aber keine Änderung in der Datei. Irgend eine Idee?

Thomas

Hast du das Verzeichnis ParaGraph im IPS-Hauptverzeichnis angelegt, wie ich es beschrieben hab?

Wenn ja findest du in diesem Verzeichnis ein Logfile, in dem der fehler beschrieben steht. Wenn nein, so ist das womöglich der Fehler.

Was steht in $aktuell für ein wert?

Das DOS-Fenster ist normal, das macht der Befehl exec - ich such noch ne alternative. Bislang erfolglos. :frowning:

Edit:

Lösung für das Aufblitzen ist gefunden - Stichwort „IPS_Execute“

Toni

Jup, steht im ips verzeichnis.

das logfile wurde erst geschrieben, als ich ein jpg erzeugen wollte, vorher war das logfile gar nicht da, und das jpg wurde auch nicht erzeugt (aus deinem Test.txt.
Die Variable ist eine Float.

Das mit dem DOS-Fenster ist leider eine dumme Sache, sieht aus, als wenn mein Touch-Screen in der Wand 'ne Bildstörung hat :confused:

Thomas

Hast du die Anleitung gelesen? Die Dateien liegen alle am verkehrten Ort nach dem Entpacken. Das war ein Fehler im Zip-File, den ich bereits korrigiert habe. Deine Informationen sind etwas spärlich. Da kann ich dir so kaum weiterhelfen.

ParaGraph.exe -> IPS-Stammverzeichnis
ParaGraph.ini -> Verzeichnis ParaGraph als Unterverzeichnis vom IPS Stammverzeichnis
test.txt -> Verzeichnis ParaGraph

(Im jetztigen download ist das automatisch so, wenn du den ins IPS-Verzeichnis entpackst)

Rechte gesetzt auf das Verzeichnis - je nach Windows Benutzer

in der INI steht, dass er nach C: est.jpg schreiben soll. Gibts Laufwerk C bei dir und hat dein Windows-User dort Schreibrechte? Du kannst das JPG auch woanders hinschreiben lassen.

Du musst mir helfen, damit ich dir helfen kann…

Toni