[erledigt] fuip - chart widget

Begonnen von the ratman, 03 November 2018, 12:50:29

Vorheriges Thema - Nächstes Thema

the ratman

uij, ich seh grad n nettes log für den funzenden plot.
pro aufruf 1*:
2018.11.12 17:49:35 1: $VAR1 = {
          'srcDesc' => {
                         'order' => [
                                      'logdb'
                                    ],
                         'all' => ' wohnzimmer_temperatur:temperature:: netatmo_drinnen:temperature:: gaestezimmer_temperatur:temperature:: badezimmer_temperatur:temperature:: wetterstation:temperature:: nordseite_temperatursensor:temperature:: treibhaus_temperatur:temperature:: terrasse_bewegung_licht:brightness:: doif_regenumrechnung:regen_echt::',
                         'src' => {
                                    'logdb' => {
                                                 'arg' => 'wohnzimmer_temperatur:temperature:: netatmo_drinnen:temperature:: gaestezimmer_temperatur:temperature:: badezimmer_temperatur:temperature:: wetterstation:temperature:: nordseite_temperatursensor:temperature:: treibhaus_temperatur:temperature:: terrasse_bewegung_licht:brightness:: doif_regenumrechnung:regen_echt::',
                                                 'num' => 0,
                                                 'idx' => 8
                                               }
                                  },
                         'rev' => {
                                    '0' => {
                                             '6' => 6,
                                             '3' => 3,
                                             '0' => 0,
                                             '4' => 4,
                                             '8' => 8,
                                             '2' => 2,
                                             '1' => 1,
                                             '7' => 7,
                                             '5' => 5
                                           }
                                  }
                       },
          'conf' => {
                      'xdata' => 'time',
                      'title' => 'termperaturen, sonnenschein und regen',
                      'lStyle' => [
                                    'class="SVGplot l5"',
                                    'class="SVGplot l4"',
                                    'class="SVGplot l7"',
                                    'class="SVGplot l2"',
                                    'class="SVGplot l1"',
                                    'class="SVGplot l6"',
                                    'class="SVGplot l0"',
                                    'class="SVGplot l8fill"',
                                    'class="SVGplot l2fill"'
                                  ],
                      'hasygrid' => 0,
                      'terminal' => 'png transparent size <SIZE> crop',
                      'lWidth' => [
                                    'stroke-width:3',
                                    'stroke-width:1',
                                    'stroke-width:1',
                                    'stroke-width:1',
                                    'stroke-width:3',
                                    'stroke-width:1',
                                    'stroke-width:1',
                                    'stroke-width:0.2',
                                    'stroke-width:0.2'
                                  ],
                      'output' => '\'<OUT>.png\'',
                      'ytics' => '.',
                      'ylabel' => '""',
                      'grid' => 'y2tics',
                      'hasy2grid' => 1,
                      'lTitle' => [
                                    'wohnzimmer',
                                    'schlafzimmer',
                                    'gästezimmer',
                                    'badezimmer',
                                    'südseite',
                                    'nordseite',
                                    'treibhaus',
                                    ' ',
                                    ' '
                                  ],
                      'lAxis' => [
                                   'x1y2',
                                   'x1y2',
                                   'x1y2',
                                   'x1y2',
                                   'x1y2',
                                   'x1y2',
                                   'x1y2',
                                   'x1y1',
                                   'x1y1'
                                 ],
                      'lType' => [
                                   'lines',
                                   'lines',
                                   'lines',
                                   'lines',
                                   'lines',
                                   'lines',
                                   'lines',
                                   'lines',
                                   'steps'
                                 ],
                      'y2label' => '"temperatur"',
                      'yrange' => '[1:255]',
                      'timefmt' => '"%Y-%m-%d_%H:%M:%S"',
                      'y2tics' => '',
                      'xlabel' => '" "'
                    }
        };

