Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Off Topic
    4. Grafana
    5. Bar Chart: Bars nebeneinander?

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    Bar Chart: Bars nebeneinander?

    This topic has been deleted. Only users with topic management privileges can see it.
    • W
      wolfi913 @Merlin123 last edited by wolfi913

      @merlin123
      Wenn Du die Abfrage in verschiedene Querys (A-E) aufteilst sollten die nebeneinander stehen.
      Kannst ja mal eine Kopie machen und nur z.B. 0_userdata.0.PV_Nur_Einspeisung in der zweiten stehen lassen.
      Sollte das immer noch nicht helfen wäre auch noch möglich die Query B um 1sek mit

        |> timeShift(duration: 1s)
      

      und dann C mit 2s usw. zu verschieben. Sollte aber eigentlich nicht notwendig sein.

      Ergänzung:
      Bei mir funktioniert das so ganz gut. Sogar in Kombination mit Stacking
      Screenshot 2025-02-08 192134.png
      Das geht aber dann nur mit dem timeShift

      Merlin123 1 Reply Last reply Reply Quote 0
      • Merlin123
        Merlin123 @wolfi913 last edited by Merlin123

        @wolfi913 Danke für den Hinweis.
        Der Timeshift ändert aber nichts an der Darstellung
        Die 2. Query sieht jetzt z.B. so aus.

        from(bucket: "iobroker")
          |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
          |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.PV_Eigenverbrauch") 
          |> filter(fn: (r) => r["_field"] == "value")
          |> timeShift(duration: 1s)
          |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
          |> yield(name: "mean")
        

        Zeitraum sind 12 Stunden mit 12 Datenpunkten.

        W 1 Reply Last reply Reply Quote 0
        • W
          wolfi913 @Merlin123 last edited by wolfi913

          @merlin123
          Das timeShift müsste nach dem aggregateWindow rein. Bräuchtest Du aber eigentlich nicht.
          Also z.B. so:

          from(bucket: "iobroker_short")
            |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
            |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.Datenpunkte.usv.verbrauch")
            |> filter(fn: (r) => r["_field"] == "value")
            |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
            |> timeShift(duration: 1s)
          

          Ich hab's mit einem neuen Grafana-Chart gerade bei mir nochmal ausprobiert. Funktioniert bei mir in meinem Test auch ohne einwandfrei. Das bräuchtest Du tatsächlich nur (wie in meinem Beispiel vorher) wenn das ganze in Kombination mit Stacking sein soll.

          Was Du, falls das nicht ohnehin schon drin ist, probieren kannst wäre bei Query options bei MinInterval 1h oder wie in Deinem obigen Chart 30meinzutragen wenn pro Stunde eh nur ein Wert angezeigt werden soll.
          Screenshot 2025-02-08 225848.png
          Du gibst ja in der Query hier

            |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
          

          keinen festen Zeitrahmen every: v.windowPeriod vor.

          Merlin123 1 Reply Last reply Reply Quote 0
          • Merlin123
            Merlin123 @wolfi913 last edited by

            @wolfi913 Ich glaub, ich hab die Ursache. Aber keine Lösung.

            Es werden pro Stunde X Werte geschrieben. X kann jede Stunde anders sein und für jeden anzuzeigenden Wert.
            Ich protokolliere halt jede Änderung des Datenpunktes.
            Er soll eigentlich den Durchschnittswert für den Zeitraum anzeigen (also in dem Fall für die Stunde).
            Ich hatte in den Query Option die Zahl der Datenpunkte auf 12 gestellt um eine Säule pro Stunde zu bekommen. Dann macht der die Bars aber übereinander. Wenn ich die Zahl nicht vorgebe geht es, aber dann ist das Diagramm halt nicht mehr lesbar....
            Hast Du ne Idee, wie ich das dann machen müsste?

            Screenshot 2025-02-09 002343.png

            Screenshot 2025-02-09 002403.png

            W 1 Reply Last reply Reply Quote 0
            • W
              wolfi913 @Merlin123 last edited by

              @merlin123
              Mach mal

                |> aggregateWindow(every: 1h, fn: mean, createEmpty: false)
              

              in die Query. Also das v.windowPeriod durch 1h ersetzen

              Merlin123 1 Reply Last reply Reply Quote 0
              • Merlin123
                Merlin123 @wolfi913 last edited by Merlin123

                @wolfi913 Ah... Das sieht schon besser aus.... Mal schauen, ob ich das damit komplett hinbekomme. Das blöde an der Lösung: In meiner alten Version mit Linie konnte ich den anzuzeigenden Zeitraum in der URL mitgeben und habe nur eine Grafik für 4 verschiedene Zeiträume benötigt. Muss mal schauen, ob ich das hier auch machen kann.

                Mal davon abgesehen, dass das aktuell schlecht erkennbar ist 😉
                Ich kann zwar den Timeshift erhöhen, aber dadurch zeigen die Bars halt verschiedene Zeiträume an. Auch nicht im Sinne des Erfinders. Muss da 15 Minuten einstellen, damit die Bars nebeneinander sind 😞

                Auf jeden Fall schonmal vielen Dank! 🙂

                Screenshot 2025-02-09 081438.png

                W 1 Reply Last reply Reply Quote 0
                • W
                  wolfi913 @Merlin123 last edited by wolfi913

                  @merlin123 sagte in Bar Chart: Bars nebeneinander?:

                  In meiner alten Version mit Linie konnte ich den anzuzeigenden Zeitraum in der URL mitgeben und habe nur eine Grafik für 4 verschiedene Zeiträume benötigt. Muss mal schauen, ob ich das hier auch machen kann.

                  Warum solltest Du den Zeitraum in der URL nicht mitschicken können. Der greift doch auf:

                    |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                  

                  Und (wie schon ober geschrieben) den timeShift solltest Du normalerweise nicht brauchen.
                  Das ist eigentlich nur für spezielle Fälle notwendig.

                  Ich vermute mal das Du in den Overrides da was eingestellt hast. Die Balken sollten eigentlich standardmäßig nebeneinander liegen wenn da nichts spezielles eingestellt ist.

                  Merlin123 1 Reply Last reply Reply Quote 0
                  • Merlin123
                    Merlin123 @wolfi913 last edited by

                    @wolfi913 Hab jetzt nochmal ein neues Chart angelegt. Da nur auf Bar umgestellt und die zwei Querys als A und B reingemacht:

                      from(bucket: "iobroker")
                      |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                      |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.PV_Produktion")
                      |> filter(fn: (r) => r["_field"] == "value")
                      |> aggregateWindow(every: 1h, fn: mean, createEmpty: false)
                      
                      from(bucket: "iobroker")
                      |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                      |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.PV_Eigenverbrauch")
                      |> filter(fn: (r) => r["_field"] == "value")
                      |> aggregateWindow(every: 1h, fn: mean, createEmpty: false)
                    

                    Stack Series ist auf Off, das kommt raus 😞

                    Screenshot 2025-02-09 123447.png

                    Auch wenn ich bei den Query Options als min Intervall 30m oder 1h reinmache ändert das nix.
                    Options sehen ohne eigene Einträge so aus:
                    Screenshot 2025-02-09 123918.png

                    W 1 Reply Last reply Reply Quote 0
                    • W
                      wolfi913 @Merlin123 last edited by wolfi913

                      @merlin123
                      Da bin ich dann auch ratlos. Vielleicht hat ja jemand anderes noch eine Idee dazu. 🤷‍♂️

                      Das, was Du ohnehin schon probiert hast, wäre nämlich noch mein letzter Vorschlag gewesen. Alles in ein neues Panel ohne vorherige Einstellungen zu packen und mal zu schauen was da rauskommt. Also nur Einstellungen Bar Chart und die Query. Sollte eigentlich mit einer klappen wenn Du die vom Anfang nimmst und das v.windowPeriod durch 1h ersetzt. Also so:

                      from(bucket: "iobroker")
                        |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                        |> filter(fn: (r) => r["_measurement"] == "0_userdata.0.PV_Produktion" 
                        or r["_measurement"] == "0_userdata.0.PV_Eigenverbrauch" 
                        or r["_measurement"] == "0_userdata.0.PV_Netzbezug" 
                        or r["_measurement"] == "0_userdata.0.PV_Wallbox" 
                        or r["_measurement"] == "0_userdata.0.PV_Nur_Einspeisung")
                        |> filter(fn: (r) => r["_field"] == "value")
                        |> aggregateWindow(every: 1h, fn: mean, createEmpty: false)
                      

                      oder wie auch bereits versucht aufgeteilt in mehrere Querys.

                      Warum das bei Deinem Grafana nicht so problemlos klappt und er die Werte einfach in ein Stacking packt und nicht einfach nebeneinander...???
                      Leider gehen mir die Ideen aus. Sorry

                      Merlin123 1 Reply Last reply Reply Quote 0
                      • Merlin123
                        Merlin123 @wolfi913 last edited by

                        @wolfi913 Hab es nochmal mit nem neuen und einer "großen" Query probiert, leider selber Effekt 😞

                        Dank Dir trotzdem für Deine Hilfe!

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        623
                        Online

                        31.6k
                        Users

                        79.5k
                        Topics

                        1.3m
                        Posts

                        2
                        11
                        370
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo