Toni's ParaGraph

Hallo Toni,

also bei mir kommen diese Fenster nicht, und ich rufe aus WIIPS ja jede Minute, wenn es der Nutzer so moechte, das RRDTool auf. Vielleicht solltest Du mal davon ausgehen, dass innerhalb von IPS auch IPS Funktionausaufrufe benutzt werden, dann hast Du dieses Problem naemlich nicht.

Schau mal hier. das ist das, was Du suchst.

Gruss Torro

Genau was ich brauche. Danke Torro.

Ich werds nach nem ausfühlichen test in der Readme und hier im Forum ändern.

Edit:

Mir sind die Boolschen Werte nicht alle ganz klar geworden. Die Beschreibung passt nicht so ganz zu der Funktion. Aber es läuft feinstens.

Hallo HJH,

ich weiss gar nicht, woher Du diese Behauptung nimmst, mein Tool wuerde dies nicht beherrschen? Schon seit der ersten Version ist die Ventilstellung wie nachfolgend in der Grafik dargestellt, implementiert. Oder besser gesagt, kann man bei den Multigraphen diese Darstellung wie angezeigt waehlen, wenn man beide Graphen zusammenfasst.

In diesem Beispiel habe ich uebrigens die Ventilstellung mit einem Teiler von 4 versehen, damit sie schon in das Raste 0 bis 25 hineinpasst, anders gefaellt es mir nicht.

Also: Torros Tool beherrscht dies und auch noch viele andere Sachen, naeheres dazu ist hier nachzulesen.

Gruss Torro

wz.png

Hallo Torro,

wenn ich mir die Kurven so anschaue, muss ich Dir Recht geben.

Natürlich ist die Einteilung in zeitkontinuierliche und zeitdiskrete Größen nur ein Zugeständnis an unsere beschränkten Messmöglichkeiten. Wir können nun einmal nicht das Polling-Interval beliebig verkürzen (die Auflösung steigern). Ginge dieses, so bräuchten wir auch nicht zwischen den beiden Darstellungsarten zu unterscheiden.

Meine „Behauptung“ stammt noch aus einer frühen Version Deines Tools. Damals habe ich diese Unterscheidung vermisst und habe deshalb eine eigene Routine für meine Zwecke geschrieben. Ich habe die Entwicklung danach lediglich anhand der im Forum veröffentlichten Beispiele verfolgt.

Aber sehen wir uns doch die beiden Graphen mal genauer an:
Die blaue Kurve zeigt eindeutig zeitdiskretes Verhalten. Da sie die Ventilstellung repräsentiert, ist dies auch OK.
Die rote Temperaturkurve zeigt aber bei näherer Betrachtung ebenfalls zeitdiskretes Verhalten, wenngleich mit höherer Auflösung. Die Sprünge sind deutlich kleiner, aber nicht so klein, dass man sie der Auflösungsgrenze (in Pixeln) zuschreiben könnte. Es findet hier also keine Interpolation zwischen zwei aufeinanderfolgenden Werten satt. Diese Kurve sollte aber eigentlich einen zeitkontinuierlichen Verlauf zeigen.

Ein zeitdiskreter Verlauf besteht also aus horizontalen Abschnitten.
Ein zeitkontinuierlicher Verlauf besteht dagegen aus (im einfachsten Fall: lineare Interpolation) beliebig geneigten Abschnitten.

Wie sieht aber die Temperaturkurve aus, wenn der Benutzer ein sehr langes Polling-Intervall (z.B. 15min) einstellt?. Dann wird sie wohl ein sehr „zeitdiskretes“ Aussehen annehmen.

Wenn die Parameter aber so gewählt werden wie in Deinem Beispiel, dann ist absolut nichts dagegen einzuwenden.

Gruß
HJH

Hi Toni,

natürlich helfe ich dir gerne, damit du mir helfen kannst :smiley:

Spass bei Seite:

Also die Dateien habe ich natürlich wie angegeben in die entsprechenden Verzeichnisse geschoben und auch deine Anleitung gelesen. LW C: ist auch OK. Wie ändere ich denn die Rechte in XP für dieses Verzeichnis?

„08.03.2006 18:23:36 - test: Graph gespeichert - test“ stand im Log-File im Verzeichniss ParaGraph, als ich versucht hatte, mit deinem Beispiel Test.txt den Graph zu erstellen. Sieht für mich eigentlich ganz ok aus, nur der Graph fehlte.

Was mich ja noch wundert, ist das an test.txt keine Daten angehängt werden. Vielleicht die Rechte, aber warum wird dann das Log geschrieben :confused:

Noch eine Idee?

Thomas

Tja… Rechte bei XP… gute Frage.