2018.11.12 17:49:35 1: wohnzimmer_temperatur:temperature::
2018.11.12 17:49:35 1: netatmo_drinnen:temperature::
2018.11.12 17:49:35 1: gaestezimmer_temperatur:temperature::
2018.11.12 17:49:35 1: badezimmer_temperatur:temperature::
2018.11.12 17:49:35 1: wetterstation:temperature::
2018.11.12 17:49:35 1: nordseite_temperatursensor:temperature::
2018.11.12 17:49:35 1: treibhaus_temperatur:temperature::
2018.11.12 17:49:35 1: terrasse_bewegung_licht:brightness::
2018.11.12 17:49:35 1: doif_regenumrechnung:regen_echt::
→do↑p!dnʇs↓shit←

Thorsten Pferdekaemper

Zitat von: the ratman am 12 November 2018, 16:43:15mein "testplot" wie oben wird super übernommen,
Das ist fast schon überraschend, aber es freut mich natürlich.
Könntest Du mir davon mal einen Screenshot machen? Ich würde gerne sehen, ob es auch so aussieht, wie ich mir das dachte.

Zitat
also startzeit, endzeit,
Das kann ich noch einbauen, wobei ich hier auch versuchen würde, das vom SVG zu übernehmen.

Zitat
zeiten von-bis als drop-down,
Da habe ich das Problem, dass mein "Framework" nicht ganz so flexibel ist. Ich könnte eine Reihe von Standard-Einträgen anbieten, die man dann in der Konfiguration auswählen kann. Ich denke, dass das schon ausreichend sein sollte. Also sowas wie "Heute", "Gestern", "Diese Woche", "Vorherige Woche" etc.

Zitat
...
Ich kann irgendwo drei Punkte auf's Chart malen, aber das meinst Du wohl nicht. Wenn Du noch konkrete Ideen hast, dann bitte auflisten.

Zitat
und schön vielleicht noch: ne "händische" größenangabe für breite und höhe des plots ansich,
So etwas habe ich bisher vermieden, da das meiner Meinung nach als "Gesamtkonzept" kommen sollte. Ich würde hier sehr ungern mit zwei Feldern in der Konfig arbeiten. Mir schwebt vor, dass man Views, bei denen das sinnvoll ist, direkt mit der Maus größer/kleiner machen kann.
Übrigens nimmt der View (also das Chart) den ganzen Raum nach unten und rechts ein. D.h. wenn Du das Ding verschiebst, dann kannst Du zumindest mal oben und links Platz machen.

Zitat
wo dein script total versagt is mit plotproxy - da kommt mal gar nix, sobald auch nur eine simple linie verwendet wird.
Das war ein Folgeproblem davon, dass "data-device" nicht richtig gefüllt wird. Ich habe gerade eine neue Version hochgeladen, die das Problem nicht mehr haben sollte.

Gruß,
   Thorsten
FUIP

the ratman

#17
hehe, shot kommt sofort
btw - icons (image) fehlt bei der auswahl des plot-widgets.
beim testplot mit proxy sieht man, dass das ausfüllen no ned klappt, was z.b. grade bei dem plot wichtig wäre - siehe den anhang weiter oben "wind.png"
da sieht ma auch gleich, dass man die farben und auch plotbeginn und start-zoomstufe beinflussen können müsste. und natürlich, dass auch die beschreibung der achsen übernommen wird. mein windplot hat z.b. ohne richtungsanbagen wenig sinn, der tempoeraturenplot verwirrt aber nur mit den werten an der linken seite.

