Autor Thema: [geklärt] SVG+DBLog: plotReplace kann plotfunction nicht ersetzen  (Gelesen 2559 mal)

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 9259
  • eigentlich eher "user" wie "developer"
Hallo Rudi,

lt. commandref soll plotReplace plotfunction ersetzen. Leider funktioniert das nicht wie gewünscht, was auch immer man angibt, das abzufragende Device wird nicht in die DBLog-Abfrage übernommen, an anderen Stellen klappt das ohne weiteres.

Das Verhalten ist auch unabhängig davon, welche Variablennamen man im gplot-file angibt, ich habe u.A. "Device" versucht (im gplot-File sowohl als Ersatz für TL wie für SPEC1). Im Titel erscheint dann die Angabe des Device-Namens, in der DB-Abfrage (bei "show proprocessed ...") nicht, da ist an der betreffenden Stelle schlicht nichts (die abzufragenden Readings sind aber dann da).

Das Spiel kann man mit beliebigen Plots wiederholen.

Bitte um Rückmeldung, wenn mehr Details erforderlich wären.

Gruß, Beta-User
« Letzte Änderung: 03 November 2019, 13:54:00 von Beta-User »
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | BT@OpenMQTTGateway
svn:MySensors, WeekdayTimer, RandomTimer, AttrTemplate => {mqtt2, mysensors, httpmod}

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 21660
Antw:SVG+DBLog: plotReplace kann plotfunction nicht ersetzen
« Antwort #1 am: 01 November 2019, 10:12:59 »
Zitat
Bitte um Rückmeldung, wenn mehr Details erforderlich wären.
Klar, etwas zum Nachstellen, oder wenigstens der Inhalt der .gplot Datei und Raw-Def der SVG.
Das Feature funktioniert prinzipiell, die Meldung "bei mir nicht" reicht nicht immer fuers erfolgreiche Raten.

Zitat
in der DB-Abfrage (bei "show proprocessed ...") nicht,
Vielleicht funktioniert Raten doch: Zitat Commandref:
Zitat
Bei %Name% erfolgt die Ersetzung vor der Datenauswertung, das kann man verwenden, um Parameter für die Auswertung zu ersetzen.

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 9259
  • eigentlich eher "user" wie "developer"
Antw:SVG+DBLog: plotReplace kann plotfunction nicht ersetzen
« Antwort #2 am: 01 November 2019, 12:32:24 »
Genau, es geht darum, Variablen vor der Auswertung zu ersetzen...
Das funktioniert leider nur in Teilen (nämlich hier mit "L1"), zum Nachstellen mal SYSMON-Daten usw.:

Datenlieferndes Device:
defmod Serverdaten SYSMON
attr Serverdaten DbLogInclude (cpu_freq|cpu0_temp|loadavg|cpu0_temp_avg):300,(ram|root|(fhem)?uptime):3600
attr Serverdaten room Steuerung->Allgemein
attr Serverdaten stateFormat Freq: cpu_freq MHz, Temp: cpu0_temp°C

setstate Serverdaten Freq: 798 MHz, Temp: 49.00°C
setstate Serverdaten 2019-11-01 12:16:23 cpu0_freq 798
setstate Serverdaten 2019-11-01 12:16:23 cpu0_freq_stat 787.00 1646.00 799.20
setstate Serverdaten 2019-11-01 12:16:23 cpu0_idle_stat 4.45 95.88 94.22
setstate Serverdaten 2019-11-01 12:16:23 cpu0_temp 49.00
setstate Serverdaten 2019-11-01 12:16:23 cpu0_temp_avg 49.1
setstate Serverdaten 2019-11-01 12:16:23 cpu0_temp_stat 47.62 58.50 49.09
[...]

gplot-file:
# SYSMON
#
# Anzeige verschiedener Statistiken aus SYSMON (DbLog)
#

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 grid ytics y2tics
set ylabel "Frequenz"
set y2label "Last + Temperatur"

