logProxy modul zum manipulieren und ergänzen von SVG plots

Begonnen von justme1968, 26 August 2014, 22:47:55

Vorheriges Thema - Nächstes Thema

justme1968

ich denke ein eigener plot ist übersichtlicher.

aber wenn die alphabetische reihenfolge der ventil devices zur reihenfolge der anderen plots passt geht es auch direkt ohne aufwand in einem plot. probiere es einfach aus.

wenn die reihenfolge nicht passt kannst du dir eine kleine sub schreiben die jeweils die richtigen namen in der richtigen reihenfolge liefert und statt dem devspec2array verwenden.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

daschauher

könntest du mir bitte noch einen tip geben wie das mit der formatierung eingebunden werden muss?
so funktioniert es zumindest nicht :)
#logProxy Polar::{[map{ReadingsVal($_,"state",{~"on"?30:0})}devspec2array(".*_Heizung_Ventile_.*")]}

justme1968

etwa so:
{Dumper [map{ReadingsVal($_,"state","")eq"On"?"30":"0"}devspec2array(".*_Heizung_Ventile_.*")]}

gruss
   andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

daschauher

wenn ich es so abfrage:
{Dumper [map{ReadingsVal($_,"state","")eq"On"?"30":"0"}devspec2array(".*_Heizung_Ventile_.*")]}
kommen die richtigen werte, aber der plot sieht dann eigenartig aus.
set terminal png transparent size <SIZE> crop
set xtics ()
set ytics ()
set y2tics ()
set xrange [-45:45]
set yrange [-45:45]

#logProxy Polar::{[map{ReadingsVal($_,"measured-temp",0)}devspec2array(".*Climate")]}
#logProxy Polar::{[map{ReadingsVal($_,"humidity",0)/3}devspec2array(".*Climate")]}
#logProxy Polar::{[map{ReadingsVal($_,"desired-temp",0)}devspec2array(".*Climate")]}
#logProxy Polar::{[map{ReadingsVal($_,"humidity",0)/3}devspec2array(".*Climate")]}
#logProxy Polar::{[map{ReadingsVal($_,"measured-temp",0)}devspec2array(".*Climate")]}
#logProxy Polar::{[map{ReadingsVal($_,"state","")eq"on"?"30":"0"}devspec2array(".*_Heizung_Ventile_.*")]}
#logProxy Polar::{[map{AttrVal($_,"alias",$_)}devspec2array(".*Climate")]}

plot "<IN>" using 1:2 axes x1y1 title 'Ist' ls l0 lw 1 with lines,\
plot "<IN>" using 1:2 axes x1y1 title 'Luftfeuchtigkeit/3' ls l2 lw 1 with lines,\
plot "<IN>" using 1:2 axes x1y1 title 'Soll' ls l1fill lw 1 with lines,\
plot "<IN>" using 1:2 axes x1y1 notitle ls l2 lw 1 with points,\
plot "<IN>" using 1:2 axes x1y1 notitle ls l0 lw 1 with points,\
plot "<IN>" using 1:2 axes x1y1 title 'Heizung EIN' ls l5 lw 5 with points,\
plot "<IN>" using 1:2 axes x1y1 notitle  ls l4 lw 1 with lines,\


justme1968

#154
sorry. mein fehler. der : ist in der colum_spec nicht erlaubt.

mach es so:{[map{mySub($_)}devspec2array(".*_Heizung_Ventile_.*")]}

und das hier in 99_myUtils.pm:sub mySub($){
  my($DEVICE) = @_;
  return ReadingsVal($DEVICE,"state","")eq"On"?"30":"0";
};


gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

daschauher

macht nichts, wenn dann habe ich zu danken :)
aber es schaut noch so wie auf dem screenshot in meinem letzten post aus.
hat sich also nichts verändert

gruss
markus

daschauher

ich weiß nicht ob es dir weiterhilft aber bei eingabe von
{Dumper [map{mySub($)}devspec2array(".*_Heizung_Ventile_.*")]}
wird folgendes ausgegeben
syntax error at (eval 389) line 1, at EOF

gruss markus

justme1968

da fehlt auch ein _ hinter dem $.

{Dumper [map{mySub($_)}devspec2array(".*_Heizung_Ventile_.*")]}

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

daschauher


automatisierer

erst mal allen ein frohes neues jahr!

meine ganzen logproxys haben seit dem Jahreswechsel ein Problem mit der extend Funktion. wenn ich den plot ins letzte Jahr zurück scrolle, wird alles ganz normal angezeigt. aber alles was in diesem jahr ist wird mit den letzten Werten aus dem vergangenen Jahr dargestellt und die aktuellen werte werden nicht berücksichtigt.
Wenn ich die extend Funktion raus nehme klappts auch wieder.

Gruß
Ingo


daschauher

Hallo,

Danke. Von mir auch erstmal ein gutes neues Jahr.
Bei mir wird auch nichts mehr angezeigt.  Bin aber noch nicht dazu gekommen nachzuforschen.

Grsüße Markus

justme1968

passiert das in verbindung mit filelog oder dbblog? sind es jahreslogs oder monatslogs?

es kann sehr gut sein das es probleme mit dem log file wechsel gibt.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

automatisierer

mit filelog, dblog benutze ich nicht.  und bei jahreslog und monatslog. ich kann allerdings nicht sagen ob dieses phänomen bei einem monatswechsel auch auftritt, da ich logproxy noch nicht so lange benutze.

was mich ein wenig stutzig macht, ist dass noch die daten aus dem vorherigen log dargestellt werden. eigentlich sollte doch auf das current logfile zugegriffen werden.

daschauher

Ich benutze ebenfalls nur filelog und einen Monatswechsel habe ich auch noch nicht mit gemacht.
Bei mir werden nicht alte Werte angezeigt, sondern gar nichts,  quasi nur ein leeres Plot Fenster.

Grüße Markus

frank

ZitatEin "Problem" hab ich noch. Der Plot Editor zeigt maximal 8 gplot Zeilen an. Bisher war kaum anzunehmen das jemand mehr als 8 Kurven in einem Plot zeichnet, aber mit LogProxy kommt da schnell was zusammen wenn man sich zB auch Striche und Punkte anzeigen lassen will. Normaleweise editiere ich alle Dateien mit eclipse aber bei kleinen Änderungen/Versuchen nehme ich da schon gerne den Plot Editor und wenn mehr als 8 Zeilen vorhanden sind hat der mir die gplot Datei zusammen. Ich hab dann mal nachgesehen und bin auf diese Zeile (313 98_SVG.pm) gestoßen:
Code: [Auswählen]

$max = 8 if($max > 8);

ein zB
Code: [Auswählen]

$max = 15 if($max > 15);

bringt nicht wirklich was, siehe Anhang. Da muss es irgendwo noch eine Einstellung geben, hab sie aber bisher nicht gefunden. Vielleicht kannst du dir das, wenn du Zeit und Muse hast, mal ansehen.

Zitatdas mit dem editor schaue ich mir an. eigentlich wäre es ideal wenn alle zeilen angezeigt werden und es einen knopf gibt um eine neue zeile hinzuzufügen. mal sehen wie aufwändig das ist. ansonsten gibt es jeweils in filelog, dblog und logproxy noch die SVG_sampleDataFn die auch die begrenzung auf 8 eingebaut hat. mach für den logProxy da auch mal 15 draus.

mit dem code zusätzlich in zeile 83 von 98_logproxy funktioniert es auch bei mir mit >8 plots. danke.  :)

$max = 15 if($max > 15);


könnte man das nicht komplett einchecken? von mir aus auch gerne >15. warum existieren hier überhaupt die grenzen?

gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html