aja, und als logeintrag beim aufruf der plots kommt
2018.11.13 09:51:37 1: $VAR1 = {
          'srcDesc' => {
                         'order' => [
                                      'logdb'
                                    ],
                         'all' => ' wohnzimmer_temperatur:temperature:: netatmo_drinnen:temperature:: gaestezimmer_temperatur:temperature:: badezimmer_temperatur:temperature:: wetterstation:temperature:: nordseite_temperatursensor:temperature:: treibhaus_temperatur:temperature:: terrasse_bewegung_licht:brightness:: doif_regenumrechnung:regen_echt::',
                         'src' => {
                                    'logdb' => {
                                                 'num' => 0,
                                                 'arg' => 'wohnzimmer_temperatur:temperature:: netatmo_drinnen:temperature:: gaestezimmer_temperatur:temperature:: badezimmer_temperatur:temperature:: wetterstation:temperature:: nordseite_temperatursensor:temperature:: treibhaus_temperatur:temperature:: terrasse_bewegung_licht:brightness:: doif_regenumrechnung:regen_echt::',
                                                 'idx' => 8
                                               }
                                  },
                         'rev' => {
                                    '0' => {
                                             '4' => 4,
                                             '8' => 8,
                                             '6' => 6,
                                             '1' => 1,
                                             '5' => 5,
                                             '7' => 7,
                                             '3' => 3,
                                             '2' => 2,
                                             '0' => 0
                                           }
                                  }
                       },
          'conf' => {
                      'ytics' => '.',
                      'output' => '\'<OUT>.png\'',
                      'lType' => [
                                   'lines',
                                   'lines',
                                   'lines',
                                   'lines',
                                   'lines',
                                   'lines',
                                   'lines',
                                   'lines',
                                   'steps'
                                 ],
                      'lTitle' => [
                                    'wohnzimmer',
                                    'schlafzimmer',
                                    'gästezimmer',
                                    'badezimmer',
                                    'südseite',
                                    'nordseite',
                                    'treibhaus',
                                    ' ',
                                    ' '
                                  ],
                      'xlabel' => '" "',
                      'lWidth' => [
                                    'stroke-width:3',
                                    'stroke-width:1',
                                    'stroke-width:1',
                                    'stroke-width:1',
                                    'stroke-width:3',
                                    'stroke-width:1',
                                    'stroke-width:1',
                                    'stroke-width:0.2',
                                    'stroke-width:0.2'
                                  ],
                      'grid' => 'y2tics',
                      'yrange' => '[1:255]',
                      'hasy2grid' => 1,
                      'timefmt' => '"%Y-%m-%d_%H:%M:%S"',
                      'lStyle' => [
                                    'class="SVGplot l5"',
                                    'class="SVGplot l4"',
                                    'class="SVGplot l7"',
                                    'class="SVGplot l2"',
                                    'class="SVGplot l1"',
                                    'class="SVGplot l6"',
                                    'class="SVGplot l0"',
                                    'class="SVGplot l8fill"',
                                    'class="SVGplot l2fill"'
                                  ],
                      'title' => 'termperaturen, sonnenschein und regen',
                      'lAxis' => [
                                   'x1y2',
                                   'x1y2',
                                   'x1y2',
                                   'x1y2',
                                   'x1y2',
                                   'x1y2',
                                   'x1y2',
                                   'x1y1',
                                   'x1y1'
                                 ],
                      'xdata' => 'time',
                      'y2label' => '"temperatur"',
                      'hasygrid' => 0,
                      'ylabel' => '""',
                      'y2tics' => '',
                      'terminal' => 'png transparent size <SIZE> crop'
                    }
        };