#LogDB <SPEC1>:cpu0_temp:::
#LogDB <SPEC1>:cpu0_temp_avg:::
#LogDB <SPEC1>:cpu_freq:::
#LogDB <SPEC1>:loadavg:::$val=~s/([\d.]*).[\d.]*.[\d.]*/$1/eg
#LogDB <SPEC1>:loadavg:::$val=~s/[\d.]*.([\d.]*).[\d.]*/$1/eg
#LogDB <SPEC1>:loadavg:::$val=~s/[\d.]*.[\d.]*.([\d.]*)/$1/eg

plot \
   "<IN>" using 1:2 ls l0 axes x1y2 title 'Temp' lw 1 with lines \
   "<IN>" using 1:2 ls l1 axes x1y2 title 'Temp (avg)' lw 2 with lines \
   "<IN>" using 1:2 ls l2 axes x1y1 title 'MHz' lw 1 with lines \
   "< awk '/load avg:/ {print $1, $4}' <IN>" \
     using 1:2 ls l3 axes x1y2 title 'load 1 Min' lw 2 with lines \
   "< awk '/load avg5:/ {print $1, $4}' <IN>" \
     using 1:2 ls l4 axes x1y2 title 'load 5 Min' lw 1 with lines \
   "< awk '/load avg15:/ {print $1, $4}' <IN>" \
     using 1:2 ls l5 axes x1y2 title 'load 15 Min' lw 2 with lines
SVG-Definition:
defmod Serverstatus SVG LogDB:Serverstatus:HISTORY
attr Serverstatus plotReplace SPEC1=Serverdaten L1=Serverstatus
attr Serverstatus plotfunction Serverdaten
liefert als Antwort auf "Show proprocessed ...":
get LogDB HISTORY INT 2019-11-01_00:00:00 2019-11-01_23:59:59 Serverdaten:cpu0_temp::: Serverdaten:cpu0_temp_avg::: Serverdaten:cpu_freq::: Serverdaten:loadavg:::$val=~s/([\d.]*).[\d.]*.[\d.]*/$1/eg Serverdaten:loadavg:::$val=~s/[\d.]*.([\d.]*).[\d.]*/$1/eg Serverdaten:loadavg:::$val=~s/[\d.]*.[\d.]*.([\d.]*)/$1/eg
Löscht man das Attribut "plotfunction" (Merke: SPEC1 sollte nach meinem Verständnis weiter über plotReplace aufgelöst werden), erhält man nur noch:
get LogDB HISTORY INT 2019-11-01_00:00:00 2019-11-01_23:59:59 :cpu0_temp::: :cpu0_temp_avg::: :cpu_freq::: :loadavg:::$val=~s/([\d.]*).[\d.]*.[\d.]*/$1/eg :loadavg:::$val=~s/[\d.]*.([\d.]*).[\d.]*/$1/eg :loadavg:::$val=~s/[\d.]*.[\d.]*.([\d.]*)/$1/egEntsprechend sind auch in der Auswahl der Felder des plot-Editors die Vorgaben alle leer.

Das DBLog-Device heißt hier LogDB, es steckt eine (auf demselben Server laufende) MariaDB dahinter, das ganze auf Debian 10.1@x86, Perl 5.28.1.

Hoffe, das reicht zum Nachstellen?
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | BT@OpenMQTTGateway
svn:MySensors, WeekdayTimer, RandomTimer, AttrTemplate => {mqtt2, mysensors, httpmod}

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 21660
Antw:SVG+DBLog: plotReplace kann plotfunction nicht ersetzen
« Antwort #3 am: 01 November 2019, 14:22:42 »
Zitat
Hoffe, das reicht zum Nachstellen?
Ja, zeigt, dass ich vorhin richtig geraten habe :)