Versuch mal Rechtsklick auf den Ordner, Eigenschaften, Sicherheitseinstellungen (so gehts bei W2K). Dort solltest du eine Liste der Benutzer finden denen du Rechte für Lesen, Schreiben und noch ein paar Dingen ansehen und ändern kannst.

Wenn er aber in das Log-File schreiben kann, sollte auch die schreibrechte gesetzt sein.

Hast du denn auch ein Log-Eintrag für das Adden? gib mir doch mal nen Auszug aus dem Logfile.

Versuch doch auch mal ob du überhaupt richtig die TXT lesen kannst. Mit

IPS_Execute('ParaGraph', '-show test', False, False);

Kannst du den Graphen in einem separaten Fenster öffnen. Damit ist sichergestellt, dass er die INI und das ValueFile findet und richtig interprätiert. Dazu muss er nur lesen.

Toni

Also mit den Rechten weiss ich auch nicht, bin eh als local-Admin angemeldet, sollte also funktionieren.

Dein PHP Code oben habe ich ausprobiert, der Graph wird dann schön aus der Test.txt gezeichnet.

Den LOG-Eintrag habe ich dir ober schon gepostet, mehr steht da nicht drinn,l und auch nur, weil ich das Prog. aus der DOS-Ebene aufgerufen haben. Mit -SHOW funktioniert es auch aus IPS, das wird auch im Log bestätigt.

Welchen Graphen soll ich öffnen, da ist doch keiner :confused:

Aus der DOS-Ebene mit „paragraph -save test“ geschieht auch nichts, ausser einem Eintrag im Log wie oben.

Thomas

gemeint war der Graph „test“ den ich zum testen mitgeschickt hab. Der steht in der ini unter [test] und die ValueFile heisst „test.txt“ und muss im Order *\IPS\ParaGraph liegen - je nachdem wo du IPS installiert hast halt „C:\Programme\IPS\ParaGraph“. Den solltest du mit dem parameter -show öffnen. Aber das klappt ja, sagst du.

Wenn du im Verzeichnis IPS bist und unter DOS mal „ParaGraph -add test 12,3“ eingibst. tut sich dann was? Ganz ohne IPS jetzt.

Du hast auch an das Leerzeichen, wie in der Readme beschrieben, gedacht?

Wann hast du die Datei hier von der Seite geladen? war das vor meiner Korrektur?

Ich hab ParaGraph kurz auf nem XP-Rechner laufen lassen und konnte den fehler nicht reproduzieren. Ich hab auch andere IPS User gefragt, die XP einsetzten. Die hatten auch kein Problem mit dem Tool. Ich steh etwas auf dem Schlauch nu… :frowning:

Toni

so,

ohne IPS funktioniert es ohne Probleme.

exec("ParaGraph -add test ".$gesamt); – in IPS, keine Änderung der test.txt, wobei $gesamt=50 ist. das Dos Fenster zuckt kurz, das wars.

Ans Leerzeichen habe ich natürlich auch gedacht, kann ja schon lesen :stuck_out_tongue:

Die Dateien hatte ich nach deiner Korrektur geladen, auch das hatte ich gelesen.

Mit „paragraph -save test“ sollte doch eigentlich ein JPG erzeugt werden, oder hatte ich das falsch verstanden?

ZIP nochmal neu geladen und entpackt, gleiches Problem.

Noch eine Idee?

Thomas

Ich denke ich hab ein ehler gefunden:

wenn per exec etwas ausgefuhrt wird fuhrt er es uber die locale verzihnis aus.
Probier mal
exec(„batch.bat“);
und in die batch.bat file einfach mal


DIR
PAUSE //bin mir nicht sicher ob in deutsch das commando das gleiche ist

eintragen.

Hier sollte dein dos-fenster beliebig offen stehen bleiben bis ein knopf gedrukt wird. Hast du am wenigsten eine idee wo -oder besser- in was fur ne verzeichnis die exec augefuhrt wird.

My 2 cents

Hallo Fredje,

…hmmm

Also die test.bat wird aus IPS mit EXEC(„test.bat“); nicht ausgeführt, aus DOS aber wohl. Gibt es in IPS irgendwo ein Einstellung, die auf den Pfad C:\IP-Symcon verweisst oder den man einstellen muß?

Gruß,

Thomas

Hm…

Versuch doch mal den vollen Pfad.

IPS_Execute('c:\\Programme\\IPS\\ParaGraph.exe', '-save test', False, True);

Wenns am Pfad liegt sollte es das tun.

BTW: Du musst natürlich den Pfad eintragen, wie er bei dir richtig ist - klar, oder? :smiley:

Toni

Hey leute moment mal :