2018.11.13 09:51:37 1: wohnzimmer_temperatur:temperature::
2018.11.13 09:51:37 1: netatmo_drinnen:temperature::
2018.11.13 09:51:37 1: gaestezimmer_temperatur:temperature::
2018.11.13 09:51:37 1: badezimmer_temperatur:temperature::
2018.11.13 09:51:37 1: wetterstation:temperature::
2018.11.13 09:51:37 1: nordseite_temperatursensor:temperature::
2018.11.13 09:51:37 1: treibhaus_temperatur:temperature::
2018.11.13 09:51:37 1: terrasse_bewegung_licht:brightness::
2018.11.13 09:51:37 1: doif_regenumrechnung:regen_echt::
2018.11.13 09:51:37 1: $VAR1 = {
          'srcDesc' => {
                         'src' => {
                                    'lp' => {
                                              'num' => 1,
                                              'arg' => 'Func:logProxy_values2Plot([[$from,45],[$to,45],[$to,0],[$from,0]]) Func:logProxy_values2Plot([[$from,45],[$to,45],[$to,135],[$from,135]]) Func:logProxy_values2Plot([[$from,225],[$to,225],[$to,135],[$from,135]]) Func:logProxy_values2Plot([[$from,225],[$to,225],[$to,315],[$from,315]]) Func:logProxy_values2Plot([[$from,360],[$to,360],[$to,315],[$from,315]])',
                                              'idx' => 4
                                            },
                                    'logdb' => {
                                                 'num' => 0,
                                                 'arg' => 'wetterstation:windDirection:: wetterstation:windSpeed::',
                                                 'idx' => 1
                                               }
                                  },
                         'all' => ' wetterstation:windDirection:: wetterstation:windSpeed:: Func:logProxy_values2Plot([[$from,45],[$to,45],[$to,0],[$from,0]]) Func:logProxy_values2Plot([[$from,45],[$to,45],[$to,135],[$from,135]]) Func:logProxy_values2Plot([[$from,225],[$to,225],[$to,135],[$from,135]]) Func:logProxy_values2Plot([[$from,225],[$to,225],[$to,315],[$from,315]]) Func:logProxy_values2Plot([[$from,360],[$to,360],[$to,315],[$from,315]])',
                         'order' => [
                                      'logdb',
                                      'lp'
                                    ],
                         'rev' => {
                                    '1' => {
                                             '4' => 6,
                                             '0' => 2,
                                             '3' => 5,
                                             '1' => 3,
                                             '2' => 4
                                           },
                                    '0' => {
                                             '1' => 1,
                                             '0' => 0
                                           }
                                  }
                       },
          'conf' => {
                      'lTitle' => [
                                    'windrichtung',
                                    'windstärke',
                                    ' ',
                                    ' ',
                                    ' ',
                                    ' ',
                                    ' '
                                  ],
                      'xlabel' => '" "',
                      'ytics' => '"n" 0,"n" 360,"o" 90,"s" 180,"w" 270',
                      'lType' => [
                                   'points',
                                   'lines',
                                   'lines',
                                   'lines',
                                   'lines',
                                   'lines',
                                   'lines'
                                 ],
                      'output' => '\'<OUT>.png\'',
                      'hasy2grid' => 0,
                      'lStyle' => [
                                    'class="SVGplot l5"',
                                    'class="SVGplot l0fill_stripe"',
                                    'class="SVGplot l9fill"',
                                    'class="SVGplot l8fill"',
                                    'class="SVGplot l9fill"',
                                    'class="SVGplot l8fill"',
                                    'class="SVGplot l9fill"'
                                  ],
                      'timefmt' => '"%Y-%m-%d_%H:%M:%S"',
                      'grid' => undef,
                      'lWidth' => [
                                    'stroke-width:3',
                                    'stroke-width:2',
                                    'stroke-width:0.2',
                                    'stroke-width:0.2',
                                    'stroke-width:0.2',
                                    'stroke-width:0.2',
                                    'stroke-width:0.2'
                                  ],
                      'yrange' => '[0:360]',
                      'y2range' => '[0:160]',
                      'y2label' => '""',
                      'xdata' => 'time',
                      'title' => 'windrichtung und windstärke',
                      'lAxis' => [
                                   'x1y1',
                                   'x1y2',
                                   'x1y1',
                                   'x1y1',
                                   'x1y1',
                                   'x1y1',
                                   'x1y1'
                                 ],
                      'terminal' => 'png transparent size <SIZE> crop',
                      'y2tics' => '"gering" 10, "frisch" 28, "stark" 50, "sturm" 74, "schwer" 96, "o-artig" 110, "orkan" 155, "---1" 1, "---19" 19, "---38" 38, "---61" 61, "---88" 88, "---103" 103, "---117" 117',
                      'ylabel' => '""',
                      'hasygrid' => 0
                    }
        };

