Ankündigung

Einklappen
Keine Ankündigung bisher.

plot.period Zoom advanced

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Jackhammer
    antwortet
    Funktioniert bei mir!

    Einen Kommentar schreiben:


  • klotzek
    antwortet
    Hallo Wolfram,

    ich habe die develop plot.js ausprobiert: Mit Erfolg.

    Viele Grüße,
    Jürgen


    EDIT: neuen Thread für zweites Problem eröffnet.
    Zuletzt geändert von wvhn; 12.01.2023, 16:03.

    Einen Kommentar schreiben:


  • wvhn
    antwortet
    KleskMS klotzek Jackhammer

    im develop branch ist jetzt ein Fix, der die Nachteile des Workarounds behebt. Ich wäre Euch dankbar, wenn Ihr diesen einmal testen würdet. In smartVISU v3.3 reicht es aus, die Datei ./widgets/plot.js auszutauschen.

    Wenn Ihr die bisherige Datei sichern wollt, macht dies außerhalb der smartVISU-Ordner oder benennt die Endung von ".js" in z.B. ".js-old" um. Anderenfalls wird die alte Datei weiterhin importiert und sorgt für Konflikte.

    Gruß
    Wolfram
    Zuletzt geändert von wvhn; 12.01.2023, 10:27.

    Einen Kommentar schreiben:


  • wvhn
    antwortet
    Die Lösung hat verschiedene Nachteile und ist daher nur temporär anzuwenden. Ich warte noch auf die Antwort von Highsoft, ob das Verhalten, das mit dem workaround kaschiert wird, als Bug eingestuft und gefixt wird. Danach baue ich eine entsprechende Lösung ein.

    Highcharts selbst sieht eine Synchronisierung von Grafiken nicht vor. Es gibt im Netz verschiedene Hinweise, wie dies erreicht werden kann. Man müsste in die Seite dazu eigene Buttons einbauen und mit click-Events für alle Grafiken die xAxis.setExtremes() Methode aufrufen, Beispiel: siehe hier.

    Gruß
    Wolfram

    Einen Kommentar schreiben:


  • Jackhammer
    antwortet
    Bei mir klappt's auch.

    Kann man das irgendwie hinbekommen, dass man mit einem Button die Range aller Charts auf einer Seite verstellt?

    Einen Kommentar schreiben:


  • klotzek
    antwortet
    Hat auch bei mir geholfen. Vielen Dank!

    Einen Kommentar schreiben:


  • KleskMS
    antwortet
    danke, klappt wieder.
    Grüße
    Martin

    Einen Kommentar schreiben:


  • wvhn
    antwortet
    Das ist leider dem Bugfixing zum Opfer gefallen. Weil Highcharts in bestimmten Situationen beim Laden neuer Daten die eingestellte Skalierung der x-Achse überschreibt, musste ich die x-Achse als Workaround neu skalieren. Leider wird dabei auch der eingestellte Rangeselektor ignoriert. Ich adressiere das mal an Highsoft in der Hoffnung, dass man dort Abhilfe schafft.

    Bis dahin kannst Du mal folgenden Workaround testen: in der ./widgets/plot.js die Zeilen 557 bis 579 in folgende if-Anweisung setzen:
    Code:
    if (!chart.options.rangeSelector.selected || chart.options.rangeSelector.selected == ''){
        //... Code Zeilen 557 bis 579 ...
    }
    Das Problem des rangeSelectors ist damit behoben, aber ich konnte noch nicht testen, ob dies anderweitige Nachteile erzeugt.

    Gruß
    Wolfram

    Einen Kommentar schreiben:


  • KleskMS
    antwortet
    Hallo,
    seit dem Update auf Version 3.3.0
    scheint mein selected Aufruf keine Auswirkung mehr auf die Range zu haben:
    Code:
    {{ plot.period('', 'aussen.wetter.wetterstation.temperatur', 'avg', '14d', 'now', '', '', 36500, '', '', '', ['Temperatur in °C', ''], 'advanced', '', '', '', '', '', { rangeSelector: {selected: '3'}}) }}
    Das manuelle verstellen geht weiterhin, jemand eine Idee?

    Einen Kommentar schreiben:


  • wvhn
    antwortet
    Cool. Danke.
    Ich nehme das gerne auch gleich in die Doku auf.

    Gruß
    Wolfram

    Einen Kommentar schreiben:


  • mwinkler
    antwortet
    Dein Hinweis hat mich weitergebracht, aber leicht ist was anderes!

    Für jeden der das gleiche Problem hat. Folgendes hat mir weitergeholfen

    Code:
    { rangeSelector: {selected: '3'}}
    Die 3 war bei mir den Button "1T"

    0 = 3 Std
    1 = 6 Std.

    usw....
    Zuletzt geändert von mwinkler; 19.01.2021, 15:43.

    Einen Kommentar schreiben:


  • wvhn
    antwortet
    Da hast Du mich falsch verstanden. Auf der Dokuseite will ich nur den Code anzeigen, den ich in den vorigen Post hineinkopiert habe. In der Doku wird nämlich nur der Plot angezeigt, aber nicht der zugehörige Code.
    Das Beispiel zeigt, wie eine Lösung prinzipiell aussehen kann. Da ich aktuell stark mit dem kommenden Release ausgelastet bin, bitte ich Dich, die chartoptions aus der highcharts-Doku selbst heraus zu suchen.

    Gruß
    Wolfram

    Einen Kommentar schreiben:


  • mwinkler
    antwortet
    Hallo Wolfram,

    danke für Deine schnelle Antwort. Dann warte ich mal auf Deine Dokuseite.

    Hier noch ein Screenshot. Den rot markierten Button meinte ich. Wenn Du mir hierzu den entsprechenden Eintrag schicken könntest, wäre das echt super.

    Gruß
    Michael

    2021-01-19 13_08_59-Unser Zuhause.png

    Einen Kommentar schreiben:


  • wvhn
    antwortet
    Hallo Michael,

    das geht nicht direkt über die Widget Parameter. Man kann aber mit dem Parameter "chartoptions" zusätzliche Optionen direkt an Highcharts übergeben.
    Auf der Dokuseite (die ich heute Abend an der Stelle noch ergänzen werde) wird zum Beispiel für die Veränderung der Skala der y-Achse und die Verlegung der Legende folgender Aufruf verwendet:
    Code:
    {{ plot.period('', ['bath_plot_value','bath_plot_switch'], 'max', '1d', '', [20,'Off'], [24,'On'], '', ['Temperature','Heating'], '', ['line','stair'], '', '', [1,2], [0,1], '', ['linear', 'boolean'], '°', [MARKIEREN]{ yAxis: [ { tickInterval: 0.5 } ], legend: { verticalAlign: 'bottom', y: -30 } }[/MARKIEREN]) }}
    Gelb markiert sind die Highcharts-Optionen. Welche Option den default zoom level bezeichnet, müsstest Du Dir bitte in der exzellenten Highcharts-Dokumentation selbst heraus suchen.

    Gruß in die Nachbachschaft
    Wolfram

    Einen Kommentar schreiben:


  • mwinkler
    hat ein Thema erstellt plot.period Zoom advanced.

    plot.period Zoom advanced

    Hallo,

    leider habe ich keine Info darüber gefunden, daher wollte ich jetzt mal fragen.

    Ich habe mir einen plot.period erstellt und den zoom auf advanced. Jetzt kann man über die Buttons entsprechende Zeitbereiche aus wählen wie z.B. 3Std,1T usw. Beim Laden der Webseite wird aktuell aber immer "All" ausgewählt. Wie kann ich hier z.B. "1T" als Standard verwenden?

    Gruß
    Michael
Lädt...
X