Man muss in der .gplot Datei <SPEC1> durch %SPEC1% ersetzen, wenn die Ersetzung _vor_ dem FileLog/DBLog get stattfinden soll.
<SPEC1> wird _nach_ dem get ersetzt, damit man in der Titelzeile Minimum/Maximum/etc verwenden kann.

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 9259
  • eigentlich eher "user" wie "developer"
Antw:[geklärt] SVG+DBLog: plotReplace kann plotfunction nicht ersetzen
« Antwort #4 am: 03 November 2019, 14:06:51 »
Gut geraten, sorry für den Aufwand...

Irgendwie irritiert es mich, dass ich scheinbar der einzige bin, der den Text in der commandref nicht kapiert hat. Vorher nicht, und selbst nach dem Schubser fand/finde ich den Text nicht selbsterklärend. Der Zusammenhang mit der .gplot und den "%" ist weder im deutschen noch im englischen Text ganz eindeutig und im deutschen auch noch mit einem Absatz logisch abgekoppelt (nach meinem persönlichen Empfinden).

Eventuell hätte ich das so besser verstanden:
Zitat
In the .gplot file <key> and %key% will be replaced with the corresponding value. The evaluation of <key> and {} takes place after the input file is processed, so $data{min1} etc can be used. %key% will be repaced before the input file is processed, this expression can be used to replace parameters for the input processing.
Oder wenn eines der .gplot-Beispiele die Schreibweise %SPEC1% enthalten hätte (ich habe aber nur ein paar durchgesehen, u.a. auch die Sysmon-.gplots, oder die Suche hier (nach plotReplace) was ergeben.

Na ja, jetzt ist mir jedenfalls klar, wie es geht ;D .
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | BT@OpenMQTTGateway
svn:MySensors, WeekdayTimer, RandomTimer, AttrTemplate => {mqtt2, mysensors, httpmod}

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 21660
Antw:[geklärt] SVG+DBLog: plotReplace kann plotfunction nicht ersetzen
« Antwort #5 am: 03 November 2019, 21:00:28 »
Habe deine Forumlierung in die Doku uebernommen.

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 9259
  • eigentlich eher "user" wie "developer"
Antw:[geklärt] SVG+DBLog: plotReplace kann plotfunction nicht ersetzen
« Antwort #6 am: 04 November 2019, 17:48:15 »
Thx.

Weiß nicht, ob es Sinn macht, die vorhandenen gplot-Definitionen mal diesbezüglich durchzusehen (v.a. die SM_DB-Beispiele) und/oder weitere gplot-Beispiele einzufügen.

Hier jedenfalls mal mein aktualisierter .gplot für RT-DN mit zusätzlicher (optionaler) Anzeige der Außentemperatur:# Created by FHEM/98_SVG.pm, 2019-11-03 15:07:40
# to replace variables, use plotReplace like
# attr SVG_Thermostat plotReplace SPEC1=Thermostat TL="My example thermostat" EXTERNALTEMPDEVICE=MYSENSOR_97 EXTERNALTEMPREADING=temperature2

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 '<TL>'
set ytics
set y2tics
set grid
set ylabel "Valve"
set y2label "Temperature"
set yrange [-10:110]

#LogDB %SPEC1%:desired-temp::
#LogDB %SPEC1%:measured-temp:0:
#LogDB %EXTERNALTEMPDEVICE%:%EXTERNALTEMPREADING%::
#LogDB %SPEC1%:actuator:0:int

plot "<IN>" using 1:2 axes x1y2 title 'Desired' ls l0 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'Measured' ls l1 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'Outside' ls l2 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 title 'Valve' ls l3 lw 1 with histeps
Wäre der "Konkurrent" für das hm-rt-gplot-file...
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | BT@OpenMQTTGateway
svn:MySensors, WeekdayTimer, RandomTimer, AttrTemplate => {mqtt2, mysensors, httpmod}

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 9259
  • eigentlich eher "user" wie "developer"
Antw:[geklärt] SVG+DBLog: plotReplace kann plotfunction nicht ersetzen
« Antwort #7 am: 10 Januar 2020, 22:11:39 »
Nachtrag:

Hier mal eine "generalisierter plotReplace"-gplot-File samt screeenshot dazu, zeigt die RT-DN-Daten (measured, desired und valve) an sowie Temp und Hum von je einem beliebigen Sensor und zwei Fenster.

Könnte man evtl. noch optimieren, wenn man die Fenster irgendwie in den (dreidimensionalen) Hintergrund bringen könnte und dasselbe mit den externen Sensoren macht, aber dazu hätte ich dann zu lange irgendwelche schwer auffindbaren Handbücher konsultieren müssen...

# Created by FHEM/98_SVG.pm, 2020-01-06
# to replace variables, use plotReplace like
# attr SVG_Thermostat plotReplace SPEC1=Thermostat TL="My example thermostat" EXTERNALTEMPDEVICE=MYSENSOR_97 EXTERNALTEMPREADING=temperature2 \
# ROOMHUMIDITYDEVICE=HUEDevice3 EXTERNALHUMIDITYREADING=humidity ROOMTEMPDEVICE=HUEDevice4 ROOMTEMPREADING=temperature WINDOW1=Window1_MyRoom WINDOW2=Window2_MyRoom

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 '<TL>'
set ytics
set y2tics
set grid
set ylabel "Valve/Window"
set y2label "Temperature"
set yrange [-5:105]
set y2range [-15:35]
set isosample 20

#LogDB %SPEC1%:desired-temp::
#LogDB %SPEC1%:measured-temp:0:
#LogDB %EXTERNALTEMPDEVICE%:%EXTERNALTEMPREADING%::
#LogDB %SPEC1%:actuator:0:int
#LogDB %ROOMHUMIDITYDEVICE%:%EXTERNALHUMIDITYREADING%:0:
#LogDB %ROOMTEMPDEVICE%:%ROOMTEMPREADING%:0:
#LogDB %WINDOW1%:state:::$val=~s/(open|closed|tilted)(\d*).*/$1eq"open"?60:$1eq"tilted"?45:0/eg
#LogDB %WINDOW2%:state:::$val=~s/(open|closed|tilted)(\d*).*/$1eq"open"?60:$1eq"tilted"?45:0/eg


plot "<IN>" using 1:2 axes x1y2 title 'Desired' ls l0 lw 1 with lines,\
     "<IN>" using 2:2 axes x1y2 title 'Measured actuator' ls l7 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'Aussen' ls l1 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 y2title 'Valve' ls l5 lw 1 with steps,\
     "<IN>" using 1:2 axes x1y1 title 'Humidity' ls l2 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'Measured roomsensor' ls l3 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 y2title '%WINDOW1%' ls l4fill lw 0.5 with steps,\
     "<IN>" using 1:2 axes x1y1 y2title '%WINDOW2%' ls l5fill lw 0.5 with steps
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | BT@OpenMQTTGateway
svn:MySensors, WeekdayTimer, RandomTimer, AttrTemplate => {mqtt2, mysensors, httpmod}

Offline OdfFhem

  • Sr. Member
  • ****
  • Beiträge: 565
Antw:[geklärt] SVG+DBLog: plotReplace kann plotfunction nicht ersetzen
« Antwort #8 am: 19 Januar 2020, 10:14:04 »
Wenn Beta-User ein neues Thema aufmacht, lohnt es nicht selten mitzulesen; so auch hier. Die Anregungen zur Vereinheitlichung von gplot-Dateien "nötigten" mich dazu, das Attribut plotReplace noch ein wenig umfangreicher einzusetzen. Die %%-Theorie war neu für mich, die <>-Theorie wurde eigentlich schon flächendeckend eingesetzt. Im Endeffekt ist die Zahl der gplot-Dateien nun drastisch zurückgegangen - sehr schön.


ABER ich habe auch noch einen kleinen Dorn im Auge, der vielleicht entfernt werden könnte ...


Momentan habe ich in etlichen plotReplace-Attributen u.a. folgenden Platzhalter definiert:
V1={"Min $data{min1}, Max $data{max1}, Last $data{currval1}"}
In der gplot-Datei steht das passende Gegenstück:
set title 'Steckdose (<Alias>) --- Power (W):<V1>'
Funktioniert wie erwartet und die Darstellung stimmt - also erstmal kein Problem.

Bei der Definition des Platzhalters fällt aber auf, dass dort eigentlich keine gerätespezifische Komponente enthalten ist. Bedeutet indirekt, dass in jedem plotReplace eine eigentlich überflussige Platzhalter-Definition enthalten ist.


Jetzt kann es natürlich sein, dass es dafür schon eine - vielleicht sogar naheliegende - Lösung gibt; gefunden habe ich aber bislang keine.


Daher hatte ich einfach mal die Platzhalter-Definition ignoriert und folgende Varianten in der gplot-Datei ausprobiert:

#set title 'Steckdose (<Alias>) --- Power (W):{"Min $data{min1}, Max $data{max1}, Last $data{currval1}"}'
Da hatte ich sowieso nicht viel Hoffnung und so war es dann auch - es findet keine Auswertung statt.

set title {'Steckdose (<Alias>) --- Power (W):Min $data{min1}, Max $data{max1}, Last $data{currval1}'}
Hier war ich ja schon fast euphorisch und dachte, dass könnte/müsste doch eigentlich klappen, tat es dann aber doch nicht.


Jetzt stellt sich mir die Frage, ob man nicht folgende Theorie umsetzen könnte:
1) %%-Platzhalter werden vor der Extraktion ersetzt - nichts Neues, erfordert also keine Moduländerung
2) <>-Platzhalter werden nach der Extraktion ersetzt - nichts Neues, erfordert also keine Moduländerung
3) Ein sich ergebender Wert, der nach all den vorangehenden Ersetzungen vollständig von {} umschlossen wird, wird abschließend noch als Perl-Ausdruck ausgewertet.