2018.11.13 09:51:37 1: wetterstation:windDirection::
2018.11.13 09:51:37 1: wetterstation:windSpeed::
2018.11.13 09:51:37 1: Func:logProxy_values2Plot([[$from,45],[$to,45],[$to,0],[$from,0]])
2018.11.13 09:51:37 1: Func:logProxy_values2Plot([[$from,45],[$to,45],[$to,135],[$from,135]])
2018.11.13 09:51:37 1: Func:logProxy_values2Plot([[$from,225],[$to,225],[$to,135],[$from,135]])
2018.11.13 09:51:37 1: Func:logProxy_values2Plot([[$from,225],[$to,225],[$to,315],[$from,315]])
2018.11.13 09:51:37 1: Func:logProxy_values2Plot([[$from,360],[$to,360],[$to,315],[$from,315]])


ZitatDas kann ich noch einbauen, wobei ich hier auch versuchen würde, das vom SVG zu übernehmen.
wenn man genau das überschrieben könntest für was eigenes wärs villeicht sinnvoller. ich verwende z.b. manchen plot auch am handy - so "eng" würde n plot in der tablet-ui irgendwie komisch kommen.
Zitatmein "Framework" nicht ganz so flexibel ist. Ich könnte eine Reihe von Standard-Einträgen anbieten,
sowieso. wichtig wäre mir pers. da vor allem, das man sagen kann, ob der view mit "jetzt" endet, oder z.b. mit tagesende. die "anzeigemenge" wäre sicher auch ned uninteressant - also: 1/3/6/912 stunden, tag, gestern, woche, monat, jahr und da immer heute und voriger. das wäre ja eig. nur ein vorgegebener zoom.
ZitatIch kann irgendwo drei Punkte auf's Chart malen,
ich erzähl da nur, was ich so brauchen könnte, nehme aber ned an, dass du das für mich alleine machst - geburtstag hab i erst wieder ende august *g*.
ernsthaft gesprochen: ich hab sicher an 90% ned gedacht, was andere verwenden wollen würden.
Zitatda das meiner Meinung nach als "Gesamtkonzept" kommen sollte
jo, da hast recht. is aber derzeit ned wirklich möglich. nicht, wenn man mal schnell was mit deinen widgets und anderen zusammen macht wie ich. z.b.: happerts da schon an der formatierung der "überschriften" der widgets. wenn man da faul is, und nicht seine eigenen divs für selbige mit einbaut, schaut das schon unterschiedlich aus *g*. jaja, ich weiß ... faules schweinchen, ich bin.
→do↑p!dnʇs↓shit←

Thorsten Pferdekaemper

Zitat von: the ratman am 13 November 2018, 09:56:19
btw - icons (image) fehlt bei der auswahl des plot-widgets.
Das kommt demnächst auch.

Zitat
beim testplot mit proxy sieht man, dass das ausfüllen no ned klappt,
Im Prinzip klappt das schon, also bei mir. Ich habe aber gesehen, dass Du "l8fill" und "l9fill" als line style verwendest. Das gibt es bei mir gar nicht, also habe ich das nicht beachtet. Wo ist das her?

Zitat
da sieht ma auch gleich, dass man die farben und auch plotbeginn und start-zoomstufe beinflussen können müsste.
Ich sehe da weder das eine noch das andere. Könntest Du mal ein bisschen ins Detail gehen? Am besten wären Screenshots nach dem Motto "so will ich's" und "so ist es".

Zitat
und natürlich, dass auch die beschreibung der achsen übernommen wird. mein windplot hat z.b. ohne richtungsanbagen wenig sinn, der tempoeraturenplot verwirrt aber nur mit den werten an der linken seite.
Auch hier wäre eine Gegenüberstellung von "so ist es" und "so soll es" gut.

