Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Off Topic
  4. Grafana
  5. Maximalwerte in Grafik verändern sich Zeitabhängig [gel]

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.0k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    927

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Maximalwerte in Grafik verändern sich Zeitabhängig [gel]

Geplant Angeheftet Gesperrt Verschoben Grafana
16 Beiträge 5 Kommentatoren 598 Aufrufe 4 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • DuffyD Offline
    DuffyD Offline
    Duffy
    schrieb am zuletzt editiert von Duffy
    #1

    Hallo zusammen,

    ich habe da so ein Verständnisproblem.

    Ich frage meinen Stromzähler ab und lasse mir das über Influx DB dokumentieren und über Grafana darstellen.

    Für meine Frage nehme ich jetzt mal den Zeitpunkt kurz vor 12:00 Uhr.

    Wenn ich mir die letzten 3 Stunden darstellen lasse habe ich da einen Wert von -1021 Watt.

    71a911b0-5bd4-4a85-8181-a5335fbd6d2c-grafik.png

    Wenn ich aber die letzten 12 Stunden anzeigen lasse sind es nur noch -779 Watt

    d83001bc-99b1-47ea-ada0-102cc7cc2f81-grafik.png

    Die Abfrage für die Werte sieht so aus:

    from(bucket: "iob-Kurzzeit")
      |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
      |> filter(fn: (r) => r["_measurement"] == "Stromzähler")
      |> filter(fn: (r) => r["_field"] == "value")
      |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
      |> yield(name: "mean")
    

    Kann mir jemand sagen was ich da falsch mache? Wenn der Wert um 12 Uhr -1021 war kann er ja nicht plötzlich kleiner sein nur weil ich mir einen anderen Zeitraum in der Grafik anzeigen lasse.

    VG Duffy

    Edit: Ok die Werte liegen 20 sec auseinander aber bei der 12 Stunden Darstellung gibt es den Wert um 11:59:40 gar nicht mehr. Werden da irgendwelche Mittelwerte berechnet?

    Nix besonderes; iob auf Respberry pi 4 (8GB) mit 32 GB SSD
    Node.js: v22.22.0
    NPM: 10.9.4
    js-controller 7.0.7
    Linux: Trixie

    haselchenH Marc BergM OliverIOO 3 Antworten Letzte Antwort
    0
    • DuffyD Duffy

      Hallo zusammen,

      ich habe da so ein Verständnisproblem.

      Ich frage meinen Stromzähler ab und lasse mir das über Influx DB dokumentieren und über Grafana darstellen.

      Für meine Frage nehme ich jetzt mal den Zeitpunkt kurz vor 12:00 Uhr.

      Wenn ich mir die letzten 3 Stunden darstellen lasse habe ich da einen Wert von -1021 Watt.

      71a911b0-5bd4-4a85-8181-a5335fbd6d2c-grafik.png

      Wenn ich aber die letzten 12 Stunden anzeigen lasse sind es nur noch -779 Watt

      d83001bc-99b1-47ea-ada0-102cc7cc2f81-grafik.png

      Die Abfrage für die Werte sieht so aus:

      from(bucket: "iob-Kurzzeit")
        |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
        |> filter(fn: (r) => r["_measurement"] == "Stromzähler")
        |> filter(fn: (r) => r["_field"] == "value")
        |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
        |> yield(name: "mean")
      

      Kann mir jemand sagen was ich da falsch mache? Wenn der Wert um 12 Uhr -1021 war kann er ja nicht plötzlich kleiner sein nur weil ich mir einen anderen Zeitraum in der Grafik anzeigen lasse.

      VG Duffy

      Edit: Ok die Werte liegen 20 sec auseinander aber bei der 12 Stunden Darstellung gibt es den Wert um 11:59:40 gar nicht mehr. Werden da irgendwelche Mittelwerte berechnet?

      haselchenH Offline
      haselchenH Offline
      haselchen
      Most Active
      schrieb am zuletzt editiert von haselchen
      #2

      @duffy

      Vielleicht liegt es an den 20sek Unterschied ;)

      12:00:00

      11:59:40

      Edit: hast Du anscheinend selber bemerkt.

      Synology DS218+ & 2 x Fujitsu Esprimo (VM/Container) + FritzBox7590 + 2 AVM 3000 Repeater & Homematic & HUE & Osram & Xiaomi, NPM 10.9.4, Nodejs 22.21.0 ,JS Controller 7.0.7 ,Admin 7.7.19

      1 Antwort Letzte Antwort
      0
      • DuffyD Duffy

        Hallo zusammen,

        ich habe da so ein Verständnisproblem.

        Ich frage meinen Stromzähler ab und lasse mir das über Influx DB dokumentieren und über Grafana darstellen.

        Für meine Frage nehme ich jetzt mal den Zeitpunkt kurz vor 12:00 Uhr.

        Wenn ich mir die letzten 3 Stunden darstellen lasse habe ich da einen Wert von -1021 Watt.

        71a911b0-5bd4-4a85-8181-a5335fbd6d2c-grafik.png

        Wenn ich aber die letzten 12 Stunden anzeigen lasse sind es nur noch -779 Watt

        d83001bc-99b1-47ea-ada0-102cc7cc2f81-grafik.png

        Die Abfrage für die Werte sieht so aus:

        from(bucket: "iob-Kurzzeit")
          |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
          |> filter(fn: (r) => r["_measurement"] == "Stromzähler")
          |> filter(fn: (r) => r["_field"] == "value")
          |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
          |> yield(name: "mean")
        

        Kann mir jemand sagen was ich da falsch mache? Wenn der Wert um 12 Uhr -1021 war kann er ja nicht plötzlich kleiner sein nur weil ich mir einen anderen Zeitraum in der Grafik anzeigen lasse.

        VG Duffy

        Edit: Ok die Werte liegen 20 sec auseinander aber bei der 12 Stunden Darstellung gibt es den Wert um 11:59:40 gar nicht mehr. Werden da irgendwelche Mittelwerte berechnet?

        Marc BergM Offline
        Marc BergM Offline
        Marc Berg
        Most Active
        schrieb am zuletzt editiert von Marc Berg
        #3

        @duffy sagte in Maximalwerte in Grafik verändern sich Zeitabhängig:

        Werden da irgendwelche Mittelwerte berechnet?

        Ja, steht ja auch in deiner Abfrage:

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

        Das "Window" ist je nach angezeigtem Zeitraum dynamisch und damit ändern sich auch die Mittelwerte.

        NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+EMQX+Grafana

        Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

        Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

        1 Antwort Letzte Antwort
        0
        • DuffyD Duffy

          Hallo zusammen,

          ich habe da so ein Verständnisproblem.

          Ich frage meinen Stromzähler ab und lasse mir das über Influx DB dokumentieren und über Grafana darstellen.

          Für meine Frage nehme ich jetzt mal den Zeitpunkt kurz vor 12:00 Uhr.

          Wenn ich mir die letzten 3 Stunden darstellen lasse habe ich da einen Wert von -1021 Watt.

          71a911b0-5bd4-4a85-8181-a5335fbd6d2c-grafik.png

          Wenn ich aber die letzten 12 Stunden anzeigen lasse sind es nur noch -779 Watt

          d83001bc-99b1-47ea-ada0-102cc7cc2f81-grafik.png

          Die Abfrage für die Werte sieht so aus:

          from(bucket: "iob-Kurzzeit")
            |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
            |> filter(fn: (r) => r["_measurement"] == "Stromzähler")
            |> filter(fn: (r) => r["_field"] == "value")
            |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false)
            |> yield(name: "mean")
          

          Kann mir jemand sagen was ich da falsch mache? Wenn der Wert um 12 Uhr -1021 war kann er ja nicht plötzlich kleiner sein nur weil ich mir einen anderen Zeitraum in der Grafik anzeigen lasse.

          VG Duffy

          Edit: Ok die Werte liegen 20 sec auseinander aber bei der 12 Stunden Darstellung gibt es den Wert um 11:59:40 gar nicht mehr. Werden da irgendwelche Mittelwerte berechnet?

          OliverIOO Offline
          OliverIOO Offline
          OliverIO
          schrieb am zuletzt editiert von OliverIO
          #4

          @duffy

          Ohne es ganz genau zu wissen.
          Du hast in der Abfrage mean stehen.
          Wenn die datenbasis nun relativ kleinteilig die Werte aufzeichnet, sagen wir mehrmals pro Sekunde, dann wird nicht jeder Wert tatsächlich angezeigt, sondern auf eine bestimmte Zeitspanne (v.windowPeriod) gemittelt (mean)

          Wenn der gesamtzeitraum nun kleiner ist und du selbst keine Vorgaben machst, dann ist die zeitscheie bei unterschiedlichen gesamtzeiträumen unterschiedlich und dann kann bei stark schwankenden Werten auch relevant unterschiedliche Ergebnisse kommen.
          Du könntest die zeitscheibe (also windowPeriod) fest vorgeben (bspw eine Minute) dann dürfte, egal welcher Zeitraum ausgewählt wurde auch die Anzeige des Einzelwerten gleich sein.
          Nachteil: wenn du dir mit der gleichen Abfrage auch mal sehr große Zeiträume (1 Jahr) anzeigen willst, hat die machine mehr zu tun und dann können werte uU auch nicht immer angezeigt werden.
          (1000 Werte können in Balken zu 1px breite nicht in einem Kasten mit 100px Breite exakt angezeigt werden)

          Meine Adapter und Widgets
          TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
          Links im Profil

          DuffyD 1 Antwort Letzte Antwort
          1
          • OliverIOO OliverIO

            @duffy

            Ohne es ganz genau zu wissen.
            Du hast in der Abfrage mean stehen.
            Wenn die datenbasis nun relativ kleinteilig die Werte aufzeichnet, sagen wir mehrmals pro Sekunde, dann wird nicht jeder Wert tatsächlich angezeigt, sondern auf eine bestimmte Zeitspanne (v.windowPeriod) gemittelt (mean)

            Wenn der gesamtzeitraum nun kleiner ist und du selbst keine Vorgaben machst, dann ist die zeitscheie bei unterschiedlichen gesamtzeiträumen unterschiedlich und dann kann bei stark schwankenden Werten auch relevant unterschiedliche Ergebnisse kommen.
            Du könntest die zeitscheibe (also windowPeriod) fest vorgeben (bspw eine Minute) dann dürfte, egal welcher Zeitraum ausgewählt wurde auch die Anzeige des Einzelwerten gleich sein.
            Nachteil: wenn du dir mit der gleichen Abfrage auch mal sehr große Zeiträume (1 Jahr) anzeigen willst, hat die machine mehr zu tun und dann können werte uU auch nicht immer angezeigt werden.
            (1000 Werte können in Balken zu 1px breite nicht in einem Kasten mit 100px Breite exakt angezeigt werden)

            DuffyD Offline
            DuffyD Offline
            Duffy
            schrieb am zuletzt editiert von
            #5

            @oliverio sagte in Maximalwerte in Grafik verändern sich Zeitabhängig:

            Du könntest die zeitscheibe (also windowPeriod) fest vorgeben (bspw eine Minute) dann dürfte, egal welcher Zeitraum ausgewählt wurde auch die Anzeige des Einzelwerten gleich sein.

            Das würde ich gerne mal probieren. Verrätst du mir bitte wie ich, für das Beispiel, eine Minute festlegen kann.

            Die oben dargestellte Abfrage kommt aus influx und auuser raus kopieren mache ich da gar nichts, soll heissen ich habe keine Ahnung.

            @oliverio sagte in Maximalwerte in Grafik verändern sich Zeitabhängig:

            Nachteil: wenn du dir mit der gleichen Abfrage auch mal sehr große Zeiträume (1 Jahr) anzeigen willst, hat die machine mehr zu tun und dann können werte uU auch nicht immer angezeigt werden.

            Aber 1 Jahr wäre bei der aktuellen Abfrage ja auch nicht aussagekräftig sogesehen ein Versuch wert.

            VG Duffy

            Nix besonderes; iob auf Respberry pi 4 (8GB) mit 32 GB SSD
            Node.js: v22.22.0
            NPM: 10.9.4
            js-controller 7.0.7
            Linux: Trixie

            OliverIOO 1 Antwort Letzte Antwort
            0
            • DuffyD Duffy

              @oliverio sagte in Maximalwerte in Grafik verändern sich Zeitabhängig:

              Du könntest die zeitscheibe (also windowPeriod) fest vorgeben (bspw eine Minute) dann dürfte, egal welcher Zeitraum ausgewählt wurde auch die Anzeige des Einzelwerten gleich sein.

              Das würde ich gerne mal probieren. Verrätst du mir bitte wie ich, für das Beispiel, eine Minute festlegen kann.

              Die oben dargestellte Abfrage kommt aus influx und auuser raus kopieren mache ich da gar nichts, soll heissen ich habe keine Ahnung.

              @oliverio sagte in Maximalwerte in Grafik verändern sich Zeitabhängig:

              Nachteil: wenn du dir mit der gleichen Abfrage auch mal sehr große Zeiträume (1 Jahr) anzeigen willst, hat die machine mehr zu tun und dann können werte uU auch nicht immer angezeigt werden.

              Aber 1 Jahr wäre bei der aktuellen Abfrage ja auch nicht aussagekräftig sogesehen ein Versuch wert.

              VG Duffy

              OliverIOO Offline
              OliverIOO Offline
              OliverIO
              schrieb am zuletzt editiert von OliverIO
              #6

              @duffy

              Ich kopiere dir am besten mal die Ausgabe von ChatGPT
              Da dort ein Beispiel dran steht, wie du das Zeitfenster bei unterschiedlichen Zeitlängen definieren kannst, also dann, wenn du sehr viele Werte abfragst, dass dann die Zajc Scheibe nicht nur 1 Minute, sondern 5 Minuten oder 1 Stunde ist

              In deiner Flux-Abfrage ist die Aggregat-Zeitspanne (aggregateWindow) aktuell an die Variable v.windowPeriod gebunden – diese wird meist in Grafana oder ähnlichen Tools automatisch durch die UI gesetzt (z. B. abhängig vom Zoom-Level).

              Wenn du fix eine Aggregation auf 1 Minute möchtest, ersetze v.windowPeriod einfach durch "1m".

              👉 Beispiel:

              from(bucket: "iob-Kurzzeit")
                |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                |> filter(fn: (r) => r["_measurement"] == "Stromzähler")
                |> filter(fn: (r) => r["_field"] == "value")
                |> aggregateWindow(every: 1m, fn: mean, createEmpty: false)
                |> yield(name: "mean")
              

              Erklärung:

              • every: 1m → definiert eine feste Aggregationsbreite von 1 Minute.
              • fn: mean → bildet den Durchschnitt aller Werte innerhalb dieser Minute.
              • createEmpty: false → erzeugt keine leeren Zeitfenster, wenn in einem Intervall keine Daten vorhanden sind.

              Falls du stattdessen lieber dynamisch bleiben, aber eine Mindestgröße erzwingen willst (z. B. nie kleiner als 1 Minute), kann man auch folgendes machen:

              every = if v.windowPeriod < 1m then 1m else v.windowPeriod
              
              from(bucket: "iob-Kurzzeit")
                |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                |> filter(fn: (r) => r["_measurement"] == "Stromzähler")
                |> filter(fn: (r) => r["_field"] == "value")
                |> aggregateWindow(every: every, fn: mean, createEmpty: false)
                |> yield(name: "mean")
              

              💡 Damit kannst du sowohl in Grafana weiter dynamisch zoomen, als auch sicherstellen, dass die Aggregation nie feiner als 1 Minute wird.

              Hier noch die Dokumentation der aggregate Funktion
              https://docs.influxdata.com/flux/v0/stdlib/universe/aggregatewindow/

              Meine Adapter und Widgets
              TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
              Links im Profil

              DuffyD 1 Antwort Letzte Antwort
              1
              • OliverIOO OliverIO

                @duffy

                Ich kopiere dir am besten mal die Ausgabe von ChatGPT
                Da dort ein Beispiel dran steht, wie du das Zeitfenster bei unterschiedlichen Zeitlängen definieren kannst, also dann, wenn du sehr viele Werte abfragst, dass dann die Zajc Scheibe nicht nur 1 Minute, sondern 5 Minuten oder 1 Stunde ist

                In deiner Flux-Abfrage ist die Aggregat-Zeitspanne (aggregateWindow) aktuell an die Variable v.windowPeriod gebunden – diese wird meist in Grafana oder ähnlichen Tools automatisch durch die UI gesetzt (z. B. abhängig vom Zoom-Level).

                Wenn du fix eine Aggregation auf 1 Minute möchtest, ersetze v.windowPeriod einfach durch "1m".

                👉 Beispiel:

                from(bucket: "iob-Kurzzeit")
                  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                  |> filter(fn: (r) => r["_measurement"] == "Stromzähler")
                  |> filter(fn: (r) => r["_field"] == "value")
                  |> aggregateWindow(every: 1m, fn: mean, createEmpty: false)
                  |> yield(name: "mean")
                

                Erklärung:

                • every: 1m → definiert eine feste Aggregationsbreite von 1 Minute.
                • fn: mean → bildet den Durchschnitt aller Werte innerhalb dieser Minute.
                • createEmpty: false → erzeugt keine leeren Zeitfenster, wenn in einem Intervall keine Daten vorhanden sind.

                Falls du stattdessen lieber dynamisch bleiben, aber eine Mindestgröße erzwingen willst (z. B. nie kleiner als 1 Minute), kann man auch folgendes machen:

                every = if v.windowPeriod < 1m then 1m else v.windowPeriod
                
                from(bucket: "iob-Kurzzeit")
                  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                  |> filter(fn: (r) => r["_measurement"] == "Stromzähler")
                  |> filter(fn: (r) => r["_field"] == "value")
                  |> aggregateWindow(every: every, fn: mean, createEmpty: false)
                  |> yield(name: "mean")
                

                💡 Damit kannst du sowohl in Grafana weiter dynamisch zoomen, als auch sicherstellen, dass die Aggregation nie feiner als 1 Minute wird.

                Hier noch die Dokumentation der aggregate Funktion
                https://docs.influxdata.com/flux/v0/stdlib/universe/aggregatewindow/

                DuffyD Offline
                DuffyD Offline
                Duffy
                schrieb am zuletzt editiert von Duffy
                #7

                @oliverio @Marc-Berg

                Guten Morgen ihr Zwei,

                vielen Dank für deine Erklärung.
                Ich habe das einmal so versucht, hat auch geklappt aber es wird jetzt noch weniger angezeigt. In so weit klar da es ja von den Werten aus einer Minute resultiert.

                903fc374-ead9-416b-b7bc-6c3fdf58bad2-grafik.png

                Ich habe einmal die Werte zwischen 11:59 und 12:00 herausgesucht:

                e533ecad-f8e6-4f44-ab21-61c1c7605ded-grafik.png

                Auf die Idee mit der Ki bin ich in diesem Zusammenhang noch gar nicht gekommen aber die hat mir dann eine Lösung ausgespuckt:

                minValues = from(bucket: "iob-Kurzzeit")
                |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                |> filter(fn: (r) => r["_measurement"] == "Stromzähler")
                |> filter(fn: (r) => r["_field"] == "value")
                |> aggregateWindow(every: 1m, fn: min, createEmpty: false)
                |> yield(name: "min")

                maxValues = from(bucket: "iob-Kurzzeit")
                |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                |> filter(fn: (r) => r["_measurement"] == "Stromzähler")
                |> filter(fn: (r) => r["_field"] == "value")
                |> aggregateWindow(every: 1m, fn: max, createEmpty: false)
                |> yield(name: "max")

                union(tables: [minValues, maxValues])

                Das zeigt jetzt die min und max Werte in einer Minute.

                97096bba-11d7-4a5b-98c7-8248824e25ec-grafik.png

                Aber es kommt eine Meldung"Daten ausserhalb des Zeitbereichs auf Daten zoomem"
                Wenn ich da drauf klicke:

                39d22eac-4407-4198-81b3-176801cd5af2-grafik.png

                Kommt aber nur das.
                Wie kann ich das weg bekommen?

                Aber ansonsten bin ich auf jeden Fall mal weiter gekommen. Danke.

                VG Duffy

                Nix besonderes; iob auf Respberry pi 4 (8GB) mit 32 GB SSD
                Node.js: v22.22.0
                NPM: 10.9.4
                js-controller 7.0.7
                Linux: Trixie

                OliverIOO Marc BergM 2 Antworten Letzte Antwort
                0
                • DuffyD Duffy

                  @oliverio @Marc-Berg

                  Guten Morgen ihr Zwei,

                  vielen Dank für deine Erklärung.
                  Ich habe das einmal so versucht, hat auch geklappt aber es wird jetzt noch weniger angezeigt. In so weit klar da es ja von den Werten aus einer Minute resultiert.

                  903fc374-ead9-416b-b7bc-6c3fdf58bad2-grafik.png

                  Ich habe einmal die Werte zwischen 11:59 und 12:00 herausgesucht:

                  e533ecad-f8e6-4f44-ab21-61c1c7605ded-grafik.png

                  Auf die Idee mit der Ki bin ich in diesem Zusammenhang noch gar nicht gekommen aber die hat mir dann eine Lösung ausgespuckt:

                  minValues = from(bucket: "iob-Kurzzeit")
                  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                  |> filter(fn: (r) => r["_measurement"] == "Stromzähler")
                  |> filter(fn: (r) => r["_field"] == "value")
                  |> aggregateWindow(every: 1m, fn: min, createEmpty: false)
                  |> yield(name: "min")

                  maxValues = from(bucket: "iob-Kurzzeit")
                  |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                  |> filter(fn: (r) => r["_measurement"] == "Stromzähler")
                  |> filter(fn: (r) => r["_field"] == "value")
                  |> aggregateWindow(every: 1m, fn: max, createEmpty: false)
                  |> yield(name: "max")

                  union(tables: [minValues, maxValues])

                  Das zeigt jetzt die min und max Werte in einer Minute.

                  97096bba-11d7-4a5b-98c7-8248824e25ec-grafik.png

                  Aber es kommt eine Meldung"Daten ausserhalb des Zeitbereichs auf Daten zoomem"
                  Wenn ich da drauf klicke:

                  39d22eac-4407-4198-81b3-176801cd5af2-grafik.png

                  Kommt aber nur das.
                  Wie kann ich das weg bekommen?

                  Aber ansonsten bin ich auf jeden Fall mal weiter gekommen. Danke.

                  VG Duffy

                  OliverIOO Offline
                  OliverIOO Offline
                  OliverIO
                  schrieb am zuletzt editiert von
                  #8

                  @duffy

                  Du hast mit 11:59 bis 00:00 natürlich ein anderes Extrembeispiel gewählt.

                  Du willst exakt eine Minute anzeigen mit einer aggregation auf 1 Minute.
                  theoretisch hätte ich jetzt genau einen Balken erwartet. Aber evtl zeigten dann jeden einzelnen Wert als Balken an.

                  Das 2. ist wieder eine komplett andere Abfrage.
                  2 Abfragen mit jeweils Alls min und max Werte die dann mit einem Union wieder ein eine Tabelle verschmolzen wird

                  Dann müsstet Du mal sagen was Du eigentlich erreichen wills

                  Meine Adapter und Widgets
                  TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                  Links im Profil

                  DuffyD 1 Antwort Letzte Antwort
                  0
                  • DuffyD Duffy

                    @oliverio @Marc-Berg

                    Guten Morgen ihr Zwei,

                    vielen Dank für deine Erklärung.
                    Ich habe das einmal so versucht, hat auch geklappt aber es wird jetzt noch weniger angezeigt. In so weit klar da es ja von den Werten aus einer Minute resultiert.

                    903fc374-ead9-416b-b7bc-6c3fdf58bad2-grafik.png

                    Ich habe einmal die Werte zwischen 11:59 und 12:00 herausgesucht:

                    e533ecad-f8e6-4f44-ab21-61c1c7605ded-grafik.png

                    Auf die Idee mit der Ki bin ich in diesem Zusammenhang noch gar nicht gekommen aber die hat mir dann eine Lösung ausgespuckt:

                    minValues = from(bucket: "iob-Kurzzeit")
                    |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                    |> filter(fn: (r) => r["_measurement"] == "Stromzähler")
                    |> filter(fn: (r) => r["_field"] == "value")
                    |> aggregateWindow(every: 1m, fn: min, createEmpty: false)
                    |> yield(name: "min")

                    maxValues = from(bucket: "iob-Kurzzeit")
                    |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                    |> filter(fn: (r) => r["_measurement"] == "Stromzähler")
                    |> filter(fn: (r) => r["_field"] == "value")
                    |> aggregateWindow(every: 1m, fn: max, createEmpty: false)
                    |> yield(name: "max")

                    union(tables: [minValues, maxValues])

                    Das zeigt jetzt die min und max Werte in einer Minute.

                    97096bba-11d7-4a5b-98c7-8248824e25ec-grafik.png

                    Aber es kommt eine Meldung"Daten ausserhalb des Zeitbereichs auf Daten zoomem"
                    Wenn ich da drauf klicke:

                    39d22eac-4407-4198-81b3-176801cd5af2-grafik.png

                    Kommt aber nur das.
                    Wie kann ich das weg bekommen?

                    Aber ansonsten bin ich auf jeden Fall mal weiter gekommen. Danke.

                    VG Duffy

                    Marc BergM Offline
                    Marc BergM Offline
                    Marc Berg
                    Most Active
                    schrieb am zuletzt editiert von
                    #9

                    @duffy sagte in Maximalwerte in Grafik verändern sich Zeitabhängig:

                    minValues = from(bucket: "iob-Kurzzeit")
                    |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                    |> filter(fn: (r) => r["_measurement"] == "Stromzähler")
                    |> filter(fn: (r) => r["_field"] == "value")
                    |> aggregateWindow(every: 1m, fn: min, createEmpty: false)
                    |> yield(name: "min")

                    Ich finde es immer problematisch, mit fixen Zeitfenstern zu arbeiten, wenn man zoomen will. Entweder werden dabei zu viele oder aber zu wenige Datensätze an Grafana übergeben.

                    Durch den MIN/MAX Ansatz kannst du jetzt aber wieder mit variablen Fenstern arbeiten. Die Minima und Maxima bleiben dabei konstant. Außerdem würde ich nur eine Abfrage an die DB starten und zwischenspeichern.

                    Versuch's mal so:

                    data=from(bucket: "iob-Kurzzeit")
                        |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                        |> filter(fn: (r) => r._measurement == "Stromzähler" and r._field == "value")
                    
                    // Maximale positive Werte
                    maxPositive = data
                      |> filter(fn: (r) => r._value >= 0)
                      |> aggregateWindow(every: v.windowPeriod, fn: max, createEmpty: false)
                    
                    // Minimale negative Werte
                    minNegative = data
                      |> filter(fn: (r) => r._value < 0)
                      |> aggregateWindow(every: v.windowPeriod, fn: min, createEmpty: false)
                    
                    union(tables: [maxPositive, minNegative])
                      |> sort(columns: ["_time"], desc: false)
                      |> yield(name: "extrema")
                    

                    NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+EMQX+Grafana

                    Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

                    Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

                    DuffyD OliverIOO 2 Antworten Letzte Antwort
                    1
                    • OliverIOO OliverIO

                      @duffy

                      Du hast mit 11:59 bis 00:00 natürlich ein anderes Extrembeispiel gewählt.

                      Du willst exakt eine Minute anzeigen mit einer aggregation auf 1 Minute.
                      theoretisch hätte ich jetzt genau einen Balken erwartet. Aber evtl zeigten dann jeden einzelnen Wert als Balken an.

                      Das 2. ist wieder eine komplett andere Abfrage.
                      2 Abfragen mit jeweils Alls min und max Werte die dann mit einem Union wieder ein eine Tabelle verschmolzen wird

                      Dann müsstet Du mal sagen was Du eigentlich erreichen wills

                      DuffyD Offline
                      DuffyD Offline
                      Duffy
                      schrieb am zuletzt editiert von
                      #10

                      @oliverio sagte in Maximalwerte in Grafik verändern sich Zeitabhängig:

                      Dann müsstet Du mal sagen was Du eigentlich erreichen wills

                      Im grunde möchte ich nur in der Grafik angezeigt bekommen wann zb in den letzen 2 oder x Tagen die höchste Strom Einspeisung war, also der maximale Einspeisewert. Wenn jetzt auch noch der höchste Verbrauch angezeigt wird, auch gut.

                      Es ist mir auch schon das gleiche aufgefallen bei meinem Windmesser. Auch hier wurde durch "mean" immer der Durchschnitt angezeigt. Aber der ist ja eigentlich egal denn entscheidend wäre ja, wieder blödes Beispiel, wann wieviel Wind war als die Dachziegel vom Dach geflogen sind. (Ist nicht passiert soll nur meine Fragestellung veranschaulichen)

                      Aber so ganz logisch finde ich das mit dem Durchschnitt auch nicht. Wenn ich beispielsweise die Aussentemperaturen aufzeichnen würde und ich hätte am 15.08. 30°C.
                      Wenn ich nun zB Oktober wieder in die Grafik schauen würde hätte ich am 15.08. aufgrund des Durchschnitts nur noch 25,6°C. Ist ja schon was anderes. (auch nur ein Beispiel)

                      @oliverio sagte in Maximalwerte in Grafik verändern sich Zeitabhängig:

                      Das 2. ist wieder eine komplett andere Abfrage.
                      2 Abfragen mit jeweils Alls min und max Werte die dann mit einem Union wieder ein eine Tabelle verschmolzen wird

                      Das ist richtig, das hatte sich bei der Nutzung der KI nur gerade so ergeben. Ich hatte nach Max gefragt dabei aber nicht bedacht das es ja min sein muss. So habe ich halt mal beide abgefragt :-)

                      VG Duffy

                      Nix besonderes; iob auf Respberry pi 4 (8GB) mit 32 GB SSD
                      Node.js: v22.22.0
                      NPM: 10.9.4
                      js-controller 7.0.7
                      Linux: Trixie

                      1 Antwort Letzte Antwort
                      0
                      • Marc BergM Marc Berg

                        @duffy sagte in Maximalwerte in Grafik verändern sich Zeitabhängig:

                        minValues = from(bucket: "iob-Kurzzeit")
                        |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                        |> filter(fn: (r) => r["_measurement"] == "Stromzähler")
                        |> filter(fn: (r) => r["_field"] == "value")
                        |> aggregateWindow(every: 1m, fn: min, createEmpty: false)
                        |> yield(name: "min")

                        Ich finde es immer problematisch, mit fixen Zeitfenstern zu arbeiten, wenn man zoomen will. Entweder werden dabei zu viele oder aber zu wenige Datensätze an Grafana übergeben.

                        Durch den MIN/MAX Ansatz kannst du jetzt aber wieder mit variablen Fenstern arbeiten. Die Minima und Maxima bleiben dabei konstant. Außerdem würde ich nur eine Abfrage an die DB starten und zwischenspeichern.

                        Versuch's mal so:

                        data=from(bucket: "iob-Kurzzeit")
                            |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                            |> filter(fn: (r) => r._measurement == "Stromzähler" and r._field == "value")
                        
                        // Maximale positive Werte
                        maxPositive = data
                          |> filter(fn: (r) => r._value >= 0)
                          |> aggregateWindow(every: v.windowPeriod, fn: max, createEmpty: false)
                        
                        // Minimale negative Werte
                        minNegative = data
                          |> filter(fn: (r) => r._value < 0)
                          |> aggregateWindow(every: v.windowPeriod, fn: min, createEmpty: false)
                        
                        union(tables: [maxPositive, minNegative])
                          |> sort(columns: ["_time"], desc: false)
                          |> yield(name: "extrema")
                        
                        DuffyD Offline
                        DuffyD Offline
                        Duffy
                        schrieb am zuletzt editiert von
                        #11

                        @marc-berg sagte in Maximalwerte in Grafik verändern sich Zeitabhängig:

                        data=from(bucket: "iob-Kurzzeit")

                        das sieht jetzt auf den ersten Blick richtig gut aus.

                        251b6dcb-58aa-475c-8c28-fd7da05a423d-grafik.png

                        Ich muss jetzt nur weg aber trotzdem danke erst mal.

                        VG Duffy

                        Nix besonderes; iob auf Respberry pi 4 (8GB) mit 32 GB SSD
                        Node.js: v22.22.0
                        NPM: 10.9.4
                        js-controller 7.0.7
                        Linux: Trixie

                        DuffyD 1 Antwort Letzte Antwort
                        0
                        • DuffyD Duffy

                          @marc-berg sagte in Maximalwerte in Grafik verändern sich Zeitabhängig:

                          data=from(bucket: "iob-Kurzzeit")

                          das sieht jetzt auf den ersten Blick richtig gut aus.

                          251b6dcb-58aa-475c-8c28-fd7da05a423d-grafik.png

                          Ich muss jetzt nur weg aber trotzdem danke erst mal.

                          VG Duffy

                          DuffyD Offline
                          DuffyD Offline
                          Duffy
                          schrieb am zuletzt editiert von
                          #12

                          @Marc-Berg @OliverIO

                          Es funktioniert so wie ich s gemeint hatte.
                          Vielen Dank Euch beiden für eure Unterstützung.

                          Eine Abschließende Frage hätte ich noch.
                          Heute vormittag konnte ich auf eun Dashboard gehen und dort oben rechts auf die 3 Punkte klicken und dort gab es die Möglichkeit das Dashboard zu duplizieren. Danach waren in einem Fenster 2 Dashboards.
                          Bei mir ist aber die Möglichkeit des duplizierens verschwunden. Wisst ihr zufällig wo ich die wieder finden kann?

                          VG Duffy

                          Nix besonderes; iob auf Respberry pi 4 (8GB) mit 32 GB SSD
                          Node.js: v22.22.0
                          NPM: 10.9.4
                          js-controller 7.0.7
                          Linux: Trixie

                          Marc BergM 1 Antwort Letzte Antwort
                          0
                          • DuffyD Duffy

                            @Marc-Berg @OliverIO

                            Es funktioniert so wie ich s gemeint hatte.
                            Vielen Dank Euch beiden für eure Unterstützung.

                            Eine Abschließende Frage hätte ich noch.
                            Heute vormittag konnte ich auf eun Dashboard gehen und dort oben rechts auf die 3 Punkte klicken und dort gab es die Möglichkeit das Dashboard zu duplizieren. Danach waren in einem Fenster 2 Dashboards.
                            Bei mir ist aber die Möglichkeit des duplizierens verschwunden. Wisst ihr zufällig wo ich die wieder finden kann?

                            VG Duffy

                            Marc BergM Offline
                            Marc BergM Offline
                            Marc Berg
                            Most Active
                            schrieb am zuletzt editiert von
                            #13

                            @duffy sagte in Maximalwerte in Grafik verändern sich Zeitabhängig:

                            Wisst ihr zufällig wo ich die wieder finden kann?

                            Vorher Edit Mode aktivieren.

                            39306b79-6e54-44ea-a84e-45351b3404c0-grafik.png

                            NUC10I3+Ubuntu+Docker+ioBroker+influxDB2+Node Red+EMQX+Grafana

                            Pi-hole, Traefik, Checkmk, Conbee II+Zigbee2MQTT, ESPSomfy-RTS, LoRaWAN, Arduino, KiCad

                            Benutzt das Voting im Beitrag, wenn er euch geholfen hat.

                            DuffyD 1 Antwort Letzte Antwort
                            1
                            • Marc BergM Marc Berg

                              @duffy sagte in Maximalwerte in Grafik verändern sich Zeitabhängig:

                              Wisst ihr zufällig wo ich die wieder finden kann?

                              Vorher Edit Mode aktivieren.

                              39306b79-6e54-44ea-a84e-45351b3404c0-grafik.png

                              DuffyD Offline
                              DuffyD Offline
                              Duffy
                              schrieb am zuletzt editiert von
                              #14

                              @marc-berg

                              Du bist klasse, vielen Dank.

                              Gruß Duffy

                              Nix besonderes; iob auf Respberry pi 4 (8GB) mit 32 GB SSD
                              Node.js: v22.22.0
                              NPM: 10.9.4
                              js-controller 7.0.7
                              Linux: Trixie

                              1 Antwort Letzte Antwort
                              0
                              • Marc BergM Marc Berg

                                @duffy sagte in Maximalwerte in Grafik verändern sich Zeitabhängig:

                                minValues = from(bucket: "iob-Kurzzeit")
                                |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                                |> filter(fn: (r) => r["_measurement"] == "Stromzähler")
                                |> filter(fn: (r) => r["_field"] == "value")
                                |> aggregateWindow(every: 1m, fn: min, createEmpty: false)
                                |> yield(name: "min")

                                Ich finde es immer problematisch, mit fixen Zeitfenstern zu arbeiten, wenn man zoomen will. Entweder werden dabei zu viele oder aber zu wenige Datensätze an Grafana übergeben.

                                Durch den MIN/MAX Ansatz kannst du jetzt aber wieder mit variablen Fenstern arbeiten. Die Minima und Maxima bleiben dabei konstant. Außerdem würde ich nur eine Abfrage an die DB starten und zwischenspeichern.

                                Versuch's mal so:

                                data=from(bucket: "iob-Kurzzeit")
                                    |> range(start: v.timeRangeStart, stop: v.timeRangeStop)
                                    |> filter(fn: (r) => r._measurement == "Stromzähler" and r._field == "value")
                                
                                // Maximale positive Werte
                                maxPositive = data
                                  |> filter(fn: (r) => r._value >= 0)
                                  |> aggregateWindow(every: v.windowPeriod, fn: max, createEmpty: false)
                                
                                // Minimale negative Werte
                                minNegative = data
                                  |> filter(fn: (r) => r._value < 0)
                                  |> aggregateWindow(every: v.windowPeriod, fn: min, createEmpty: false)
                                
                                union(tables: [maxPositive, minNegative])
                                  |> sort(columns: ["_time"], desc: false)
                                  |> yield(name: "extrema")
                                
                                OliverIOO Offline
                                OliverIOO Offline
                                OliverIO
                                schrieb am zuletzt editiert von
                                #15

                                @marc-berg

                                Ich finde es immer problematisch, mit fixen Zeitfenstern zu arbeiten, wenn man zoomen will.

                                Leider hat sich mittlerweile der scope des threads geändert.

                                Ausgangspunkt war ja das bei unterschiedlichen Zooms und damit zeitbereiche zu ca Zeitpunkten das Diagramm unterschiedliche Werte zeigte, da der Durchschnitt/aggregation sich dadurch ändert.

                                Meine Adapter und Widgets
                                TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                                Links im Profil

                                N 1 Antwort Letzte Antwort
                                0
                                • OliverIOO OliverIO

                                  @marc-berg

                                  Ich finde es immer problematisch, mit fixen Zeitfenstern zu arbeiten, wenn man zoomen will.

                                  Leider hat sich mittlerweile der scope des threads geändert.

                                  Ausgangspunkt war ja das bei unterschiedlichen Zooms und damit zeitbereiche zu ca Zeitpunkten das Diagramm unterschiedliche Werte zeigte, da der Durchschnitt/aggregation sich dadurch ändert.

                                  N Offline
                                  N Offline
                                  NormanR 0
                                  schrieb am zuletzt editiert von
                                  #16

                                  Wenn die Schaltfläche zum Duplizieren weiterhin nicht sichtbar ist, kann es helfen, den Browser-Cache zu leeren oder das Dashboard im privaten/Inkognito-Modus zu öffnen. Manchmal hängen solche Anzeigeprobleme einfach mit zwischengespeicherten Daten zusammen. Alternativ kann auch ein Browser-Neustart oder das Testen in einem anderen Browser Abhilfe schaffen.

                                  1 Antwort Letzte Antwort
                                  0
                                  Antworten
                                  • In einem neuen Thema antworten
                                  Anmelden zum Antworten
                                  • Älteste zuerst
                                  • Neuste zuerst
                                  • Meiste Stimmen


                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  797

                                  Online

                                  32.6k

                                  Benutzer

                                  82.2k

                                  Themen

                                  1.3m

                                  Beiträge
                                  Community
                                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                  ioBroker Community 2014-2025
                                  logo
                                  • Anmelden

                                  • Du hast noch kein Konto? Registrieren

                                  • Anmelden oder registrieren, um zu suchen
                                  • Erster Beitrag
                                    Letzter Beitrag
                                  0
                                  • Home
                                  • Aktuell
                                  • Tags
                                  • Ungelesen 0
                                  • Kategorien
                                  • Unreplied
                                  • Beliebt
                                  • GitHub
                                  • Docu
                                  • Hilfe