Gnuplot Ausgaben selbst erzeugen

Begonnen von Guest, 05 August 2011, 22:24:26

Vorheriges Thema - Nächstes Thema

Guest

Originally posted by: <email address deleted>

Ich versuche gerade einen Logfile, in den alle meine
Temperatursensoren Schreiben schön darzustellen.
Dazu habe ich eine Datei mcul_ws_1.gplot erzeugt, die auch unter
gnuplot direkt funktioniert.
############################
# Display the s300th data reported by the CUL
# Corresponding FileLog definition:
# define FileLog /var/log/fhem/s300th-%Y.log

set terminal png transparent size crop
set output '.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title ''
set ylabel "Temp (C)"
set y2label "Temp (C)"
set grid
set ytics
set y2tics
set format y "%.1f"
set format y2 "%.1f"
plot\
 "" using 1:4 title 'Bad' with lines,\
 "" using 1:4 title 'Dusche' with lines,\
 "" using 1:4 title 'Kueche' with lines,\
 "" using 1:4 title 'Schlafzimmer' with lines,\
 "" using 1:4 title 'Wohnzimmer' with lines

Diese Datei erzeugt aber eine Anzahl Fehler, die ich nicht verstehe.
Ist die Kommunikation von fhem mit PGM2 und Gnuplot irgendwo erklärt?

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

rudolfkoenig

                                                   

> Ist die Kommunikation von fhem mit PGM2 und Gnuplot irgendwo erklärt?

Nicht sehr detailliert, aber siehe
  http://fhem.de/HOWTO.html#plot
  http://fhem.de/commandref.html#plotmode
  http://fhem.de/commandref.html#FileLogget

Ich vermute Du willst die Daten mit dem SVG Modul rendern, und hast vergessen
die #FileLog Zeilen zu erstellen.  Wenn plotmode=gplot ist, dann braucht man
diese nicht, sonst schon.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hallo Rudi

ich habe den Plottmode auf gnuplot-scroll gehabt.

und die Fehlermeldungen aus dem Gnuplot.ERR schauen so aus:
gnuplot> plot  "" using 1:4 title 'Bad' with lines,
"" using 1:4 title 'Dusche' with lines
                                                               ^
         line 0: warning: Skipping data file with no valid points
sh: -c: Zeile 0: Syntaxfehler beim unerwarteten Wort `newline'
sh: -c: Zeile 0: `grep DuschSens '

gnuplot> plot  "" using 1:4 title 'Bad' with lines,
"" using 1:4 title 'Dusche' with lines
 
^
         line 0: warning: Skipping data file with no valid points

gnuplot> plot  "" using 1:4 title 'Bad' with lines,
"" using 1:4 title 'Dusche' with lines
 
^
         line 0: x range is invalid

Die Datenübergabe funktioniert vermutlich nicht, da gnuplot mit dem
plot Befehl auf der Gnuplotshell gut arbeitet, wenn ich durch den
Logfilename ersetze.

Wieso kann die Datenübergabe nicht funktionieren?

Viele Grüße

Markus

On 7 Aug., 12:51, Rudolf Koenig wrote:
> > Ist die Kommunikation von fhem mit PGM2 und Gnuplot irgendwo erkl rt?
>
> Nicht sehr detailliert, aber siehe
>  http://fhem.de/HOWTO.html#plot
>  http://fhem.de/commandref.html#plotmode
>  http://fhem.de/commandref.html#FileLogget
>
> Ich vermute Du willst die Daten mit dem SVG Modul rendern, und hast vergessen
> die #FileLog Zeilen zu erstellen.  Wenn plotmode=gplot ist, dann braucht man
> diese nicht, sonst schon.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

rudolfkoenig

                                                   

> ich habe den Plottmode auf gnuplot-scroll gehabt.

Wahrscheinlich liefert die #FileLog Spezifikation nicht das was gnuplot
erwartet. Was der liefert, kann man selber mit

  get - - 2011-08-07 2011-08-08

testen, siehe auch http://fhem.de/commandref.html#FileLogget
Dabei tauscht man durch den #FileLog Argument aus.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hallo Rudi

bei dem plot oben hatte ich übersehen, das ich diese Zeilen auch für
gnuplot-scroll brauche. Die Ausgabe funktioniert, nur wird nicht
gesetzt, ich würde hier den Logfilenamen erwarten.