Zitat
z.b.: happerts da schon an der formatierung der "überschriften" der widgets. wenn man da faul is, und nicht seine eigenen divs für selbige mit einbaut, schaut das schon unterschiedlich aus
Kannst Du mal erklären, was Du meinst? ...bzw. mir mit Screenshots zeigen, was da nicht stimmt?

Gruß,
   Thorsten
FUIP

the ratman

Zitatdass Du "l8fill" und "l9fill" als line style verwendest. Das gibt es bei mir gar nicht, also habe ich das nicht beachtet. Wo ist das her?
das kann man in seinen style einbauen.
wäre bei mir also "ratbrightsvg_defs.svg" und "ratbrightsvg_style.css". standard wäre "svg_defs.svg" und "svg_style.css". siehe beim editorlink von der weboberfläche unter stylefiles.
da wärs vielleicht sogar lustig, eigene styles für die tablet-ui basteln zu können. dann kann sich jeder seine eigenen styles basteln und braucht die eigentlich nur vom original abschreiben *g*.

ZitatKönntest Du mal ein bisschen ins Detail gehen?
man sieht z.b. beim wind-plot, dass ich auf der linken y-achse himmelsrichtungen und auf der rechten y div. einträge für den waf hab, wo selbiger die windstärke im klartext kriegt.
wenn du weiter im shot für die talbet-ui schaust, siehst du beim oberen plot, dass zahlen an der linken y stehen - die sind im originalplot ausgeblendet, bzw. steht im orignalplot ein "set ytics .". es sollte also nur ein "." an der linken y-achse stehen, nicht die zahlen von 0 bis 255.
2 bspl. siehe anhang


ZitatZitat
z.b.: happerts da schon an der formatierung der "überschriften" der widgets. wenn man da faul is, und nicht seine eigenen divs für selbige mit einbaut, schaut das schon unterschiedlich aus

Kannst Du mal erklären, was Du meinst? ...bzw. mir mit Screenshots zeigen, was da nicht stimmt?
vergiss es - war eher als scherz gemeint. das is nix, was man nicht auf einfachste art mit nem div bei deinem html-widget erledigen könnte.
→do↑p!dnʇs↓shit←

Thorsten Pferdekaemper

Zitat von: the ratman am 13 November 2018, 11:53:23
das kann man in seinen style einbauen.
wäre bei mir also "ratbrightsvg_defs.svg" und "ratbrightsvg_style.css". standard wäre "svg_defs.svg" und "svg_style.css". siehe beim editorlink von der weboberfläche unter stylefiles.
da wärs vielleicht sogar lustig, eigene styles für die tablet-ui basteln zu können. dann kann sich jeder seine eigenen styles basteln und braucht die eigentlich nur vom original abschreiben *g*.
Gerade solche Sachen wollte ich bei FUIP eigentlich vermeiden. Der Witz ist ja gerade, dass man ohne HTML, CSS und JS auskommt.
Ich hatte zuerst einfach die Original-Styles benutzt, aber das sieht im Chart recht bescheiden aus. Z.B. scheint mir die Liniendicke da anders "interpretiert" zu werden als im FHEMWEB-SVG. Deshalb habe ich jeweils meine eigene Version dafür gebastelt.
...aber mal sehen, vielleicht fällt mir dazu auch noch was ein.
FUIP

the ratman

is ja derzeit ned wirklich schlimm - freu mich schon, dass da was weiter geht *g*
ich denk halt nur, dass der ideale und universellste zustand wäre, zwar das grundlegende svg bei allen ansichtsarten von fhem verwenden zu können, aber das feintuning bei allen diesen anzeigemöglichkeiten getrennt vornehmen zu können. mein bspl. is da immer ein portrait handy view. ich kann da durchaus meine plots brauchen, muß die aber meistens trotzdem ein 2. mal anlegen, weill sonst mindestens mal die breite nicht passt.