Inhalt der gplot-Datei:
set title {'Steckdose (<Alias>) --- Power (W):Min $data{min1}, Max $data{max1}, Last $data{currval1}'}
Ersetzung der %%-Platzhalter im ersten Schritt sorgt für keine Veränderung. Deren Verwendung macht in diesem Fall eigentlich auch keinen Sinn, denn entweder enthält eine gplot-Zeile nur %%- oder nur <>-Platzhalter.
Ersetzung der <>-Platzhalter im zweiten Schritt hingegen sorgt für folgende Veränderung:
set title {'Steckdose (IrgendeinAliasWert) --- Power (W):Min $data{min1}, Max $data{max1}, Last $data{currval1}'}
Der Wert ist nun vollständig ersetzt, wird aber noch von {} umschlossen. Also würde dieser Wert abschließend noch als perl-Ausdruck ausgewertet. Es ergibt sich beispielhaft:
set title {'Steckdose (<Alias>) --- Power (W):Min 000000, Max 999999, Last 123456'}


Bleibt also die Frage, ist die Idee umsetzbar (oder gibt es vielleicht schon eine Lösung für das geschilderte "Problem")?

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 9259
  • eigentlich eher "user" wie "developer"
Antw:[geklärt] SVG+DBLog: plotReplace kann plotfunction nicht ersetzen
« Antwort #9 am: 19 Januar 2020, 10:32:10 »
Vorab mal Danke für die Rückmeldung :) !