Ich habe mich jetzt um die Piri's gekümmert. Wieder klappt alles mit
gnuplot aber ich bekomme im SVG mode keine Achsbeschriftung und gar
nichts, dafür wird hier L1 gesetzt.

Der Test mit get HausLog  - - 2011-08-07 2011-08-08 "1.6":MarkusP:1.6:
liefert
2011-08-07 1.6
#"1.6":MarkusP:1.6:


Der Grep auf die Datei liefert:
2011.08.08 11:54:36 2: FS20 MarkusP on
2011.08.08 12:04:52 2: FS20 MarkusP on
2011.08.08 12:15:05 2: FS20 MarkusP on
2011.08.08 12:20:48 2: FS20 MarkusP on
2011.08.08 12:31:18 2: FS20 MarkusP on
2011.08.08 12:34:05 2: FS20 MarkusP on
2011.08.08 13:00:12 2: FS20 MarkusP on


############################
# Display a piri log with multiple units logging into the same file.
# Corresponding FileLog definition:
# define pirilog FileLog /var/log/fhem/piri-%Y-%m-%d.log piri.*
# The devices are called piri.sz, piri.flo, piri.flu, prir.wz1 and
piri.wz2

set terminal png transparent size crop
set output '.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set ylabel "Piri"
set y2label "Piri"
set title ''
set ytics ("Markus" 1.6, "Barbara" 1.4, "Dusche" 1.2, "Bad" 1.0, "Sz"
0.8, "Gang" 0.6, "Flur" 0.4, "Wz" 0.2, "Kueche" 0.0)
set y2tics ("Markus" 1.6, "Barbara" 1.4, "Dusche" 1.2, "Bad" 1.0, "Sz"
0.8, "Gang" 0.6, "Flur" 0.4, "Wz" 0.2, "Kueche" 0.0)
set yrange [-0.1:1.7]
set y2range [-0.1:1.7]

#FileLog "1.6":MarkusP:1.6:
#FileLog "1.4":BarbaraP:1.4:
#FileLog "1.2":DuscheP:1.2:
#FileLog "1.0":BadP:1.0:
#FileLog "0.8":SchlafP:0.8:
#FileLog "0.6":GangP:0.6:
#FileLog "0.4":FlurP:0.4:
#FileLog "0.2":WohnP:0.2:
#FileLog "0.0":KuecheP:0.0:

plot\
  "< awk '/MarkusP/{print $1, 1.6; }' " using 1:2 notitle with
points,\
  "< awk '/BarbaraP/{print $1, 1.4; }' " using 1:2 notitle with
points,\
  "< awk '/Duschep/{print $1, 1.2; }' " using 1:2 notitle with
points,\
  "< awk '/BadP/{print $1, 1.0; }' " using 1:2 notitle with points
  "< awk '/SchlafP/ {print $1, 0.8; }' " using 1:2 notitle with
points,\
  "< awk '/GangP/{print $1, 0.6; }' " using 1:2 notitle with
points,\
  "< awk '/FlurP/{print $1, 0.4; }' " using 1:2 notitle with
points,\
  "< awk '/WohnP/{print $1, 0.2; }' " using 1:2 notitle with
points,\
  "< awk '/KuecheP/{print $1, 0.0; }' " using 1:2 notitle with
points

Hast Du wieder einen schnellen Tipp, was ich diesmal falsch mache?

Vielen Dank

Markus


On 7 Aug., 22:39, Rudolf Koenig wrote:
> > ich habe den Plottmode auf gnuplot-scroll gehabt.
>
> Wahrscheinlich liefert die #FileLog Spezifikation nicht das was gnuplot
> erwartet. Was der liefert, kann man selber mit
>
>   get - - 2011-08-07 2011-08-08
>
> testen, siehe auchhttp://fhem.de/commandref.html#FileLogget
> Dabei tauscht man durch den #FileLog Argument aus.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

rudolfkoenig

                                                   

> Der Test mit get HausLog  - - 2011-08-07 2011-08-08 "1.6":MarkusP:1.6:
> liefert
> 2011-08-07 1.6
> #"1.6":MarkusP:1.6:

Wie schaut es mit
  get HausLog  - - 2011-08-08 2011-08-09 "1.6":MarkusP:1.6:
aus?

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hallo Rudi,

Das Ergebnis ist gleich:
2011-08-08 1.6
#"1.6":MarkusP:1.6:

