plot / svg aus dblog

Begonnen von mbeckerkassel, 24 Februar 2014, 12:12:36

Vorheriges Thema - Nächstes Thema

mbeckerkassel

Hallo,

ich werde noch wahnsinnig.

Ich stelle gerade mein FHEM auf dblog um, da ich unmengen an Geräten habe. Jetzt möchte ich meine Graphen wieder haben und komme einfach nicht weiter.

mit schreibe ich alles in die Datenbank

config:
define logdb DbLog db.conf .*:.*

in der db steht dann:

+---------------------+-------------------+--------+--------+---------+-------+------+
| TIMESTAMP           | DEVICE            | TYPE   | EVENT  | READING | VALUE | UNIT |
+---------------------+-------------------+--------+--------+---------+-------+------+
| 2014-02-22 19:07:41 | Temperatur_Garten | CUL_TX | T: 3.0 | T       | 3.0   |      |
| 2014-02-22 19:09:43 | Temperatur_Garten | CUL_TX | T: 2.9 | T       | 2.9   |      |
| 2014-02-22 19:10:39 | Temperatur_Garten | CUL_TX | T: 3.0 | T       | 3.0   |      |
| 2014-02-22 19:11:48 | Temperatur_Garten | CUL_TX | T: 2.9 | T       | 2.9   |      |
| 2014-02-22 19:12:41 | Temperatur_Garten | CUL_TX | T: 2.9 | T       | 2.9   |      |
| 2014-02-22 19:15:46 | Temperatur_Garten | CUL_TX | T: 2.9 | T       | 2.9   |      |
| 2014-02-22 19:18:45 | Temperatur_Garten | CUL_TX | T: 2.8 | T       | 2.8   |      |
| 2014-02-22 19:19:47 | Temperatur_Garten | CUL_TX | T: 2.8 | T       | 2.8   |      |
| 2014-02-22 19:20:47 | Temperatur_Garten | CUL_TX | T: 2.8 | T       | 2.8   |      |
| 2014-02-22 19:23:48 | Temperatur_Garten | CUL_TX | T: 2.7 | T       | 2.7   |      |
| 2014-02-22 19:24:50 | Temperatur_Garten | CUL_TX | T: 2.7 | T       | 2.7   |      |
| 2014-02-22 19:25:50 | Temperatur_Garten | CUL_TX | T: 2.6 | T       | 2.6   |      |
| 2014-02-22 19:26:53 | Temperatur_Garten | CUL_TX | T: 2.7 | T       | 2.7   |      |
| 2014-02-22 19:27:51 | Temperatur_Garten | CUL_TX | T: 2.6 | T       | 2.6   |      |
| 2014-02-22 19:28:53 | Temperatur_Garten | CUL_TX | T: 2.7 | T       | 2.7   |      |
| 2014-02-22 19:29:55 | Temperatur_Garten | CUL_TX | T: 2.7 | T       | 2.7   |      |
| 2014-02-22 19:30:58 | Temperatur_Garten | CUL_TX | T: 2.6 | T       | 2.6   |      |
| 2014-02-22 19:31:58 | Temperatur_Garten | CUL_TX | T: 2.7 | T       | 2.7   |      |
| 2014-02-22 19:33:03 | Temperatur_Garten | CUL_TX | T: 2.7 | T       | 2.7   |      |
| 2014-02-22 19:35:02 | Temperatur_Garten | CUL_TX | T: 2.5 | T       | 2.5   |      |
+---------------------+-------------------+--------+--------+---------+-------+------+

mein SVG Plot steht so in der Config.

define AussenTempHum_current_day SVG logdb:temp4:CURRENT
attr AussenTempHum_current_day label "Temp- min: $data{min1}, max: $data{max1}, last: $data{currval1}, Feuchte- min: $data{min2}, max: $data{max2}, last: $data{currval2}"
attr AussenTempHum_current_day plotfunction Temperatur_Garten
attr AussenTempHum_current_day title "Aussen"

mit CURRENT und History hab ich schon gespielt. Ich bekomme immer einen leeren Plot

Was mache ich falsch?

Viele Grüße

Michael

betateilchen

1. In der Definition sollte :HISTORY stehen statt :CURRENT

2.
ZitatWas mache ich falsch?

grober Fehler: Du verheimlichst uns Deine temp4.gplot die entscheidend für das Plotten ist.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

mbeckerkassel

hier meine temp4.gplot

# Created by FHEM/98_SVG.pm, 2014-02-24 07:02:35
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
set y2tics
set grid y2tics
set ylabel ""
set y2label "Temperature in C"

#DbLog temperature

plot "<IN>" using 1:2 axes x1y2 title 'Measured temperature' ls l0 lw 2 with lines