Ich habe das jetzt nicht im Detail nachvollzogen (das mit dem Perl in plotReplace war mir bisher entgangen), aber eine Idee... Kann es sein, dass die einfachen Quotes mit das Problem sind?

Als kurzen Test:
set title {"Steckdose (<Alias>) --- Power (W):Min $data{min1}, Max $data{max1}, Last $data{currval1}"}
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | BT@OpenMQTTGateway
svn:MySensors, WeekdayTimer, RandomTimer, AttrTemplate => {mqtt2, mysensors, httpmod}

Offline OdfFhem

  • Sr. Member
  • ****
  • Beiträge: 565
Antw:[geklärt] SVG+DBLog: plotReplace kann plotfunction nicht ersetzen
« Antwort #10 am: 19 Januar 2020, 10:41:41 »
Guter Hinweis, aber ...

Bei den einfachen steht nachher als Titel
{Steckdose (Lichterbogen) --- Power (W):Min $data{min1}, Max $data{max1}, Last $data{currval1}}

Bei den doppelten steht nachher als Titel
{"Steckdose (Lichterbogen) --- Power (W):Min $data{min1}, Max $data{max1}, Last $data{currval1}"}

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 21660
Antw:[geklärt] SVG+DBLog: plotReplace kann plotfunction nicht ersetzen
« Antwort #11 am: 19 Januar 2020, 12:17:36 »
Ich verstehe das Problem, bin aber z.Zt noch nicht geneigt (angesichts der Schwere der Nachteile), den Code zu erweitern. :)

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 9259
  • eigentlich eher "user" wie "developer"
