Wozu dient der <default> Wert im SVG Plot Editor?

Begonnen von willybauss, 01 Mai 2020, 13:26:43

Vorheriges Thema - Nächstes Thema

willybauss

In der CommandRef finde ich

Zitat
<column_spec>
Jede column_spec sendet die gewünschten Daten entweder in eine gesonderte Datei oder über die gegenwärtige Verbindung durch "-" getrennt.
Syntax: <col>:<regexp>:<default>:<fn>
<col> gibt die Spaltennummer zurück, beginnend mit 1 beim Datum. Wenn die Spaltenmummer in doppelten Anführungszeichen steht, handelt es sich um einen festen Text und nicht um eine Spaltennummer.
<regexp> gibt, falls vorhanden, Zeilen mit Inhalten von regexp zurück. Groß- und Kleinschreibung beachten.
<default>
Wenn keine Werte gefunden werden, und der Default-Wert (Voreinstellung) wurde gesetzt, wird eine Zeile zurückgegeben, die den von-Wert (from) und diesen Default-Wert enthält. Dieses Leistungsmerkmal ist notwendig, da gnuplot abbricht, wenn ein Datensatz keine Daten enthält.
<fn> Kann folgende Inhalte haben:
int
Löst den Integer-Wert zu Beginn eines Strings heraus. Wird z.B. bei 10% gebraucht.
delta-h oder delta-d
Gibt nur den Unterschied der Werte-Spalte pro Stunde oder pro Tag aus. Wird benötigt, wenn die Spalte einen Zähler enthält, wie im Falles des KS300 in der Spalte für die Regenmenge.
alles andere
Dieser String wird als Perl-Ausdruck ausgewertet. @fld enthaelt die aktuelle Zeile getrennt durch Leerzeichen. Achtung: Dieser String/Perl-Ausdruck darf keine Leerzeichen enthalten.

Ich meine, da herauszulesen, dass der Defaultwert verwendet wird, wenn keine anderen Werte zur Verfügung stehen. Das scheint in der Praxis so nicht zu funktionieren. Oder habe ich den roten Text falsch interpretiert?

Das Logfile meines Rasenroboters enthält z.B.


2020-04-27_19:06:08 Dolly battery-charging: true
2020-04-27_19:15:16 Dolly battery-charging: false
2020-04-29_15:32:13 Dolly battery-charging: true
2020-04-29_16:24:16 Dolly battery-charging: false
2020-04-29_18:07:17 Dolly battery-charging: true
2020-04-29_19:00:09 Dolly battery-charging: false
2020-04-29_19:55:03 Dolly battery-charging: true
2020-04-29_20:22:30 Dolly battery-charging: false
2020-04-30_11:43:25 Dolly battery-charging: true
2020-04-30_12:37:18 Dolly battery-charging: false
2020-04-30_16:43:14 Dolly battery-charging: true
2020-04-30_17:40:08 Dolly battery-charging: false
2020-04-30_19:05:32 Dolly battery-charging: true
2020-04-30_19:45:12 Dolly battery-charging: false
2020-05-01_11:45:03 Dolly battery-charging: true


Am 28.4. gibt es keine Einträge. Der Plot zeigt immer eine Nulllinie, egal was ich als als Defaultwert eintrage.

Das gplot File zeigt einen Defaultwert von 40:
Zitat
# Created by FHEM/98_SVG.pm, 2020-05-01 13:06:24
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 ytics
set ylabel "BatteryLevel [%]"
set y2label "Collisions"
set yrange [0:100]

#FileLog_Dolly 4:Dolly.battery-level\x3a::
#FileLog_Dolly 4:Dolly.mower-status\x3a:0:($fld[3]=~"ok_cutting|ok_searching|mähen|manuelles|suche")?10:0
#FileLog_Dolly 4:Dolly.mower_stats-collisions\x3a::
#FileLog_Dolly 4:Dolly.battery-charging\x3a:40:$fld[3]=~"true"?5:0

plot "<IN>" using 1:2 axes x1y1 title 'BatteryLevel' ls l2 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 title 'Cutting' ls l1fill lw 1 with steps,\
     "<IN>" using 1:2 axes x1y2 title 'Collisions' ls l0 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 title 'Charging' ls l2fill lw 1 with steps

Ich könnte mir noch vorstellen, dass die dahinter definierte Function
$fld[3]=~"true"?5:0

den Defaultwert überschreibt. Das würde dann aber nur an Tagen funktionieren, an denen gar keine Werte vorliegen. Heute z.B. (letzte Zeile des Logfiles) sehe ich durchgehend von 0 bis 24 Uhr eine "5", obwohl "true" ja erst um 11:45:03 Uhr gesetzt wurde.
FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS

willybauss

FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS

willybauss

FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS

willybauss

FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS

amenomade

Ich glaube nicht, dass default das bedeutet, was Du meinst. Für mich ist es nicht gedacht, um Plot-Abrisse zu vermeiden (dafür ist das Attribut addLog bei Filelog und DBLog gedacht), sondern für den Fall wo deine Log so aussehen würde:

2020-04-29_15:32:13 Dolly battery-charging: true
2020-04-29_16:24:16 Dolly battery-charging: false
2020-04-29_18:07:17 Dolly battery-charging:
2020-04-29_19:00:09 Dolly battery-charging: false
2020-04-29_19:55:03 Dolly battery-charging: true
2020-04-29_20:22:30 Dolly battery-charging: false
2020-04-30_11:43:25 Dolly battery-charging: true
2020-04-30_12:37:18 Dolly battery-charging: false
2020-04-30_16:43:14 Dolly battery-charging:
2020-04-30_17:40:08 Dolly battery-charging: false
2020-04-30_19:05:32 Dolly battery-charging: true
2020-04-30_19:45:12 Dolly battery-charging: false

sprich wenn ab und zu kein Wert da ist.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus