Achsenbeschriftung links/rechts bei SVG

Begonnen von Dr. Boris Neubert, 04 April 2017, 18:01:46

Vorheriges Thema - Nächstes Thema

Frank_Huber

Zitat von: justme1968 am 06 April 2017, 16:06:36
@Frank_Huber: ich weiss nicht was du damit meinst. du kannst dich im plot editor angeben ob eine kurve zur rechten oder linken achse gehört.
Das war ja auch auf die  Beschriftung gedacht. War ich vielleicht von der Formulierung nicht eindeutig.

rudolfkoenig

ZitatIn der Commandref fehlen bei SVG die Backlinks zu nrAxis und plotsize als weitere globale Attribute, die am individuellen SVG-Device überschrieben werden können.

plotsize war drin, nrAxis habe ich hinzugefuegt.
Und die Doku der Attribute alphabetisch sortiert, damit sowas eher auffaellt.

justme1968

ich habe mich noch  mal mit der mehrspaltigen legende beschäftigt.

die von boris vorgeschlagene erweiterte version die auf jeder seite so viele spalten wie achsen hat ist nicht durch eine einfache änderung an SVG.pm umzusetzen da hier die text bzw. spalten breite nicht feststellbar ist. dazu müsste man die texte der spalten an die js seite durchreichen und dort das formatieren übernehmen.

ich würde vorschlagen den oben patch erst mal so wie er ist einzuchecken. der haupt fall mit je einer ache rechts und links wird damit ja schon abgedeckt und bei mehreren achsen passiert nichts völlig falsches.

was in dem patch noch nicht enthalten ist wäre das automatische umstellen von captionLeft auf captionPos und das entfernen eines gesetzten captionLeft attributs. sollen wir das noch einbauen oder reicht es captionLeft nicht mehr zu dokumentieren?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

rudolfkoenig

Habs eingecheckt. captionLeft ist "deprecated", und wird automatisch nach captionPos left konvertiert.

Omega

Die Höhe, auf der captionPos ausgegeben wird, ist sehr unterschiedlich - s. Beispiele. Ist das so gewollt? Wie kann ich darauf einwirken? Ich finde es wichtig, dass die Legende möglicht weit oben steht, um nicht durch die Plots überschrieben zu werden.

Kleinigkeit am Rande: wenn das Attribut vorhanden ist und ich es von left auf auto ändern möchte, wird das Attribut auf den Status "undefined" gesetzt. Ich muss es erst löschen und danach neu setzen auf "auto".

LG
Holger
NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

justme1968

die label sollten immer an der gleichen stelle los anfangen.

wie genau schaut das plotfile in dem problematischen fall aus?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

rudolfkoenig

Zitatwenn das Attribut vorhanden ist und ich es von left auf auto ändern möchte, wird das Attribut auf den Status "undefined" gesetzt.
Das habe ich heute frueh gefixt. Glaube ich :)

SabineT

#22
Manchmal wäre es überhaupt schöner, wenn die Beschriftungen über der Grafik stehen würden, weil wenn die Kurven grad an den Enden ganz nach oben reichen sind die Beschriftungen schwer bis garnicht zu lesen.
Im pywws schaut das bei mir z.B. wie im Anhang aus, zum Vergleich dazu die Anzeige vom fhem..


lg, Sabine



justme1968

das geht leider nicht so einfach. zum einen weil dann die svg größe dynamisch wäre und zum anderen weiß die fhem seite nicht wie hoch die spalten mit dem labels sind. siehe oben zur breite zum nebeneinander anordnen.

auch hier würde es helfen dir label direkt an die js seite zu übergeben und dort das layout zu machen. das wäre aber ein großer umbau.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

SabineT

Das ist mir klar, darum hab ich auch "wäre" geschrieben ;)

Derzeit bin ich eh noch am fhem besser kennen lernen. Bei den Grafiken bin ich halt noch etwas vom pywws verwöhnt, das verwendet ja gnuplot.. Ich hatte auch schon versucht, von SVG auf gnuplot umzustellen, aber da hab ich in der Doku noch nichts brauchbares gefunden, wie dann die Datenübergabe ans gnuplot richtig konfiguriert wird.

Omega

Mein gplot-File:

# Created by FHEM/98_SVG.pm, 2017-04-22 10:36:46
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 ("off" 0, "on" 15, "40%" 40, "60%" 60, "80%" 80, "100%" 100)
set y2tics
set grid y2tics
set ylabel "Status(on/off) / Leistung %"
set y2label "Gasverbrauch in m³"
set yrange [0:100]
set y2range [0:<L1>]

#myFHEMdb Vitocrossal:Brenner
#myFHEMdb Vitocrossal:BrennerLeistung
#myFHEMdb hc.Gasverbrauch_Gesamt:countsPerDay
#myFHEMdb Vitocrossal:Speicherladepumpe
#myFHEMdb Vitocrossal:Zirkulationspumpe_2

plot "<IN>" using 1:2 axes x1y1 title 'Brennerstatus' ls l5 lw 2 with steps,\
     "<IN>" using 1:2 axes x1y1 title 'Brennerleistung' ls l0 lw 1.5 with steps,\
     "<IN>" using 1:2 axes x1y2 title 'Gasverbrauch' ls l1fill lw 0.2 with lines,\
     "<IN>" using 1:2 axes x1y1 title 'Speicherladepumpe' ls l2fill lw 1 with steps,\
     "<IN>" using 1:2 axes x1y1 title 'Zirkulationspumpe_2' ls l3fill lw 1 with steps


Die Unterschiede (ab welcher Höhe die Ausgabe erfolgt) ist anscheinend immer unterschiedlich (meine Beispiele von gestern sehen heute anders aus) und zumindest in diesem Plot (cl_3.jpg) abhängig vom höchsten Wert der y-Achse.
Den Wert setze ich dynamisch (s.a. cl_3.jpg).
Setze ich ihn fix (z.B. [0:1000]) ist die 1000 ganz oben und die Ausgabe passt (s.a. cl_4.jpg).

@rudolfkoenig
ZitatDas habe ich heute frueh gefixt. Glaube ich :)
Leider nein  :(

LG
Holger




NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

justme1968

#26
passiert das auch wenn du fest auf rechts oder links stellst?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

rudolfkoenig

ZitatLeider nein
Leider doch
Gerade getestet, indem ich in meiner Update-Testinstallation update durchgefuehrt habe, dann FHEM mit fhem.cfg.demo gestartet habe, und das Attribut in in der Detail-Ansicht von SVG_01_Garden von right auf left auf auto geaendert habe, und dazwischen die Ausgabe kontrolliert habe.

Omega

#28
@rudolfkoenig
hast recht  :)
Shutdown restart hat in dem Fall nicht gereicht - ein erneuter Aufruf von Chrome war zusätzlich notwendig. Jetzt klappt die Umschaltung hervorragend. Danke.

Doch nicht ganz. Während meiner Tests wollte ich für die letzten Hardcopies wieder auf "auto" umstellen: fhem (bzw. der Browser) hat aber nicht auf meine Änderungswünsche reagiert (kein "undefined", nur eben keine Reaktion vom Browser nach Klick auf "attr"). Nach Löschen und Neuanlages des Attributes hat aber wieder alles funktioniert. Merkwürdig.

@justme1968
Mit "fest auf rechts oder links" meinst du vermutlich das "Grid aligned". Keine Änderung, wenn ich es auf links setze. Auch Änderungen an der Range (links) ändern nichts.
Die captionPos-Einstellung hat auch keine Auswirkung auf die Höhe, habe alle 3 Varianten getestet.
Die Ausgabe der Legende beginnt immer (eine Zeile) unterhalb des höchsten rechten Y-Achsen-Wertes. Wenn ich in meinem Beispiel auf 600 bzw. 1000 einstelle, ist das auch richtig so.
Stelle ich im Extremfall aber 799 ein, so wird als höchster Y-Achsen-Wert die 600 ausgegeben und unterhalb der 600 beginnt dann die Legende.


Nachtrag:
Ich schreibe das mal hier dazu, da vermutlich die heutiges Tests / Änderungen dazu geführt haben:
Mein Log ist voll mit folgenden Meldungen (ohne Timestamp)
Argument "on" isn't numeric in numeric gt (>) at ./FHEM/98_SVG.pm line 1554.
Argument "off" isn't numeric in numeric gt (>) at ./FHEM/98_SVG.pm line 1554.

40 mal diese Meldungskombination und 3 Zeilen wie folgt:
Argument "on" isn't numeric in sprintf at ./FHEM/98_SVG.pm line 2161.
Argument "off" isn't numeric in sprintf at ./FHEM/98_SVG.pm line 2161.
Argument "off" isn't numeric in sprintf at ./FHEM/98_SVG.pm line 2161


Die aufgerufene Plotdatei ist die, die ich ein paar Beiträge vorher hier eingestellt habe. 
NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

justme1968

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

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