Antw:[geklärt] SVG+DBLog: plotReplace kann plotfunction nicht ersetzen
« Antwort #12 am: 19 Januar 2020, 14:28:17 »
@OdfFhem:
Ist das ein filelog-plot?

Es würde evtl. Sinn machen, den/die Wiki-Artikel noch etwas aufzubohren. Hab's nur kurz überflogen, aber insbesondere https://wiki.fhem.de/wiki/SVG ist ziemlich "dürr", vielleicht könnten wir das mit einigen wenigen Beispielen etwas "aufhübschen". Dann würden andere, die sowas interessiert nicht so ganz im Dunkeln tappen, wenn die nicht zufällig hier mitlesen...?
(Aber mit DBLog-Beispielen finde ich das nur begrenzt tauglich...).
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | BT@OpenMQTTGateway
svn:MySensors, WeekdayTimer, RandomTimer, AttrTemplate => {mqtt2, mysensors, httpmod}

Offline OdfFhem

  • Sr. Member
  • ****
  • Beiträge: 565
Antw:[geklärt] SVG+DBLog: plotReplace kann plotfunction nicht ersetzen
« Antwort #13 am: 19 Januar 2020, 15:10:38 »
@Beta-User

Ja, sind reine FileLog-Fälle ... eigentlich ideal fürs Wiki ...


@rudolfkoenig
Ich bin zumindest ein wenig verwirrt, denn ich hatte hier eigentlich gar keine Nachteile erwartet; es ist ja eigentlich "nur" ein zusätzlicher Schritt beim <>-Ersetzen. Ohne dass ich die Beurteilung der Lage anzweifle, würde es mich doch mal interessieren, welche schweren Nachteile dabei entstehen könnten?

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 21660
Antw:[geklärt] SVG+DBLog: plotReplace kann plotfunction nicht ersetzen
« Antwort #14 am: 19 Januar 2020, 16:22:03 »
Noch mehr Code, Dokumentation, Test, Support.
Es waere vmtl. von allem nicht uebertrieben viel, aber mit plotReplace gibt es bereits eine Loesung.

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 9259
  • eigentlich eher "user" wie "developer"
Antw:[geklärt] SVG+DBLog: plotReplace kann plotfunction nicht ersetzen
« Antwort #15 am: 20 Januar 2020, 13:32:00 »
@Beta-User

Ja, sind reine FileLog-Fälle ... eigentlich ideal fürs Wiki ...
Du hast doch einen Wiki-Zugang, oder?