eigene version wäre warscheinlich eh am besten, weil du dann ja alles beeinflussen könntest, linien dicken/arten, füllungen, farben.

dumme idee 1:, wenn man das alles irgendwo fest eintragen könnte für alle plots. also ähnlich dem textfiles für svg's. würd ja ein textfile reichen, wo man einfach zeile für zeile seine farbe rein schreibt. würde man das irgendwann mal ausbauen wollen, könnte man dann mehrere solcher textfiles haben und die wie skinns zu den einzelnen plots dazu laden.

dumme idee 2 wäre - so das geht - dein script die anzahl der benötigten farben/linienarten/füllungen/... abzählen zu lassen und eine entsprechende menge an dropdowns mit entsprechender auswahl zu generieren.
→do↑p!dnʇs↓shit←

Thorsten Pferdekaemper

Hi,
ich habe gerade eine neue Version hochgeladen. Neuigkeiten sind:

data-timeranges: Hier kann man im Konfigurations-Popup aus einer Liste auswählen, was man will.

data-daysago_start/end und data-nofulldays: Das wird aus den Attributen fixedrange, endPlotNow und endPlotToday ermittelt. Bei Stunden-Plots (also fixedrange "hour" oder "<n>hours") ist sozusagen immer "endPlotNow" gesetzt, da das chart Widget das anscheinend nicht anders kann. Bei "<n>years" in Verbindung mit endPlotToday scheint es im chart Widget einen Bug zu geben, der an der x-Achse die falschen Jahre anzeigt. Da müsste ggf. eki mal was machen, denke ich.

Die Offsets aus dem SVG werden (noch) nicht übernommen. (Ich meine damit das Attribut fixedoffset und die Offset-Angabe beim fixedrange-Attribut.)

Probier's mal aus...

Gruß,
   Thorsten
FUIP

the ratman

hehe, das fangt echt an spaß zu machen ...
data-timeranges - fein wärs noch mit stunden zum auswählen - 1,3,6,12 und den tag (also 24h) trozdem auch mit end plot now machen zu können - aber auf jeden fall ist das genau die art von noobfreundlichkeit, die mir gfallt. "mal schnell im vorbeigehen ein paar timeranges ändern ..."

ZitatDie Offsets aus dem SVG werden (noch) nicht übernommen.
freut mich, dass du das im auge hast.


sag: kannst du die (oben schon erwähnten) logeinträge irgendwie weg kriegen. das wird bei ner testseite mit n paar plots und mehrfachen aufrufen ganz schön viel im log *g*. vor allem scheint das ja kein fehler oder sonst was zu sein, sondern nur rauszuschreiben, was die plots so brauchen. ausserdem verlängerst du damit mein leben - bin recht schreckhaft geworden, was logs mit einträgen angeht *g*.
→do↑p!dnʇs↓shit←

Thorsten Pferdekaemper

Zitat von: the ratman am 14 November 2018, 10:24:31freut mich, dass du das im auge hast.
Hier geht's um die Offsets. Das Problem dabei ist, dass das chart Widgets das eigentlich nicht selbst kann. Wenn fixedrange "day" oder "<n>days" ist, dann kann man das ausrechnen und daraus das entsprechende daysago_start/end-Pärchen machen. (Der Offset im SVG ist immer in Tagen, soweit ich das verstehe.) Schwierig wird's halt mit "month"/"year"/"<n>years", insbesondere wenn endPlotToday nicht gesetzt ist.
Vielleicht kümmere ich mich erst einmal um ein paar einfachere Sachen. In der Zwischenzeit baut eki vielleicht was. (@eki: Liest Du hier mit?)
Gruß,
   Thorsten   
FUIP

eki

Ja, ich lese mit. Wie gesagt, ich bin dran, das dauert aber noch (bin gerade anderweitig ziemlich unter Wasser). Wenn Ihr noch warten könnt, dann macht es Sinn, hier nicht zu viel Aufwand im FUIP zu spendieren, sonst machen wir Doppelarbeit.

