Hallo,
habe schon den Code aus dem Wiki versucht.
Datei max_temp.gplot hab ich angelegt und mit dem WIki COde gefüllt.
Der Code für die Fhem nach ändern des Gerätenamen funktioniert nicht kein Inhalt.
Suche da ein fertiges Beispiel mit allen Daten in einem Plot :)
Vielen Dank
meine MAXLAN.cfg für einen Wandthermostaten und 2 Heizkörperthermostaten, Daten werden in einem Plot angezeigt
#Wandthermostat Wohnzimmer
define wz_WandThermostat MAX WallMountedThermostat 03c09e
attr wz_WandThermostat room Wohnzimmer
#Fensterkontakt Wohnzimmer Balkontüre
define wz_Balkontuere MAX ShutterContact 02b8db
attr wz_Balkontuere room Wohnzimmer
#Heizkörperthermostat Wohnzimmer
define wz_HT_Wohnzimmer MAX HeatingThermostat 032eec
attr wz_HT_Wohnzimmer room Wohnzimmer
#Heizkörperthermostat Esszimmer
define wz_HT_Esszimmer MAX HeatingThermostat 032f3f
attr wz_HT_Esszimmer room Wohnzimmer
#Logfile Wohnzimmer
define wz_log FileLog ./log/wz-%Y.log wz_Wand.*:(desiredTemperatur|temperature).*|wz_HT.*:(valveposition).*
attr wz_log logtype text
attr wz_log room LOG
define wl_wz weblink fileplot wz_log:temp4MAX_WZ:CURRENT
attr wl_wz room Wohnzimmer
und die dazugehörige temp4MAX_wz.gplot <- Achtung, Name.
dieses Plot zeigt die Soll- und Isttemperatur des Wandthermostaten und die Ventilstellungen der beiden Heizkörperthermostaten
# Attribute 'small' is useful for gnuplot/-scroll only,
# if plotsize is less than 800,400
#set terminal png transparent small size <SIZE> crop
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 ytics nomirror
set y2tics
#set ytics
set title '<TL>'
set grid xtics y2tics
set y2label "Temperature in C"
set ylabel "Ventil Position (%)"
#set y2range [11:29]
set yrange [0:80]
#FileLog 4:desiredTemperature:4.5:
#FileLog 4:temperature:4.5:
#FileLog 4:wz_HT_Wohnzimmer:0:
#FileLog 4:wz_HT_Esszimmer:0:
plot \
"< awk 'desiredTemperature' <IN>",\
using 1:2 ls l2 axes x1y2 title 'Soll' with histeps
"< awk 'temperature' <IN>",\
using 1:2 ls l1fill axes x1y2 title 'Ist' with lines
"< awk 'wz_HT_Wohnzimmer' <IN>",\
using 1:2 ls l0 axes x1y1 title 'Ventil WZ (%)' with histeps
"< awk 'wz_HT_Esszimmer' <IN>",\
using 1:2 ls l3 axes x1y1 title 'Ventil EZ (%)' with histeps
Ich hoffe das hilft ein wenig
Wenn dir bisher das Wiki nicht geholfen hat, und du aber nun eine Lösung findest,
wäre ich dir sehr dankbar, wenn du das Wiki verbesserst.
So hilfst du allen, die nach dir die gleiche Frage haben.
hmmm bekomme das nicht umgebaut. Hier das Thermostat welches ich in einem Plot packen will. Dazu noch die Temperatur von meinem Raum Thermostat.
Packe es gerne ins WIki danach wenns läuft.
Folgends im Plot:
Ist(MAX) / Soll(MAX( / Ventilstand(MAX) / Temperatur(externes Thermometer)[/b]
Max:
#Bad
define MAX_Bad MAX HeatingThermostat 01090d
attr MAX_Bad event-on-change-reading .*
attr MAX_Bad fp_1.Etage 367,366,0,
attr MAX_Bad icon icoTemp
attr MAX_Bad room MAX,1.Etage
define FileLog_MAX_Bad FileLog ./log/MAX_Bad-%Y.log MAX_Bad
attr FileLog_MAX_Bad logtype text
attr FileLog_MAX_Bad room Logfiles
Ext. Thermostat:
efine Bad_Temp CUL_TX 125
attr Bad_Temp fp_1.Etage 413,290,4,Temperatur
attr Bad_Temp loglevel 6
attr Bad_Temp room Thermometer
define FileLog_Bad_Temp FileLog ./log/Bad_Temp-%Y.log Bad_Temp
attr FileLog_Bad_Temp logtype temp4hum4:Temp/Hum,text
attr FileLog_Bad_Temp room Logfiles
define weblink_Bad_Temp weblink fileplot FileLog_Bad_Temp:temp4hum4:CURRENT
attr weblink_Bad_Temp fp_1.Etage 511,193,0,Badezimmer
attr weblink_Bad_Temp label "Bad_Temp Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr weblink_Bad_Temp room Klima,1.Etage
OK, um 2 Geräte in einen Plot zu bekommen muss eine LOG-Datei mit den gewünschten Werten erzeugt werden. Ich habe z.B. alle Geräte im Wohnzimmer am Anfang mit wz_ gekennzeichnet und dann die einzelnen Werte der unterschiedlichen Geräte die ich haben will angegeben.
define wz_log FileLog ./log/wz-%Y.log wz_Wand.*:(desiredTemperatur|temperature).*|wz_HT.*:(valveposition).*
der Inhalt der LOG sieht dann so aus:
2013-01-17_17:06:16 wz_HT_Esszimmer valveposition: 31
2013-01-17_17:06:16 wz_HT_Wohnzimmer valveposition: 31
2013-01-17_17:06:16 wz_WandThermostat temperature: 22.2
2013-01-17_17:06:16 wz_WandThermostat desiredTemperature: 21.5
um das dann im plot richtig anzuzeigen habe ich eine eigene gplot Datei geschrieben
#FileLog 4:desiredTemperature:4.5:
#FileLog 4:temperature:4.5:
#FileLog 4:wz_HT_Wohnzimmer:0:
#FileLog 4:wz_HT_Esszimmer:0:
plot \
"< awk 'desiredTemperature' <IN>",\
using 1:2 ls l2 axes x1y2 title 'Soll' with histeps
"< awk 'temperature' <IN>",\
using 1:2 ls l1fill axes x1y2 title 'Ist' with lines
"< awk 'wz_HT_Wohnzimmer' <IN>",\
using 1:2 ls l0 axes x1y1 title 'Ventil WZ (%)' with histeps
"< awk 'wz_HT_Esszimmer' <IN>",\
using 1:2 ls l3 axes x1y1 title 'Ventil EZ (%)' with histeps
ich bin Neuling und benutze FHEM erst seit ein paar Wochen, ob das so sauber ist kann ich nicht sagen aber bei mir tut´s.
Schönes Plot hab es nun hin bekommen. Jedoch suche ich noch eine Möglichkeit meine 2. Temperatur dort rein zu bekommen.
Beides heißt im log:
Externes Thermometer:
2013-01-17_20:52:46 Bad_Temp temperature: 21.9
Temperatur von Max:
013-01-17_20:59:03 MAX_Bad temperature: 23.3
Mein Plot:
# Attribute 'small' is useful for gnuplot/-scroll only,
# if plotsize is less than 800,400
#set terminal png transparent small size <SIZE> crop
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 ytics nomirror
set y2tics
#set ytics
set title '<TL>'
set grid xtics y2tics
set y2label "Temperature in C"
set ylabel "Ventil Position (%)"
#set y2range [11:29]
set yrange [0:80]
#FileLog 4:desiredTemperature:4.5:
#FileLog 4:temperature:4.5:
#FileLog 4:wz_HT_Wohnzimmer:0:
#FileLog 4:wz_HT_Esszimmer:0:
plot \
"< awk 'desiredTemperature' <IN>",\
using 1:2 ls l2 axes x1y2 title 'Soll' with histeps
"< awk 'temperature' <IN>",\
using 1:2 ls l1fill axes x1y2 title 'Ist' with lines
"< awk 'valveposition' <IN>",\
using 1:2 ls l0 axes x1y1 title 'Ventil (%)' with histeps
Welche Temperatur nimmt er den jetzt von da ??? kann ich das awk 'temperature' in awk 'Bad_Temp temperature' ändern ??
"< awk 'temperature' <IN>",\
using 1:2 ls l1fill axes x1y2 title 'Ist' with lines
es werden beide temperaturen genommen, am besten nur eine temperatur ins LOG schreiben
hmm sicher das bei dir Ventil Funktioniert ??
plot \
"< awk 'desiredTemperature' <IN>",\
using 1:2 ls l2 axes x1y2 title 'Soll' with histeps
"< awk 'temperature' <IN>",\
using 1:2 ls l1fill axes x1y2 title 'Ist' with lines
"< awk 'valveposition' <IN>",\
using 1:2 ls l0 axes x1y1 title 'Ventil (%)' with histeps
Im Log steht es so:
2013-01-17_22:07:14 MAX_Bad valveposition: 100
Der Rote Strick hängt aber durchgehen bei 0 ;(
Da ist was Faul
(siehe Anhang / see attachement)
(siehe Anhang / see attachement)
Hmm also da stimmt glaube ich noch mehr nicht, Er wertet das auto / eco wohl auch mit aus. Und die Temperatur scheint dauerhaft gleich zu sein Okay mal 21,5 mal 22,9 da kann man natürlich wenig erkennen.
Ventilstände sind aber durchgehend 0 ...
Code zum Log zusammenstellen :
define FileLog_Max_Bad_Temp FileLog ./log/Max_Bad_Temp-%Y.log Max_Bad_Temp|MAX_Bad.*:(desiredTemperatur|valveposition).*|Bad_Temp.*:(temperature).*
attr FileLog_Max_Bad_Temp logtype text
attr FileLog_Max_Bad_Temp room Logfiles
Das Log hat meine Inhalte die ich will:
2013-01-18_07:49:20 Bad_Temp temperature: 22.9
2013-01-18_07:50:20 Bad_Temp temperature: 22.9
2013-01-18_07:51:11 MAX_Bad desiredTemperature auto
2013-01-18_07:51:19 MAX_Bad desiredTemperature auto
2013-01-18_07:51:27 Bad_Temp temperature: 22.8
2013-01-18_07:52:15 MAX_Bad desiredTemperature eco
2013-01-18_07:52:20 MAX_Bad desiredTemperature: 17.0
2013-01-18_07:52:28 MAX_Bad desiredTemperature eco
2013-01-18_07:53:17 Bad_Temp temperature: 22.8
2013-01-18_07:54:16 Bad_Temp temperature: 22.8
2013-01-18_07:55:17 Bad_Temp temperature: 22.8
2013-01-18_07:56:12 MAX_Bad valveposition: 17
2013-01-18_07:56:18 Bad_Temp temperature: 22.8
2013-01-18_07:57:19 Bad_Temp temperature: 22.8
Damit lasse ich den Plot generieren:
define wl_max_bad weblink fileplot FileLog_Max_Bad_Temp:temp4MAX_bad:CURRENT
attr wl_max_bad room MAX
Plot:
# Attribute 'small' is useful for gnuplot/-scroll only,
# if plotsize is less than 800,400
#set terminal png transparent small size <SIZE> crop
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 ytics nomirror
set y2tics
#set ytics
set title '<TL>'
set grid xtics y2tics
set y2label "Temperature in C"
set ylabel "Ventil Position (%)"
#set y2range [11:29]
set yrange [0:80]
#FileLog 4:desiredTemperature:4.5:
#FileLog 4:temperature:4.5:
#FileLog 4:wz_HT_Wohnzimmer:0:
#FileLog 4:wz_HT_Esszimmer:0:
plot \
"< awk 'desiredTemperature' <IN>",\
using 1:2 ls l2 axes x1y2 title 'Soll' with histeps
"< awk 'temperature' <IN>",\
using 1:2 ls l1fill axes x1y2 title 'Ist' with lines
"< awk 'valveposition' <IN>",\
using 1:2 ls l0 axes x1y1 title 'Ventil (%)' with histeps
Aha das # ist in der Plot datei kein Kommentar :D
Jetz gehts:
plot \
"< awk 'desiredTemperature' <IN>",\
using 1:2 ls l2 axes x1y2 title 'Soll' with histeps
"< awk 'temperature' <IN>",\
using 1:2 ls l1fill axes x1y2 title 'Ist' with lines
"< awk 'valveposition' <IN>",\
using 1:2 ls l3 axes x1y1 title 'Ventil (%)' with histeps
hier sitzt der Fehler:
das ändern
#FileLog 4:desiredTemperature:4.5:
#FileLog 4:temperature:4.5:
#FileLog 4:wz_HT_Wohnzimmer:0:
#FileLog 4:wz_HT_Esszimmer:0:
so sollte es gehen
#FileLog 4:desiredTemperature:4.5:
#FileLog 4:temperature:4.5:
#FileLog 4:valveposition:0:
die # ist im gplot kein Kommentar, da bin ich am Anfang auch drüber gestolpert
wieso bei dir auto und eco im LOG steht versteh ich nicht, bei mir ist das nicht so
vielleicht hilft das:
define FileLog_Max_Bad_Temp FileLog ./log/Max_Bad_Temp-%Y.log Max_Bad_Temp|MAX_Bad.*:(desiredTemperature|valveposition).*|Bad_Temp.*:(temperature).*
ich war zu langsam ;-)