Kannst du mal ein oder zwei Beispiele direkt da reinpacken? Ich habe vorhin meinen "Multi"-Sensor-DBLog-Code von hier samt dem Screenshot bei Beispiele eingepflegt. Ist zwar bei weitem noch nicht perfekt, aber mMn. besser als das bisherige "nichts". Muß auch erst mal nicht groß aufgehübscht sein, sofern sinnvoll wäre evtl. eine kurze Erläuterung hilfreich, an einer zusammenhängerenden Darstellung versuche ich mich ggf. dann mal später, falls sich nicht jemand anderes findet (ggf. auch einfach im Wiki-Bereich einen neuen Thread starten, vielleicht hat noch jemand Interesse und bessere Kenntnisse der gnuplot-syntax... ;) ).

Überhaupt, gnuplot-syntax: Wäre schön, wenn jemand zu "meinem Thema" mit dem RT-DN-Plot mit Fenstern noch Input hätte zur Frage, wie man das ggf. mehrdimensional aufhübschen könnte, aber wenn da nichts kommt, checke ich das ggf. auch mal selbst "as is" ins svn ein.
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | BT@OpenMQTTGateway
svn:MySensors, WeekdayTimer, RandomTimer, AttrTemplate => {mqtt2, mysensors, httpmod}

Offline OdfFhem

  • Sr. Member
  • ****
  • Beiträge: 565
Antw:[geklärt] SVG+DBLog: plotReplace kann plotfunction nicht ersetzen
« Antwort #16 am: 22 Januar 2020, 08:16:26 »
@Beta-User

Ich habe soeben im Wiki das Beispiel "Leistungsdaten einer Steckdose (FileLog)" hinzugefügt.

Leider konnte ich kein Bild hochladen (s. angehängten Fehler-Screenshot). Hast Du mit solchen Meldungen schon Erfahrungen gesammelt und der eigentliche Fehler sitzt gar nicht weit weg vom Bildschirm?

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 9259
  • eigentlich eher "user" wie "developer"
Antw:[geklärt] SVG+DBLog: plotReplace kann plotfunction nicht ersetzen
« Antwort #17 am: 22 Januar 2020, 08:46:43 »
 :) Sehr schönes Beispiel!
Insbesondere das mit der Dynamisierung des Quell-Devices gefällt mir richtig gut, denke, das werde ich auch in mein DBLog-Beispiel einbauen...

Diese Fehlermeldung kenne ich bisher noch nicht, eventuell kommt das von den vielen Punkten im Dateinamen?
Ansonsten einfach hier anhängen, und ich versuch's mal...
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | BT@OpenMQTTGateway
svn:MySensors, WeekdayTimer, RandomTimer, AttrTemplate => {mqtt2, mysensors, httpmod}

Offline OdfFhem

  • Sr. Member
  • ****
  • Beiträge: 565
Antw:[geklärt] SVG+DBLog: plotReplace kann plotfunction nicht ersetzen
« Antwort #18 am: 22 Januar 2020, 09:09:41 »
@Beta-User

Das nenne ich mal Einsatzwillen ...

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 9259
  • eigentlich eher "user" wie "developer"
Antw:[geklärt] SVG+DBLog: plotReplace kann plotfunction nicht ersetzen
« Antwort #19 am: 22 Januar 2020, 09:21:04 »
...noch nicht hübsch platziert, aber immerhin völlig ohne Probleme hochgeladen und jetzt drin...
Danke!
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | BT@OpenMQTTGateway
svn:MySensors, WeekdayTimer, RandomTimer, AttrTemplate => {mqtt2, mysensors, httpmod}

Offline OdfFhem

  • Sr. Member
  • ****
  • Beiträge: 565
Antw:[geklärt] SVG+DBLog: plotReplace kann plotfunction nicht ersetzen
« Antwort #20 am: 22 Januar 2020, 09:41:43 »
@Beta-User

Interessant. Da dachte ich mir, probier's doch auch noch mal. Und tatsächlich, jetzt geht's (s. angehängten Erfolg-Screenshot) ...

Kann ich noch mal den Wiki-Artikel aufgreifen und zu Ende editieren   oder   kommen wir uns da in die Quere?

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 9259
  • eigentlich eher "user" wie "developer"