oder ihr spricht uber den php 5 befehl EXEC()
oder uber IPS_Execute()
aber eure discussion lauft ein wenig durcheinander !!
IPS_execute und EXEC laufen in eine andere umgebung un deshalb sind die pfade-verweisungen verschiedend !!

Obs da unterschiede gibt kann ich nicht sagen. Bin nicht (mehr) so PHP-Fit. Hab mich vor knapp 3 Jahren beruflich damit befasst. Da gabs PHP 5 noch nicht - zumindest nicht bei uns im Unternehmen…

auf IPS_Execute hat mich Torro gebracht, weil dann die DOS-Box nicht aufpoppt. Hab hier einige Tests (auf W2k) gemacht und konnte keine Fehler und Abweichungen - bis auf die abweichende Syntax - feststellen. Ansonsten ist dem ParaGraph das egal womit es geöffnet wird.

Dennoch hast du freilich recht. Es ist etwas vollkommen anderes ob IPS einen Befehl selbst ausführt oder er im Preprozessor interprätiert wird und ausgeführt wird ohne dass IPS etwas davon mitbekommt. Ich denke auch DocSnug hat das erkannt. Die IPS_Execute() Syntax, die ich ihm vorgeschlagen hab hat er ansich immer richtig auf Exec() portiert.

Toni

mit php EXEC sollte ich


$dir = __myhome."system/";
chdir($dir);
...
exec("*.exe argumente",$result);
//RESET working DIR
chdir("C:/Program Files/IP-SYMCON/");

Mit IPS_Execute:


$dir = __myhome."system/";
...
IPS_Execute("$dir"."*.exe", " argumente", false, true);

EXEC() gibt fehler wenn man die


EXEC("$dir"."*.exe",$result];
//    ^^^^^^^^^^^^

ausfuhrt.
also dan nur noch


EXEC(*.exe argumente,$result);

aber hier hat er die *.exe nicht mehr gefunden weil EXEC() in die IP-Symcon-datei arbeitet???

Konnte nicht ganz dechiffrieren was du damit zum ausdruck bringen wolltest, aber ich bin mir sicher, dass du weisst wovon du redest :wink: :smiley:

Bleibt mir nur noch die Empfehlung an DocSnug auszusprechen, das mal mir IPS_Execute zu versuchen wenn der volle Pfad nicht wirkt.

Toni

Hallo, erst einmal muss ich sagen das dieses Tool für einen kleinen Graph eine wirklich schicke Sache ist, vielen Dank erst einmal dafür.

Nun zu meinem hoffentlich kleinen Problem (ich probiere nun schon ein paar Tage)

Ich erzeuge einen Raum Temperatur Graphen mit ParaGraph und möchte immer die letzten 24 Stunden als Graph erzeugt bekommen.
Wenn ich den Startzeitpunkt des Graphen im Skript berechne sagt mir ParaGraph immer das die „Übergebene Beginnzeit ungültig ist“, wenn ich die gleiche Startzeit spitz in das Skript eintrage funktioniert es …

Mit diesem Aufruf klappt alles…


// Graph erzeugen
IPS_Execute('ParaGraph', '-save Graph_Raum-Temperatur 04.04.2007', False, False);

Wenn ich das so mache kommt die Fehlermeldung obwoh in der Variablen das gleiche drinn steht:

// Graph erzeugen
$Zeitraum = date("d.m.y",strtotime("-1 day"));
IPS_Execute('ParaGraph', '-save Graph_Raum-Temperatur $Zeitraum', False, False);

Vielleicht kann mir ja jemand von Euch auf die Sprünge helfen

Tobias

entweder so:


IPS_Execute('ParaGraph', '-save Graph_Raum-Temperatur '.$Zeitraum, False, False);

oder so:


IPS_Execute('ParaGraph', "-save Graph_Raum-Temperatur $Zeitraum", False, False);

Durch die einfachen Hochkommas wird die Variable $Zeitraum nicht mehr aufgelöst - mit den doppelten Hochkommas schon.

Gruss,
Olli

Olli hat recht, daran wirds liegen… Seine Version Nummer 1 würde ich als die sauberere bezeichnen.

Diese ParaGraph Version hat, wenn ich mich recht erinnere, noch einen Bug mit dem Dateinamen, den ich nicht mehr gefixed hab. Der Dateiname lässt sich nicht variabel einstellen, wie es in der Beschreibung steht.

Ich plane aber schon lange eine Neue Version, die dann auch Multigraphen unterstützen wird und eine Datenbank statt der Textdateien spendiert bekommen soll. Auch ist mir der Aufruf über IPS_Excute ein Dorn im Auge. ich möchte vollen PHP-Support mit einbauen. Ein Zeitplan dafür steht aber noch nicht.

Gruß,

Toni

vielen Dank …

das wars, jetzt klappt das …

Gruß Tobias