[gelöst]Filelog auf DBlog umstellen / Trend wird nicht angezeigt ...

Begonnen von ritchie, 17 Februar 2023, 17:36:25

Vorheriges Thema - Nächstes Thema

ritchie

Hallo Zusammen,
ich versuche jetzt schon seit längeren einen Trend von FileLog auf DBLog umzustellen.
Leider zeigt mir der Trend derzeit keine Daten an. Daher wollte ich Euch fragen, ob Ihr meinen
Fehler sieht:

Hier die Fhem Definition von dem DBlog und Filelog aus der FHEM.CFG

define plFileLog_MQTT2_Verbrauch SVG FileLog_MQTT2_Gas:SVG_FileLog_MQTT2_Gas_1.gplot:CURRENT
attr plFileLog_MQTT2_Verbrauch fixedrange 14days
attr plFileLog_MQTT2_Verbrauch endPlotToday 1
attr plFileLog_MQTT2_Verbrauch label "Tagesverbauch"
attr plFileLog_MQTT2_Verbrauch room Gaszaehler


define plDBLog_MQTT2_Verbrauch SVG DBLog_MQTT2_Gas:plDBLog_MQTT2_Verbrauch.gplot:HISTORY
attr plDBLog_MQTT2_Verbrauch fixedrange 14days
attr plDBLog_MQTT2_Verbrauch endPlotToday 1
attr plDBLog_MQTT2_Verbrauch label "Tagesverbauch"
attr plDBLog_MQTT2_Verbrauch room Gaszaehler


Hier die Definitionen der gplot Dateien
DBlog

# Created by FHEM/98_SVG.pm, 2023-02-17 17:04:34
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 'Gasverbrauch pro Tag'
set ytics
set y2tics
set grid ytics y2tics
set ylabel "m3"
set y2label "m3"
set yrange [0.000:15.000]
set y2range [0.000:15.000]

#DBLog_MQTT2_Gas MQTT2_Gas.value:delta-d:0

plot "<IN>" using 1:2 axes x1y2 title 'Gas' ls l1fill lw 1 with bars


FileLog

# Created by FHEM/98_SVG.pm, 2022-12-15 17:59:43
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 'Gasverbrauch pro Tag'
set ytics
set y2tics
set grid ytics
set ylabel "m³"
set y2label "m³"
set yrange [0.000:15.000]
set y2range [0.000:15.000]

#FileLog_MQTT2_Gas 4:MQTT2_Gas.*:value:delta-d

plot "<IN>" using 1:2 axes x1y2 title 'Gas' ls l1fill lw 1 with bars


Anbei noch ein paar Screen Shoots von den jeweiligen Bereich. Ebenso die aufgezeichneten Daten im SQL Server.
Dies ist mein erster Versuch die Daten von Filelog auf DBLog umzustellen. Irgendwie gelingt mir das nicht und
ich vermute einen generellen Fehler, den ich aber selber nicht mehr sehe.

Viele Grüße
R.


IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

betateilchen

#1
Zitat von: ritchie am 17 Februar 2023, 17:36:25
Hier die Fhem Definition von dem DBlog und Filelog aus der FHEM.CFG

Nein, das sind Definitionen von SVG, nicht von DbLog oder FileLog.

Zitat von: ritchie am 17 Februar 2023, 17:36:25

#DBLog_MQTT2_Gas MQTT2_Gas.value:delta-d:0

...
ich vermute einen generellen Fehler, den ich aber selber nicht mehr sehe.

Und ich vermute, da fehlt ein Doppelpunkt vor delta-d  :)


#DBLog_MQTT2_Gas MQTT2_Gas.value::delta-d:0


Ich bin mir aber auch nicht sicher, ob die von Dir verwendete Syntax überhaupt stimmt.
Da fehlt mir irgendwo die Trennung zwischen device und reading.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

ritchie

Hi,

habe ich ausprobiert, leider ohne Erfolg.
Habe die Zeile auch mal wie unter Filelog angepasst und den :: eingefügt.


#DBLog_MQTT2_Gas MQTT2_Gas.*:value::delta-d:0

und

#DBLog_MQTT2_Gas MQTT2_Gas.value::delta-d:0