Thorsten Pferdekaemper

Hi,
danke für die Antwort. Ich bin jetzt schon ziemlich weit, da würde ich gerne noch ein bisschen weitermachen...
Ich habe jetzt mal das mit den yticks versucht. Folgendes HTML schickt den Browser anscheinend in eine Endlosschleife:

<div data-type="chart"
data-device='["HM_21F923","HM_21F923","HM_21F923",""]'
data-logdevice='["logdb_all","logdb_all","logdb_all","logProxy"]'
data-columnspec='["HM_21F923:desired-temp::","HM_21F923:measured-temp::","HM_21F923:actuator::","Func:logProxy_values2Plot([[$from,70],[$to,70],[$to,20],[$from,20]])"]'
                                       data-timeranges='[["Heute","0D","-1D"],["Gestern","1D","0D"],["Aktuelle Woche","0W","-1W"],["Vorherige Woche","1W","0W"],["Aktueller Monat","0M","-1M"],["Vorheriger Monat","1M","0M"],["Aktuelles Jahr","0Y","-1Y"],["Vorheriges Jahr","1Y","0Y"]]' 
                                   data-daysago_start="0Y"  data-daysago_end="-1Y" 
                                       data-nofulldays="false" 
                                       data-yticks_sec='[[22,"Nice"],[20,"Ok"],[18,"Cool"],[16,"Cold"]]'
                                      data-style='["fuipchart l0","fuipchart l1","fuipchart l2","fuipchart l1fill"]'
data-ptype='["lines","lines","lines","lines"]'
data-uaxis='["secondary","secondary","primary","primary"]'
data-legend='["Soll","Ist","Ventil","Test"]';
data-minvalue="0" data-maxvalue="100"
data-minvalue_sec="12" data-maxvalue_sec="25"
data-title="Heizung via logdb"
data-title_class="fuipchart title"
data-ytext="Humidity"
data-ytext_sec="Temperature"
data-legendpos='["left","top"]'
data-width="100%" data-height="100%"
style="width:100%;height:100%;">
</div>

Wenn ich data-yticks_sec weglasse, dann ist alles ok. Irgendwelche Vermutungen?
Gruß,
   Thorsten
FUIP

eki

sieht so aus, als ob das an der Reihenfolge liegt. Die Liste in data-yticks_sec muss in aufsteigender Reihenfolge (was die Werte betrifft) angegeben werden.

Thorsten Pferdekaemper

Das ist wohl tatsächlich so. Ich sortiere den Kram jetzt und es klappt.
Danke&Gruß,
   Thorsten
FUIP

Thorsten Pferdekaemper

Hi,

die "YTicks" gehen jetzt auch. Allerdings mit einem kleinen Problemchen. Wenn ich die yticks für die rechte Y-Achse setze, dann scheint die Berechnung der Ticks für die linke Achse nicht mehr so ganz zu stimmen. Auf dem angehängten Screenshot sieht man, was ich meine.

Das mit dem "Ausblenden" der Zahlen auf einer Achse habe ich nicht richtig hinbekommen. Ich glaube auch, dass die Funktionalität im SVG (also in FHEMWEB) nicht wirklich beabsichtigt war. Jedenfalls funktioniert das so im chart Widget nicht. (Wenn man es so probiert, dann hat man mal wieder eine Endlosschleife.)
Ich habe dann versucht, es doch irgendwie hinzubekommen, aber ohne richtigen Erfolg. In einigen Fällen kann es funktionieren, in der FHEMWEB-Definition so etwas wie

"" 0, "" 100

...einzugeben, wobei 0 und 100 die obere und untere Grenze ist.
Ich denke aber, es wäre sauberer, wenn eine entsprechende Funktion ins chart Widget eingebaut wird.

Die ganzen Log-Ausgaben sollten jetzt auch weg sein.

Gruß,
    Thorsten
FUIP