FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: MarcoE am 16 Juni 2015, 10:05:30

Titel: (gelöst)eine plot-Grafik aus mehreren Logfiles?
Beitrag von: MarcoE am 16 Juni 2015, 10:05:30
Hallo,
ich habe für meine Heizkörper mehrere FHT80b und bekomme für jeden einzelnen auch prima Grafiken daraus erstellt (habe minimale Änderungen gemacht um soll, ist und Actuator anzuzeigen).

Nun hätte ich gerne eine Übersichtsgrafik, die die Solltemperaturen von allen Räumen in einer Grafik anzeigt (jeder Raum eine andere Farbe oder so), obwohl die FHT80b natürlich in verschiedene logfiles (für jeden Raum eines) schreiben.

Wie kann ich das lösen?

Vielen Dank und viele Grüße,
Marco
Titel: Antw:eine plot-Grafik aus mehreren Logfiles?
Beitrag von: DerFrickler am 16 Juni 2015, 10:19:00
http://fhem.de/commandref_DE.html#SVG

◦plotfunction
Eine Liste, deren Werte durch Leerzeichen voneinander getrennt sind. Diese Liste wird verwendet um die <SPEC#> Zeichenfolgen in der .gplot-Datei zu ersetzen. Dabei steht das # für eine laufende Ziffer beginnend mit 1 (<SPEC1>, <SPEC2>, usw.) in der #FileLog oder #DBLog Anweisung. Mit diesem Attrbute ist es möglich eine .gplot-Datei für mehrere Geräte mit einem einzigen logdevice zu verwenden.

Beispiel:
◾#FileLog <SPEC1>
mit:
attr <SVGdevice> plotfunction "4:IR\x3a:0:"
anstelle von:
#FileLog 4:IR\x3a:0:
◾#DbLog <SPEC1>
mit:
attr <SVGdevice> plotfunction "Garage_Raumtemp:temperature::"
anstelle von:
#DbLog Garage_Raumtemp:temperature::
Titel: Antw:eine plot-Grafik aus mehreren Logfiles?
Beitrag von: MarcoE am 16 Juni 2015, 11:02:59
Hi,
hm vielleicht bin ich schwer von Begriff, aber wenn ich mir die Doku zu den Plots durchlese geht es doch los mit der Definition:
define <name> SVG <logDevice>:<gplotfile>:<logfile>

Nun habe ich aber nicht ein logDevice (bzw. ein logfile) sondern mehrere. Was muß dann dort hin? Und ich muß zugeben mit dem Unterkapitel "plotfunction" nicht wirklich was anfangen zu können.

Beim Stöbern bin ich nun noch über http://www.fhemwiki.de/wiki/Creating_Plots gestolpert. Dort wird erwähnt, alle Daten in einem Plot müssen aus einem File kommen (All data used in a plot come from one (!) file. It is currently not possible to mix data from several files. So make sure that the regular expression of the FileLog object catches everything which you need in one plot). Damit scheint wohl das was ich wollte nicht machbar zu sein, oder?

Vielen Dank und viele Grüße,
Marco
Titel: Antw:eine plot-Grafik aus mehreren Logfiles?
Beitrag von: justme1968 am 16 Juni 2015, 11:38:50
statt FileLog kannst du den namen des logDevice im plot file verwenden.

oder du schaut dir logProxy an.

gruss
  andre
Titel: Antw:eine plot-Grafik aus mehreren Logfiles?
Beitrag von: franky08 am 16 Juni 2015, 12:04:29
Oder du stellst auf DbLog um, dann hast du ALLE! Readings in einem File (ausschließen kanst du mit dem Attribut exclude).

VG
Frank
Titel: Antw:eine plot-Grafik aus mehreren Logfiles?
Beitrag von: Hollo am 16 Juni 2015, 12:05:05
Zitat von: MarcoE am 16 Juni 2015, 11:02:59
...Nun habe ich aber nicht ein logDevice (bzw. ein logfile) sondern mehrere. Was muß dann dort hin? ...