auch wenn ich #DbLog temperature auskommentiere passiert nichts... :-(

betateilchen

kann auch nicht... falsche Syntax.

Du gibst weder den Device-Namen noch das Reading an, das verwendet werden soll.
Die beiden Namen brauchst Du doch nur aus Deinem Logging abzuschreiben:

#DbLog  Temperatur_Garten:T::
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

mbeckerkassel

super klasse.

funktioniert wie eine eins.


Wie kann ich die Felder

#DbLog Heizung_Flur:temperature::

Hier Heizung_Flur und temperature dynamisch übergeben um zu vermeiden das ich für jedes device einen eigenen plot brauche?

vg

michael

Tobias

Das Attribut PlotFunction ist dein Freund -> RTFM
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

betateilchen

Lesen bildet  8) commandref -> SVG -> plotfunction

plotfunction
Space value separated list of values. The value will be used to replace <SPEC#> type of strings in the .gplot file,
with # beginning at 1 (<SPEC1>, <SPEC2>, etc.) in the #FileLog or #DbLog directive.
With this attribute you can use the same .gplot file for multiple devices with the same logdevice.
Example:


(Tobias war schneller)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Puschel74

Hallo,

Das attr plotfunction hat der TE lt. ersten Beitrag auch gesetzt  ;)

@michael

So
#DbLog <SPEC1>:measured-temp::
#DbLog <SPEC1>:actuator::
#DbLog <SPEC1>:desired-temp::

in die gplot eingetragen genügt im Attribut plotfunction der Eintrag wie das Gerät in die DB loggt.

In meinem Beispiel werden die 3 Datensätze für jeden FHT geplottet.

Das wäre bei dir dann im Gplot-File
#DbLog <SPEC1>:temperature::
und im weblink für Heizung_Flur ein
attr <Name_des_weblink> plotfunktion Heizung_Flur

Analog dann für jedes weitere Gerät das als Reading temperature hat ein zugehöriges attr plotfunction im weblink setzen und fertig.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

betateilchen

Zitat von: Puschel74 am 24 Februar 2014, 16:41:21
Das attr plotfunction hat der TE lt. ersten Beitrag auch gesetzt  ;)

da hatte er auch noch eine völlig sinnlose gplot-Datei, die vermutlich aus FileLog-Zeiten stammte
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Puschel74

Hallo,

gplot hatte er erst im 3. Beitrag gezeigt - die aber zugegeben recht sinnbefreit war  ;D

Meine gplot-Dateien stammen auch noch alle aus der FileLog-Zeit - ich habe auch nur den Aufruf gegen #DBlog getauscht.
Gibt es da schon was passenderes?

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

betateilchen

nö, und da wird es vermutlich auch nix anderes geben, warum auch?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Puschel74

Hallo,

Zitatnö, und da wird es vermutlich auch nix anderes geben, warum auch?
Keine Ahnung - bin ich Developer so wie du  ;)

Hier mal beispielhaft eine gplot von mir die ich nur von #FileLog auf #DbLog geändert habe:
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>:measured-temp::
#DbLog <SPEC1>:actuator::
#DbLog <SPEC1>:desired-temp::

plot \
  1:2 ls l0 axes x1y2 title 'Temperature (°C)' with lines
  1:2 ls l2fill axes x1y1 title 'Actuator (%)' with lines
  1:2 ls l1 axes x1y2 title 'Temperature (°C)' with steps


Ich will jetzt niemanden "beschuldigen" aber ich meine das andre (justme) mal gepostet hat das teilweise Anweisungen in der Gplot veraltet sind und nichtmehr ausgewertet werden.
Ich muss den Beitrag mal suchen - ich vermute mal das meine beispielhaft gepostete Gplot-Datei ein schlechtes Beispiel ist für das was ich meine resp. für das was ich denke zu meinen.
Ich bin auch kein Developer, so wie du, und bin froh das ich FHEM und meine Geräte laufen lassen kann  ;D

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

betateilchen

Zitat von: Puschel74 am 24 Februar 2014, 20:53:00
Ich will jetzt niemanden "beschuldigen" aber ich meine das andre (justme) mal gepostet hat das teilweise Anweisungen in der Gplot veraltet sind und nichtmehr ausgewertet werden.

Da geht es nicht um die gplot Datei, sondern um die SVG Definition in Deinem fhem selbst. Dort sollte nicht mehr :CURRENT stehen, sondern :HISTORY.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Puschel74

Hallo,

ZitatDort sollte nicht mehr :CURRENT stehen, sondern :HISTORY.
Das habe ich schon längst erledigt aber danke für den Hinweis  ;D

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.