beides hat nicht funktioniert  :(

Viele Grüße
R.
IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

betateilchen

In diese Zeile gehören keine regex.

Hast Du das gplot File manuell angelegt oder über "Create SVG plot" aus dem DbLog device?
Gibt es Fehlermeldungen im FHEM log?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

ritchie

Hi,

Manuell und es gibt keine Fehlermeldung im Logfile.

Viele Grüße
R.
IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

betateilchen

Dann lasse doch im ersten Schritt mal ein SVG von FHEM automatisch generieren.
Dann kannst Du sicher sein, dass das gplot file erstmal korrekt angelegt ist.

Im Nachgang kannst Du dann das delta-d ergänzen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

OdfFhem

Zitat von: ritchie am 17 Februar 2023, 18:23:45

#DBLog_MQTT2_Gas MQTT2_Gas.*:value::delta-d:0

und

#DBLog_MQTT2_Gas MQTT2_Gas.value::delta-d:0


gplot-Zeilen bzgl. DbLog sehen in etwa so aus

#DbLog <Device>:<Reading>:<Standardwert>::<Funktion oder perl-Ausdruck>

... der TYPE wird verwendet, nicht der NAME (DbLog statt DBLog)
... insgesamt 4 Doppelpunkte
... <Standardwert> kann auch leer sein

Könnte bei dir z.B. so aussehen:

#DbLog MQTT2_Gas:value:0::delta-d


betateilchen

#7
Zitat von: OdfFhem am 17 Februar 2023, 20:01:07
... der TYPE wird verwendet, nicht der NAME (DbLog statt DBLog)

VORSICHT mit solchen Behauptungen!

#fhemDbLog mqtt_tankstellen:raiffeisen_super::

Ist nämlich (auch) 100% korrekt.
Dabei ist fhemDbLog exakt der NAME des DbLog device, aus dem die Werte kommen sollen, und nicht sein TYPE!
Es ist durchaus legitim, mehrere DbLog Devices zu haben (genau wie bei FileLog auch) und aus verschiedenen devices die Werte für den Plot zu lesen.


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

OdfFhem

Zitat von: betateilchen am 17 Februar 2023, 20:24:57
Zitat... der TYPE wird verwendet, nicht der NAME (DbLog statt DBLog)

VORSICHT mit solchen Behauptungen!
Stimmt, aus dem Zusammenhang gerissen klingt die Aussage FALSCH oder HALBWAHR.
Wertet man die Aussage als Anmerkung zum angeführten "Beispiel", ist sie RICHTIG ... dort steht ja gut lesbar "DbLog" und das ist der TYPE.


Mit "DbLog" kommt man übrigens ziemlich weit; selbst wenn es beliebig viele DbLog-Devices gibt, man aber nur eins davon für die Darstellung benötigt.
Auf NAME zurückzugreifen wird erst dann "verpflichtend", wenn man in einer Darstellung verschiedene Log-Devices benötigt ...

betateilchen

Zitat von: OdfFhem am 18 Februar 2023, 08:37:09
dort steht ja gut lesbar "DbLog" und das ist der TYPE.

Nein.

Dort steht #DBLog_MQTT2_Gas und das dürfte mit ziemlicher Sicherheit ein NAME sein.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

OdfFhem

Zitat von: betateilchen am 18 Februar 2023, 08:58:23
Nein.

Dort steht #DBLog_MQTT2_Gas und das dürfte mit ziemlicher Sicherheit ein NAME sein.

Leicht irritiert sehe ich mein Beispiel, zu dem die Anmerkung gehört. Und das sieht so aus:

#DbLog <Device>:<Reading>:<Standardwert>::<Funktion oder perl-Ausdruck>


betateilchen

Deine Anmerkung, auf die sich meine Antwort bezog, war gestern:

Zitat von: OdfFhem am 17 Februar 2023, 20:01:07
gplot-Zeilen bzgl. DbLog sehen in etwa so aus

... der TYPE wird verwendet, nicht der NAME (DbLog statt DBLog)

DBLog kommt aber (so alleine stehend) in den Code-Zeilen des Fragestellers überhaupt nicht vor, sondern da steht immer DBLog_MQTT2_Gas, was völlig korrekt sein kann.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

ritchie

Hallo Zusammen,

nachdem ich den bestehenden Trend gelöscht und nochmals neu erstellen hab lassen (via create),
wurde jetzt ein Trend dargestellt.

Nur scheint die Delta Funktion nicht erkannt zu werden.
Es wird der aktuelle Wert im Trend angezeigt.

Die Zeile in der Datei sieht so aus.

#DBLog_MQTT2_Gas MQTT2_Gas:value:0::delta-d


Ich habe hierbei den Trend komplett über die Webseite konfiguiert und die Zeile nur aus der Datei ausgelesen und
nicht bearbeitet.

Anbei ein Bild der Trenddefinition:

Zu besseren Verdeutlichung habe ich den Bereich über den aktuellen Wert gesetzt.

Edit: In der Datenbank stehen auch min. zwei Werte für jeden Tag drin.

Viele Grüße
R.
IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv

betateilchen

#DBLog_MQTT2_Gas MQTT2_Gas:value:0::delta-d

Da steht aber das delta-d jetzt an der Stelle für eine regex, nicht für die function.

Probier mal:

#DBLog_MQTT2_Gas MQTT2_Gas:value:0:delta-d:
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

ritchie

#14
Hi,

bingo. Das wars.

Danke für die Hilfe.

Viele Grüße
R.
IPU662  Ipfire & Fhem (Homematic + MAX) - Produktiv
Cubietruck (1Wire - USB) - Produktiv