Generell hast Du 2 Möglichkeiten:

1. in einer Grafik Werte aus mehreren Logdateien benutzen.

Dazu musst Du eigentlich nur im Plot Editor das passende FileLog auswählen (siehe angehängte Grafik).
Anschliessend 1x write .gplot File machen, sonst bekommst Du nämlich die Werte des FileLogs nicht zur Auswahl angezeigt.
Anschliessend wieder in den Editor und den passenden Parameter auswählen und Darstellungsart konfigurieren.
So könntest Du Dir 1 Grafik mit den Solltemperaturen aller Heizkörper definieren.

2. Werte eines anderen Devices in eine bestehende Logdatei speichern

Mittlerweile speicher ich z.B. die Luftfeuchtigkeits-Werte meines HM-Wandthermostaten direkt mit im Log des HM-Heizkörperthermostaten.
Die IST-Temperatur ist ja schon direkt durch das Peering als IST-Temp des Thermostaten vorhanden.
So spare ich mir eine zusätzliche Logdatei und habe alle Parameter direkt im Plot des Thermostaten zur Verfügung.
Titel: Antw:eine plot-Grafik aus mehreren Logfiles?
Beitrag von: MarcoE am 16 Juni 2015, 12:52:04
Vielen Dank für die schnelle und kompetente Hilfe!
Ich habe es jetzt mit dem logproxy gelöst (fand ich die einfachste Variante).

Viele Grüße,
Marco
Titel: Antw:(gelöst)eine plot-Grafik aus mehreren Logfiles?
Beitrag von: x-sven am 30 April 2016, 13:31:43
"mit logproxy gelöst"

? und wie genau ?   :o
Titel: Antw:(gelöst)eine plot-Grafik aus mehreren Logfiles?
Beitrag von: MarcoE am 12 Mai 2016, 11:52:07
Hi,
ich habe ein logproxy definiert:
define lp logProxy
Dann im weblink diesen verwendet:
define weblink_Temps SVG lp:fht_temp:CURRENT

und im plot-file dann die entsprechenden Filelogs angesprochen:
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<L1>'
set ytics nomirror
set y2tics
set grid ytics

set y2label "Temperature in C"


#logProxy FileLog:FileLog_Kueche:4:Kueche.measured-temp
#logProxy FileLog:FileLog_Wohnzimmer:4:Wohnzimmer.measured-temp
#logProxy FileLog:FileLog_Schlafzimmer:4:Schlafzimmer.measured-temp
#logProxy FileLog:FileLog_Badezimmer:4:Badezimmer.measured-temp
#logProxy FileLog:FileLog_ArbeitsZi:4:ArbeitsZi.measured-temp
#logProxy FileLog:FileLog_Wetter_Bruchsal:4:Wetter_Bruchsal.temperature

plot "<IN>" using 1:2 axes x1y2 title 'Küche' ls l0 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'Wohnzimmer' ls l2 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'Schlafzimmer' ls l3 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'Badezimmer' ls l4 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'ArbeitsZi' ls l1 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'außen' ls l5 lw 1 with lines


Viele Grüsse,
Marco
Titel: Antw:(gelöst)eine plot-Grafik aus mehreren Logfiles?
Beitrag von: x-sven am 25 Mai 2016, 08:07:16
Hallo Marco,

danke für die Antwort (die habe ich heute erst gesehen). Das Beispiel zeigt gut wie Du es gelöst hast.

Ich würde gern die Logs (text) von mehreren Monaten zusammenfassen. Irgendwie hatte ich den Eindruck das könnte mit dem logproxy auch gehen. Dazu habe ich aber noch nichts konkretes gefunden. Ich müsste dem logproxy irgendwas anderes übergeben, als das aktuelle FileLog-device. Oder ich müsste devices für aktuelle und historische Daten erzeugen?
...Oder einfach auf dblog umstellen, aber den Schritt wollte ich erst machen, wenn ich weiß, das ich mit text-Dateien nicht weiter komme.

Vielleicht fällt noch jemandem was ein?

Viele Grüße
Sven