Antw:[geklärt] SVG+DBLog: plotReplace kann plotfunction nicht ersetzen
« Antwort #21 am: 22 Januar 2020, 09:43:55 »
Du kannst den Artikel gerne bearbeiten, ich bin im Moment an was ganz anderem dran...
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | BT@OpenMQTTGateway
svn:MySensors, WeekdayTimer, RandomTimer, AttrTemplate => {mqtt2, mysensors, httpmod}

Offline OdfFhem

  • Sr. Member
  • ****
  • Beiträge: 565
Antw:[geklärt] SVG+DBLog: plotReplace kann plotfunction nicht ersetzen
« Antwort #22 am: 22 Januar 2020, 09:59:45 »
@Beta-User

... ich bin im Moment an was ganz anderem dran...
Grund genug, sich nochmal extra fürs Hochladen der Datei zu bedanken.


Ich habe die Bearbeitung jetzt erst einmal abgeschlossen ... fertig.

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 9259
  • eigentlich eher "user" wie "developer"
Antw:[geklärt] SVG+DBLog: plotReplace kann plotfunction nicht ersetzen
« Antwort #23 am: 27 Januar 2020, 10:59:09 »
Ich habe die Bearbeitung jetzt erst einmal abgeschlossen ... fertig.
Thx. Bin jetzt auch nochmal drüber, nachdem ich das mit der dynamischen Benennung der Datenquelle auch erfolgreich ausgetestet habe :) . Das "ToDo" ist jetzt mal abgebaut. Ist zwar immer noch ein eher kurzes Artikelchen, aber so sollte man das eigentlich im Wesentlichen lassen können.
Wäre klasse, wenn du auch nochmal drübersiehst und ggf. direkt verbesserst, wenn dir noch was auffällt.
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | BT@OpenMQTTGateway
svn:MySensors, WeekdayTimer, RandomTimer, AttrTemplate => {mqtt2, mysensors, httpmod}

Offline OdfFhem

  • Sr. Member
  • ****
  • Beiträge: 565
Antw:[geklärt] SVG+DBLog: plotReplace kann plotfunction nicht ersetzen
« Antwort #24 am: 04 Februar 2020, 08:15:27 »
@Beta-User

Ich habe mir das SVG-Wiki angesehen und sieht erst mal gut aus. Die Frage ist natürlich, ob man vielleicht noch verschiedene Attribute machen möchte ... aber im Zweifel schwierig.

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 9259
  • eigentlich eher "user" wie "developer"
Antw:[geklärt] SVG+DBLog: plotReplace kann plotfunction nicht ersetzen
« Antwort #25 am: 04 Februar 2020, 09:32:41 »
Danke erst mal für's drüberschauen. Ist schon klar, dass der Artikel irgendwie noch nicht komplett&fertig ist, aber z.B. zu weiteren Attributen mag ich nur/erst dann was schreiben, wenn ich die aus eigener Anschauung kenne. Und bis auf weiteres reicht mir das so (und vermutlich den meisten "Nachbauenden" auch), ist ja jetzt deutlich rausgearbeitet, dass das einfach und flexibl geht, wenn man es richtig macht...

Vielleicht kann man noch etwas mehr zu den Unterschieden in der SVG-Definition betr. FileLog/DBLog schreiben, aber dann ergeben sich Überschneidungen zu weiteren Artikeln, die ich eigentlich grade nicht auch noch anfassen wollte  ;D .

(Vielleicht findet sich ja noch jemand ganz anderes, der der Thema aufgreifen will und dem Ganzen eine "rundere" Form verpassen mag und das mit plotReplace auch auf der englischen Seite kurz erläutert?!?)
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | BT@OpenMQTTGateway
svn:MySensors, WeekdayTimer, RandomTimer, AttrTemplate => {mqtt2, mysensors, httpmod}

 

decade-submarginal