Hallo,
ich habe ein DBLog definiert in das auch brav die Daten geschrieben werden.
Einen Plot habe ich dank justme1968 ans laufen bekommen (den für den Speedtest).
Zitatdefine wl_speedtest weblink dbplot myDbLog:speedtest
Hier ist allerdings in speedtest.gplot
Zitat#DbLog speedtest:download::
#DbLog speedtest:upload::
#DbLog speedtest:ping::
angegeben.
Nun wollte ich einen weiteren Plot für einen S300TH anlegen - und hier scheitere ich.
Lt. commandref:
Zitatdefine MyPlot weblink dbplot <logdevice>:<gnuplot-file>
...
#DbLog
with: attr plotfunction "Garage_Raumtemp:temperature::"
instead of
#DbLog Garage_Raumtemp:temperature::
habe ich
Zitatdefine wl_Garage weblink dbplot myDbLog:Garage
attr wl_Garage plotfunction "Garage:temperature:humidity:"
angelegt was natürlich gleich mal mit einer Fehlermeldung angemerkt wurde das Garage.gplot nicht auffindbar ist.
Klar kann es ja nicht, ist ja ein temp4hum6 (lt. älterem Logfile).
Also hab ich das DEF des weblink abgeändert in
Zitatdbplot myDbLog:temp4hum6
Aber ich bekomme keine Werte angezeigt im Plot.
Und nun scheitere ich wieder mit meinen Englischkenntnissen.
Wäre bitte jemand so nett und könnte mir ein bischen auf die Sprünge helfen?
Grüße
der weblink:
define wl_Garage_Raumtemp weblink dbplot myDbLog:temphum
attr wl_Garage_Raumtemp plotfunction Garage_Raumtemp
attr Garage_Raumtemp label "Garage Min: $data{min1}, Max: $data{max1}, Aktuell: $data{currval1}"
und das plotfile (temphum.gplot):
set terminal png transparent truecolor rounded medium size <SIZE> enhanced
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 '<L1>'
set grid xtics y2tics
set y2label "°C"
set ylabel "%"
#DbLog <SPEC1>:temperature::
#DbLog <SPEC1>:humidity::
plot \
1:2 ls l0 axes x1y2 title 'Temperature (°C)' with lines
1:2 ls l2fill axes x1y1 title 'Humidity (%)' with lines
gruss
andre
Hallo,
danke andre (mal wieder).
d.h. ich muss jetzt für jede "Devicegruppe" (S300th ist ja dank dir schon aber FHT80b, FHTTK, FS20) die gplot-Dateien abändern und überall dann das #DBLog <SPEC1>:
eintragen.
Nach Möglichkeit dann auch einen NAmen geben der bei einem Update nicht überschrieben wird :-)
Und ich dachte das ginge lt. commandref mit dem
Zitatattr plotfunction "Garage_Raumtemp:temperature::"
Tja. Mein Englisch ist noch schlechter als ich dachte.
Dann werd ich mich morgen mal dran machen.
Danke nochmal.
Grüße
dieses eine plot file kannst du für alle devices verwenden die readings mit namen temperatur und humidity haben. die drei zeilen weblink definition kopieren, den wl_xxx namen ändern und in der mittleren zeile ganz hinten nur den device namen ändern. und vielleicht die überschift :)
gruss
andre
Hallo,
Tja, die Heizungsthermostate senden leider kein humidity ;-)
Ich hab dank deiner Hilfe bereits einen 2.ten S300TH erfolgreich zur Anzeige gebracht.
Bei den FS20-Geräten muss ich noch schauen wie ich das mit on/off und den Dimmstufen lösen kann.
Kann ich mit so einem Weblink auch sowas wie
Zeige mir einen Monatsplot (klar fixdrange month) und trage mir dort die jeweilige Tageshöchst- und -tiefstemperatur ein
lösen?
Was mir bereits klar geworden ist das ich nichtmehr, wie in den FileLog weblinks, zählen muss an welcher Stelle der gewünschte Wert steht.
Wenn sich jetzt noch das Beispiel mit den Tageshöchst und -tiefstwerten lösen lässt bin ich am überlegen wieder komplett auf weblinks zu wechseln.
Und meinen Zähler muss ich noch angehen - das mach ich aber dann morgen.
Grüße
bei dem beispiel ganz oben habe ich das label so definiert das der min und max wert des sichtbaren bereiches angezeigt wird.
wenn du attr WEB endPlotToday 1
setzt zeigt dir die default zoom stufe immer einen ganzen tag beginnend mit 0:00 uhr und im titel steht dann der min und max wert des tages.
gruss
andre
edit: ich hab eben erst das mit dem monatsplot gesehen: du definierst dir einfach ein average device für .*:temperature. damit werden automatisch zusätzliche tages und monats min, max und durchschnitts readings in jedem device angelegt. die kannst du ganz normal mit in die db loggen lassen und natürlich dann einen plot dafür definieren.
Hallo andre,
vielen dank für deine Antworten (und deine Hilfe).
Zitatdu definierst dir einfach ein average device für .*:temperature.
Das hatte ich für weblink Logfile schonmal so gemacht.
Dank des Charting-Frontend habe ich die AVG-Defines für die Temperaturen wieder löschen können da das Frontend die Daten aus
den bestehenden Daten extrahieren kann.
Da brauch ich keine extra Daten für die Sensoren in die DB schreiben lassen.
Aber das werd ich mir - zumindest für meine Stromzähler - nochmal durch den Kopf gehen lassen.
Eine kleine Frage zum Schluss noch:
Wenn ich DBLog in meiner fhem.cfg definiert habe kann ich doch auf die Logfiledefinitionen der Device verzichten, oder täusch ich mich da schonwieder?
Definiert habe ich DBLog so:
define myDbLog DbLog /opt/fhem/db.conf .*:.*
Nach meinen (mehr als bescheidenen) Englischkenntnissen sollten nun ja schon alle Werte die ein Sensor liefert in die DB wandern und ich könnte ja auf die <Device>-2013.log Dateien verzichten.
Das wäre ja dann doppelt gemoppelt - einmal Logfile und einmal DB.
Vielen Dank nochmal für deine Hilfe.
Grüße
wenn du alles in die db logst brauchst du natürlich keine logfiles mehr.
bei mir landet bis auf presence alles in einer db. presence nur deshalb nicht weil es mich nach einem monat nicht mehr interessiert und ich das bei filelog angeben kann. bei db log noch nicht.
gruss
andre
Hallo,
ich hab nun ein paar Dummys (ich weiß die magst du nicht so gerne @andre ;-) ).
Die besitzen als Reading state - ich hab nun versucht mit
Zitat#DbLog <SPEC1>:state::
einen Plot zu "bauen".
Leider wird mir nichts angezeigt.
Auch ein
Zitat#DbLog <SPEC1>:::
und
Zitat#DbLog <SPEC1>::
brachte nichts.
Als plotfunction habe ich RPi_DB_FS angegeben - in diesen Dummy werden die Werte geschrieben und per Charting-Frontend kann ich sie auch darstellen.
Hast du mir evtl. noch einen Tipp wie ich auf state im Reading zugreifen kann?
Danke schonmal (wieder)
Grüße
dblog und state bzw dummys vertragen sich nicht so gut. (einer der gründe warum ich die dummys nicht so mag :)
versuch es mal mit#DbLog <SPEC1>:data::
wenn das auch nicht geht schau mal hier:Link (http://forum.fhem.de/index.php?topic=12470.msg78936#msg78936). da hab ich kurz beschrieben wie man readingsSingleUpdate statt set verwenden kann. dann geht es mit dblog auf jeden fall. und damit kannst du dann auch mehr als ein reading in einem dummy unterbringen.
gruss
andre
Hallo,
Zitat#DbLog <SPEC1>:data::
das wars - danke dir.
Ich werd mir dennoch deinen Link unters Kopfkissen legen und mir readingsSingleUpdate mal anschauen.
Dann brauch ich evtl. keine 4 Dummys sondern leg das schön als Reading in einem Device ab.
Danke dir nochmal.
Grüße
P.S.: data, klar. Im Charting-Frontend greif ich ja auch auf data zu und nicht auf state.