SVG: Unterstützung für Templates, einstellbares gplot-Dir

Begonnen von Dr. Boris Neubert, 18 März 2017, 20:34:24

Vorheriges Thema - Nächstes Thema

rudolfkoenig

Wenn der Wert in {} eingeschlossen (und deswegen evaluiert wird), gibt es eine Chance, dass $wl auf dem Namen der SVG-Definition und $ld auf dem LOGDEVICE gesetzt ist. Habe aber nicht die Musse es jetzt zu testen, bitte um Nachsicht.

klausw

Zitat von: rudolfkoenig am 12 April 2017, 18:44:23
Wenn der Wert in {} eingeschlossen (und deswegen evaluiert wird), gibt es eine Chance, dass $wl auf dem Namen der SVG-Definition und $ld auf dem LOGDEVICE gesetzt ist. Habe aber nicht die Musse es jetzt zu testen, bitte um Nachsicht.

Der Tipp reicht mir volkommen, Danke
$wl funktioniert
$ld funktioniert nicht (daran das ich LogProxy nutze sollte das nicht liegen, oder?)
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

Virsacer

Ich weiß nicht genau, ob das jetzt hierhin gehört, aber mir ist aufgefallen, dass ich im Log immer eine Fehlermeldung habe, wenn ich das erste mal nach einem FHEM-Neustart die Seite mit den Plots aufrufe:

2017.07.23 20:40:03 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/93_DbLog.pm line 731.
2017.07.23 20:40:03 3: eval: {$data{min1}." °C ≤ ".$data{currval1}." °C ≤ ".$data{max1}." °C"}

rudolfkoenig

Nein, es gehoert nach Automatisierung in einem neuen Thema.
Die Warnung kommt von DbLog, und laut MAINTAINER.txt wird das in Automatisierung behandelt.

Die Warnung gibt es vermutlich haeufiger, aber fhem.pl gibt bei Voreinstellung eine bestimmte Warnung nur einmal aus.

HeikoE

#34
Zitat von: JoeALLb am 30 März 2017, 08:45:02
Aktuell nach neuerlichem Update bekomme ich gar keine Plots mit Variablen mehr angezeigt. Sie bleiben leer.
Bin auf Dienstreise mit schlechtem Empfang, am Handy sehe ich das nicht, kann also noch dauern...
Ich experimentiere mit Variablen in der .gplot-Datei. Mit Einträgen für den Titel geht's, aber bei Verweisen auf Einträge im dbLog klappt es nicht. In der gplot Datei steht

#Datenbank <Etage>.<Zimmer>.Heizung:actuator

Im Device steht

attr SVG_OG.SZ.Heizung plotReplace L1={"Heizung - Temperatur $data{currval1}°C ($data{min1}-$data{max1})"} Etage=OG Zimmer=SZ

Der Plot bleibt leer.
Irgendwas wird ersetzt, denn L1 im Titel funktioniert. Auch wenn ich <Etage> noch dazuschreibe, wird OG angezeigt.
%...% <...> habe ich auch ausprobiert - ohne Erfolg.
Hab ich noch was vergessen oder mache ich was falsch?
Schöne Grüße
Heiko

rudolfkoenig

#Datenbank <Etage>.<Zimmer>.Heizung:actuator
Aus der CommandRef:
ZitatIn the .gplot file <key> is replaced with the corresponding value, the evaluation of {} 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.

->
#Datenbank %Etage%.%Zimmer%.Heizung:actuator

HeikoE

Zitat von: rudolfkoenig am 05 November 2017, 16:40:29
#Datenbank <Etage>.<Zimmer>.Heizung:actuator
Aus der CommandRef:
->
#Datenbank %Etage%.%Zimmer%.Heizung:actuator
War ein Verständnisfehler meinerseits. Ich hatte %...% beim Attribut plotreplace eingetragen, nicht in der gplot-Datei.
Jetzt geht's.
Ein Beispiel hätte mich sicherlich schneller zum Ziel gebracht - ich habe jedoch keines gefunden.
Danke für die Hilfe.
Heiko

MCh76

#37
Zitat von: rudolfkoenig am 05 November 2017, 16:40:29
#Datenbank <Etage>.<Zimmer>.Heizung:actuator
Aus der CommandRef:
->
#Datenbank %Etage%.%Zimmer%.Heizung:actuator

nachdem ich nun auch einige zeit mit einem plot gekämpft habe die Frage:
nach meinem Verständnis funktioniert doch dann <TL>/<L1> in Verbindung mit plotReplace dann nur im PlotTitle, nicht aber aber "innerhalb" des Plots oder?
Jedenfalls führte folgender Inhalt in der gplot Datei immer zu XML-Errors:

#DBLogging out_wetter:temp_c
plot "<IN>" using 1:2 axes x1y2 title '<L1>' ls l0 lw 1 with lines


dagegen funktioniert die Ersetzung mit folgendem Code:

plot "<IN>" using 1:2 axes x1y2 title '%L1%' ls l1 lw 3 with lines


im plotReplace habe ich stehen:

TL={"Temperatur $data{currval1}°C $data{min1} $data{max1}"} L1={"$data{currval1}"}


danke für eine kurze Aufklärung.
VG,
Chris

rudolfkoenig

Ich fuerchte dein Problem ist z.Zt. nicht einfach loesbar: die erwaehnte Stelle wird nur _vor_ dem Einlesen der Plot-Daten verarbeitet, d.h. hier werden nur %key% Werte ausgewertet, <key> bleibt erhalten. Leider stehen die min/max/etc Daten aus dem aktuellen Plot damit auch nicht zur Verfuegung, d.h. %L1% zeigt Werte aus irgendeinem der vorherigen Plots.