get HausLog  - - 2011-08-08 2011-08-09 1:MarkusP:1.6:
liefert nur
2011-08-08 1.6
#1:MarkusP:1.6:

Ich schaue mir gerade das Ergebnis des awk auf der Kommandozeile an.
awk trennt das Datum und die Uhrzeit trotz des verbindenden
Unterstrichs auf. Mit print $1 bekommt man dann nur noch 2011-08-08
und mit $2 bekommt man nur die Uhrzeit. Dieses Verhalten kann man
bestimmt irgendwo global definieren. Hoffentlich unterscheidet sich
das nicht von Distribution zu Distribution von Linux.

Viele Grüße

Markus



On 8 Aug., 13:25, Rudolf Koenig wrote:
> > Der Test mit get HausLog  - - 2011-08-07 2011-08-08 "1.6":MarkusP:1.6:
> > liefert
> > 2011-08-07 1.6
> > #"1.6":MarkusP:1.6:
>
> Wie schaut es mit
>   get HausLog  - - 2011-08-08 2011-08-09 "1.6":MarkusP:1.6:
> aus?

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

rudolfkoenig

                                                   

> awk trennt das Datum und die Uhrzeit trotz des verbindenden
> Unterstrichs auf.

Ich glaube awk trennt da gar nix selber: Ich sehe gerade, dass dein "Der Grep
auf die Datei liefert"... keine Unterstriche hatte zw. Datum und Uhrzeit. Das
fhem-log (bzw FileLog) ist aber auf diesen Unterstrich fixiert...

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hallo Rudi

Du hast recht, nur das HausLog sieht bei mir so aus. Alle anderen
Logfiles sind OK.
Damit wird es erzeugt.

attr global logfile /var/log/fhem/HausLog-%Y-%m.log

# Fake logfile, to access the global log
define HausLog FileLog /var/log/fhem/HausLog-%Y-%m.log fakelog
attr HausLog logtype mpiri_2:Piris,text:Raw-data

Ich habe das jetzt durch folgende Zeile ersetzt
define HausLog FileLog /var/log/fhem/HausLog1-%Y-%m.log *
und dieses Log sieht gut aus
aber in  /var/log/fhem/HausLog-%Y-%m.log stehen jetzt lauter
Fehlermeldungen:
^* matches null string many times in regex; marked by <-- HERE in m/^*
<-- HERE $/ at /usr/share/fhem/FHEM/92_FileLog.pm line 80.
^* matches null string many times in regex; marked by <-- HERE in m/^*
<-- HERE $/ at /usr/share/fhem/FHEM/92_FileLog.pm line 80.
^* matches null string many times in regex; marked by <-- HERE in m/^*
<-- HERE $/ at /usr/share/fhem/FHEM/92_FileLog.pm line 80.
^* matches null string many times in regex; marked by <-- HERE in m/^*
<-- HERE $/ at /usr/share/fhem/FHEM/92_FileLog.pm line 80.
^* matches null string many times in regex; marked by <-- HERE in m/^*
<-- HERE $/ at /usr/share/fhem/FHEM/92_FileLog.pm line 80.
^* matches null string many times in regex; marked by <-- HERE in m/^*
<-- HERE $/ at /usr/share/fhem/FHEM/92_FileLog.pm line 80.
^* matches null string many times in regex; marked by <-- HERE in m/^*
<-- HERE $/ at /usr/share/fhem/FHEM/92_FileLog.pm line 80.
^* matches null string many times in regex; marked by <-- HERE in m/^*
<-- HERE $/ at /usr/share/fhem/FHEM/92_FileLog.pm line 80.

Wie geht es richtig? Ich möchte eigendlich alles loggen, um zu sehen,
was abläuft

Viele Grüße

Markus

On 8 Aug., 13:25, Rudolf Koenig wrote:
> > Der Test mit get HausLog  - - 2011-08-07 2011-08-08 "1.6":MarkusP:1.6:
> > liefert
> > 2011-08-07 1.6
> > #"1.6":MarkusP:1.6:
>
> Wie schaut es mit
>   get HausLog  - - 2011-08-08 2011-08-09 "1.6":MarkusP:1.6:
> aus?

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

rudolfkoenig

                                                   

> define HausLog FileLog /var/log/fhem/HausLog1-%Y-%m.log *

Bitte regexp verwenden und kein shell-glob. In regexp * ist ein Quantor, kann
nicht alleine stehen: .* waere besser.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com